erdo 0.1.6__py3-none-any.whl → 0.1.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of erdo might be problematic. Click here for more details.
- erdo/__init__.py +3 -9
- erdo/_generated/actions/codeexec.py +4 -2
- erdo/_generated/condition/__init__.py +145 -145
- erdo/_generated/types.py +72 -72
- erdo/actions/__init__.py +4 -4
- erdo/sync/extractor.py +6 -0
- {erdo-0.1.6.dist-info → erdo-0.1.8.dist-info}/METADATA +1 -1
- {erdo-0.1.6.dist-info → erdo-0.1.8.dist-info}/RECORD +11 -11
- {erdo-0.1.6.dist-info → erdo-0.1.8.dist-info}/WHEEL +0 -0
- {erdo-0.1.6.dist-info → erdo-0.1.8.dist-info}/entry_points.txt +0 -0
- {erdo-0.1.6.dist-info → erdo-0.1.8.dist-info}/licenses/LICENSE +0 -0
erdo/__init__.py
CHANGED
|
@@ -4,27 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
# Import all condition functions from generated condition module
|
|
6
6
|
from ._generated.condition import * # noqa: F403,F401
|
|
7
|
+
from ._generated.condition import __all__ as condition_all
|
|
7
8
|
|
|
8
9
|
# Import all generated types automatically
|
|
9
10
|
from ._generated.types import * # noqa: F403,F401
|
|
11
|
+
from ._generated.types import __all__ as generated_all
|
|
10
12
|
|
|
11
13
|
# Import state object for template support
|
|
12
14
|
from .state import state # noqa: F401
|
|
13
15
|
|
|
14
16
|
# Import all handwritten SDK classes automatically
|
|
15
17
|
from .types import * # noqa: F403,F401
|
|
18
|
+
from .types import __all__ as handwritten_all
|
|
16
19
|
|
|
17
20
|
__version__ = "0.1.0"
|
|
18
21
|
|
|
19
|
-
# Add all condition functions automatically
|
|
20
|
-
from ._generated.condition import __all__ as condition_all # noqa: E402
|
|
21
|
-
|
|
22
|
-
# Add all generated types automatically
|
|
23
|
-
from ._generated.types import __all__ as generated_all # noqa: E402
|
|
24
|
-
|
|
25
|
-
# Add handwritten SDK classes
|
|
26
|
-
from .types import __all__ as handwritten_all # noqa: E402
|
|
27
|
-
|
|
28
22
|
# Build __all__ dynamically by combining all available types
|
|
29
23
|
__all__ = []
|
|
30
24
|
__all__.extend(handwritten_all)
|
|
@@ -8,7 +8,7 @@ Actual execution happens in the Go backend after syncing.
|
|
|
8
8
|
|
|
9
9
|
from typing import Any, Optional, Union
|
|
10
10
|
|
|
11
|
-
from pydantic import BaseModel
|
|
11
|
+
from pydantic import BaseModel, Field
|
|
12
12
|
|
|
13
13
|
from erdo.template import TemplateString
|
|
14
14
|
|
|
@@ -94,7 +94,9 @@ class ParseFileAsJsonResult(BaseModel):
|
|
|
94
94
|
Result schema for codeexec.parse_file_as_json action.
|
|
95
95
|
"""
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
model_config = {"populate_by_name": True} # Allow both field names and aliases
|
|
98
|
+
|
|
99
|
+
json_data: Any = Field(alias="json")
|
|
98
100
|
|
|
99
101
|
|
|
100
102
|
def execute(
|
|
@@ -133,47 +133,72 @@ class _BaseCondition:
|
|
|
133
133
|
return _NotCondition(self)
|
|
134
134
|
|
|
135
135
|
|
|
136
|
-
class
|
|
137
|
-
def __init__(self) -> None:
|
|
138
|
-
|
|
136
|
+
class AndCondition(_BaseCondition):
|
|
137
|
+
def __init__(self, conditions: Any = None) -> None:
|
|
138
|
+
self.conditions = conditions
|
|
139
139
|
|
|
140
140
|
def to_dict(self) -> Dict[str, Any]:
|
|
141
141
|
"""Convert to dict format expected by backend."""
|
|
142
|
-
|
|
142
|
+
result: Dict[str, Any] = {}
|
|
143
|
+
result["type"] = "AndCondition"
|
|
143
144
|
|
|
145
|
+
# Add field values to leaf object (backend expects leaf format)
|
|
146
|
+
leaf: Dict[str, Any] = {}
|
|
147
|
+
if self.conditions is not None:
|
|
148
|
+
leaf["conditions"] = self.conditions
|
|
144
149
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
150
|
+
if leaf:
|
|
151
|
+
result["leaf"] = leaf
|
|
152
|
+
|
|
153
|
+
return result
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class EarlierThan(_BaseCondition):
|
|
157
|
+
def __init__(self, time: Any = None, value: Any = None) -> None:
|
|
158
|
+
self.time = time
|
|
159
|
+
self.value = value
|
|
148
160
|
|
|
149
161
|
def to_dict(self) -> Dict[str, Any]:
|
|
150
162
|
"""Convert to dict format expected by backend."""
|
|
151
|
-
|
|
163
|
+
result: Dict[str, Any] = {}
|
|
164
|
+
result["type"] = "EarlierThan"
|
|
152
165
|
|
|
166
|
+
# Add field values to leaf object (backend expects leaf format)
|
|
167
|
+
leaf: Dict[str, Any] = {}
|
|
168
|
+
if self.time is not None:
|
|
169
|
+
leaf["time"] = self.time
|
|
170
|
+
if self.value is not None:
|
|
171
|
+
leaf["value"] = self.value
|
|
153
172
|
|
|
154
|
-
|
|
173
|
+
if leaf:
|
|
174
|
+
result["leaf"] = leaf
|
|
175
|
+
|
|
176
|
+
return result
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class FalseCondition(_BaseCondition):
|
|
155
180
|
def __init__(self) -> None:
|
|
156
181
|
pass
|
|
157
182
|
|
|
158
183
|
def to_dict(self) -> Dict[str, Any]:
|
|
159
184
|
"""Convert to dict format expected by backend."""
|
|
160
|
-
return {"type": "
|
|
185
|
+
return {"type": "FalseCondition", "leaf": {}}
|
|
161
186
|
|
|
162
187
|
|
|
163
|
-
class
|
|
164
|
-
def __init__(self,
|
|
165
|
-
self.
|
|
188
|
+
class GreaterThan(_BaseCondition):
|
|
189
|
+
def __init__(self, number: Any = None, value: Any = None) -> None:
|
|
190
|
+
self.number = number
|
|
166
191
|
self.value = value
|
|
167
192
|
|
|
168
193
|
def to_dict(self) -> Dict[str, Any]:
|
|
169
194
|
"""Convert to dict format expected by backend."""
|
|
170
195
|
result: Dict[str, Any] = {}
|
|
171
|
-
result["type"] = "
|
|
196
|
+
result["type"] = "GreaterThan"
|
|
172
197
|
|
|
173
198
|
# Add field values to leaf object (backend expects leaf format)
|
|
174
199
|
leaf: Dict[str, Any] = {}
|
|
175
|
-
if self.
|
|
176
|
-
leaf["
|
|
200
|
+
if self.number is not None:
|
|
201
|
+
leaf["number"] = self.number
|
|
177
202
|
if self.value is not None:
|
|
178
203
|
leaf["value"] = self.value
|
|
179
204
|
|
|
@@ -206,6 +231,15 @@ class IsAny(_BaseCondition):
|
|
|
206
231
|
return result
|
|
207
232
|
|
|
208
233
|
|
|
234
|
+
class IsError(_BaseCondition):
|
|
235
|
+
def __init__(self) -> None:
|
|
236
|
+
pass
|
|
237
|
+
|
|
238
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
239
|
+
"""Convert to dict format expected by backend."""
|
|
240
|
+
return {"type": "IsError", "leaf": {}}
|
|
241
|
+
|
|
242
|
+
|
|
209
243
|
class IsErrorActionNotFound(_BaseCondition):
|
|
210
244
|
def __init__(self) -> None:
|
|
211
245
|
pass
|
|
@@ -215,6 +249,15 @@ class IsErrorActionNotFound(_BaseCondition):
|
|
|
215
249
|
return {"type": "IsErrorActionNotFound", "leaf": {}}
|
|
216
250
|
|
|
217
251
|
|
|
252
|
+
class IsErrorInfoNeeded(_BaseCondition):
|
|
253
|
+
def __init__(self) -> None:
|
|
254
|
+
pass
|
|
255
|
+
|
|
256
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
257
|
+
"""Convert to dict format expected by backend."""
|
|
258
|
+
return {"type": "IsErrorInfoNeeded", "leaf": {}}
|
|
259
|
+
|
|
260
|
+
|
|
218
261
|
class IsErrorInternalError(_BaseCondition):
|
|
219
262
|
def __init__(self) -> None:
|
|
220
263
|
pass
|
|
@@ -224,45 +267,46 @@ class IsErrorInternalError(_BaseCondition):
|
|
|
224
267
|
return {"type": "IsErrorInternalError", "leaf": {}}
|
|
225
268
|
|
|
226
269
|
|
|
227
|
-
class
|
|
228
|
-
def __init__(self
|
|
229
|
-
|
|
230
|
-
self.value = value
|
|
270
|
+
class IsErrorTerminated(_BaseCondition):
|
|
271
|
+
def __init__(self) -> None:
|
|
272
|
+
pass
|
|
231
273
|
|
|
232
274
|
def to_dict(self) -> Dict[str, Any]:
|
|
233
275
|
"""Convert to dict format expected by backend."""
|
|
234
|
-
|
|
235
|
-
result["type"] = "LessThan"
|
|
276
|
+
return {"type": "IsErrorTerminated", "leaf": {}}
|
|
236
277
|
|
|
237
|
-
# Add field values to leaf object (backend expects leaf format)
|
|
238
|
-
leaf: Dict[str, Any] = {}
|
|
239
|
-
if self.number is not None:
|
|
240
|
-
leaf["number"] = self.number
|
|
241
|
-
if self.value is not None:
|
|
242
|
-
leaf["value"] = self.value
|
|
243
278
|
|
|
244
|
-
|
|
245
|
-
|
|
279
|
+
class IsErrorTimeout(_BaseCondition):
|
|
280
|
+
def __init__(self) -> None:
|
|
281
|
+
pass
|
|
246
282
|
|
|
247
|
-
|
|
283
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
284
|
+
"""Convert to dict format expected by backend."""
|
|
285
|
+
return {"type": "IsErrorTimeout", "leaf": {}}
|
|
248
286
|
|
|
249
287
|
|
|
250
|
-
class
|
|
251
|
-
def __init__(self
|
|
252
|
-
|
|
253
|
-
|
|
288
|
+
class IsFormattedError(_BaseCondition):
|
|
289
|
+
def __init__(self) -> None:
|
|
290
|
+
pass
|
|
291
|
+
|
|
292
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
293
|
+
"""Convert to dict format expected by backend."""
|
|
294
|
+
return {"type": "IsFormattedError", "leaf": {}}
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
class IsNull(_BaseCondition):
|
|
298
|
+
def __init__(self, key: Any = None) -> None:
|
|
299
|
+
self.key = key
|
|
254
300
|
|
|
255
301
|
def to_dict(self) -> Dict[str, Any]:
|
|
256
302
|
"""Convert to dict format expected by backend."""
|
|
257
303
|
result: Dict[str, Any] = {}
|
|
258
|
-
result["type"] = "
|
|
304
|
+
result["type"] = "IsNull"
|
|
259
305
|
|
|
260
306
|
# Add field values to leaf object (backend expects leaf format)
|
|
261
307
|
leaf: Dict[str, Any] = {}
|
|
262
|
-
if self.
|
|
263
|
-
leaf["
|
|
264
|
-
if self.value is not None:
|
|
265
|
-
leaf["value"] = self.value
|
|
308
|
+
if self.key is not None:
|
|
309
|
+
leaf["key"] = self.key
|
|
266
310
|
|
|
267
311
|
if leaf:
|
|
268
312
|
result["leaf"] = leaf
|
|
@@ -270,16 +314,16 @@ class EarlierThan(_BaseCondition):
|
|
|
270
314
|
return result
|
|
271
315
|
|
|
272
316
|
|
|
273
|
-
class
|
|
317
|
+
class IsSuccess(_BaseCondition):
|
|
274
318
|
def __init__(self) -> None:
|
|
275
319
|
pass
|
|
276
320
|
|
|
277
321
|
def to_dict(self) -> Dict[str, Any]:
|
|
278
322
|
"""Convert to dict format expected by backend."""
|
|
279
|
-
return {"type": "
|
|
323
|
+
return {"type": "IsSuccess", "leaf": {}}
|
|
280
324
|
|
|
281
325
|
|
|
282
|
-
class
|
|
326
|
+
class LessThan(_BaseCondition):
|
|
283
327
|
def __init__(self, number: Any = None, value: Any = None) -> None:
|
|
284
328
|
self.number = number
|
|
285
329
|
self.value = value
|
|
@@ -287,7 +331,7 @@ class GreaterThan(_BaseCondition):
|
|
|
287
331
|
def to_dict(self) -> Dict[str, Any]:
|
|
288
332
|
"""Convert to dict format expected by backend."""
|
|
289
333
|
result: Dict[str, Any] = {}
|
|
290
|
-
result["type"] = "
|
|
334
|
+
result["type"] = "LessThan"
|
|
291
335
|
|
|
292
336
|
# Add field values to leaf object (backend expects leaf format)
|
|
293
337
|
leaf: Dict[str, Any] = {}
|
|
@@ -302,31 +346,19 @@ class GreaterThan(_BaseCondition):
|
|
|
302
346
|
return result
|
|
303
347
|
|
|
304
348
|
|
|
305
|
-
class
|
|
306
|
-
def __init__(self) -> None:
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
310
|
-
"""Convert to dict format expected by backend."""
|
|
311
|
-
return {"type": "IsErrorTimeout", "leaf": {}}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
class TextContains(_BaseCondition):
|
|
315
|
-
def __init__(self, text: Any = None, value: Any = None) -> None:
|
|
316
|
-
self.text = text
|
|
317
|
-
self.value = value
|
|
349
|
+
class NotCondition(_BaseCondition):
|
|
350
|
+
def __init__(self, condition: Any = None) -> None:
|
|
351
|
+
self.condition = condition
|
|
318
352
|
|
|
319
353
|
def to_dict(self) -> Dict[str, Any]:
|
|
320
354
|
"""Convert to dict format expected by backend."""
|
|
321
355
|
result: Dict[str, Any] = {}
|
|
322
|
-
result["type"] = "
|
|
356
|
+
result["type"] = "NotCondition"
|
|
323
357
|
|
|
324
358
|
# Add field values to leaf object (backend expects leaf format)
|
|
325
359
|
leaf: Dict[str, Any] = {}
|
|
326
|
-
if self.
|
|
327
|
-
leaf["
|
|
328
|
-
if self.value is not None:
|
|
329
|
-
leaf["value"] = self.value
|
|
360
|
+
if self.condition is not None:
|
|
361
|
+
leaf["condition"] = self.condition
|
|
330
362
|
|
|
331
363
|
if leaf:
|
|
332
364
|
result["leaf"] = leaf
|
|
@@ -334,22 +366,19 @@ class TextContains(_BaseCondition):
|
|
|
334
366
|
return result
|
|
335
367
|
|
|
336
368
|
|
|
337
|
-
class
|
|
338
|
-
def __init__(self,
|
|
339
|
-
self.
|
|
340
|
-
self.value = value
|
|
369
|
+
class OrCondition(_BaseCondition):
|
|
370
|
+
def __init__(self, conditions: Any = None) -> None:
|
|
371
|
+
self.conditions = conditions
|
|
341
372
|
|
|
342
373
|
def to_dict(self) -> Dict[str, Any]:
|
|
343
374
|
"""Convert to dict format expected by backend."""
|
|
344
375
|
result: Dict[str, Any] = {}
|
|
345
|
-
result["type"] = "
|
|
376
|
+
result["type"] = "OrCondition"
|
|
346
377
|
|
|
347
378
|
# Add field values to leaf object (backend expects leaf format)
|
|
348
379
|
leaf: Dict[str, Any] = {}
|
|
349
|
-
if self.
|
|
350
|
-
leaf["
|
|
351
|
-
if self.value is not None:
|
|
352
|
-
leaf["value"] = self.value
|
|
380
|
+
if self.conditions is not None:
|
|
381
|
+
leaf["conditions"] = self.conditions
|
|
353
382
|
|
|
354
383
|
if leaf:
|
|
355
384
|
result["leaf"] = leaf
|
|
@@ -357,7 +386,7 @@ class TextEquals(_BaseCondition):
|
|
|
357
386
|
return result
|
|
358
387
|
|
|
359
388
|
|
|
360
|
-
class
|
|
389
|
+
class TextContains(_BaseCondition):
|
|
361
390
|
def __init__(self, text: Any = None, value: Any = None) -> None:
|
|
362
391
|
self.text = text
|
|
363
392
|
self.value = value
|
|
@@ -365,7 +394,7 @@ class TextStartsWith(_BaseCondition):
|
|
|
365
394
|
def to_dict(self) -> Dict[str, Any]:
|
|
366
395
|
"""Convert to dict format expected by backend."""
|
|
367
396
|
result: Dict[str, Any] = {}
|
|
368
|
-
result["type"] = "
|
|
397
|
+
result["type"] = "TextContains"
|
|
369
398
|
|
|
370
399
|
# Add field values to leaf object (backend expects leaf format)
|
|
371
400
|
leaf: Dict[str, Any] = {}
|
|
@@ -380,37 +409,22 @@ class TextStartsWith(_BaseCondition):
|
|
|
380
409
|
return result
|
|
381
410
|
|
|
382
411
|
|
|
383
|
-
class
|
|
384
|
-
def __init__(self) -> None:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
388
|
-
"""Convert to dict format expected by backend."""
|
|
389
|
-
return {"type": "TrueCondition", "leaf": {}}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
class IsError(_BaseCondition):
|
|
393
|
-
def __init__(self) -> None:
|
|
394
|
-
pass
|
|
395
|
-
|
|
396
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
397
|
-
"""Convert to dict format expected by backend."""
|
|
398
|
-
return {"type": "IsError", "leaf": {}}
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
class IsNull(_BaseCondition):
|
|
402
|
-
def __init__(self, key: Any = None) -> None:
|
|
403
|
-
self.key = key
|
|
412
|
+
class TextEndsWith(_BaseCondition):
|
|
413
|
+
def __init__(self, text: Any = None, value: Any = None) -> None:
|
|
414
|
+
self.text = text
|
|
415
|
+
self.value = value
|
|
404
416
|
|
|
405
417
|
def to_dict(self) -> Dict[str, Any]:
|
|
406
418
|
"""Convert to dict format expected by backend."""
|
|
407
419
|
result: Dict[str, Any] = {}
|
|
408
|
-
result["type"] = "
|
|
420
|
+
result["type"] = "TextEndsWith"
|
|
409
421
|
|
|
410
422
|
# Add field values to leaf object (backend expects leaf format)
|
|
411
423
|
leaf: Dict[str, Any] = {}
|
|
412
|
-
if self.
|
|
413
|
-
leaf["
|
|
424
|
+
if self.text is not None:
|
|
425
|
+
leaf["text"] = self.text
|
|
426
|
+
if self.value is not None:
|
|
427
|
+
leaf["value"] = self.value
|
|
414
428
|
|
|
415
429
|
if leaf:
|
|
416
430
|
result["leaf"] = leaf
|
|
@@ -418,28 +432,22 @@ class IsNull(_BaseCondition):
|
|
|
418
432
|
return result
|
|
419
433
|
|
|
420
434
|
|
|
421
|
-
class
|
|
422
|
-
def __init__(self) -> None:
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
def to_dict(self) -> Dict[str, Any]:
|
|
426
|
-
"""Convert to dict format expected by backend."""
|
|
427
|
-
return {"type": "IsSuccess", "leaf": {}}
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
class AndCondition(_BaseCondition):
|
|
431
|
-
def __init__(self, conditions: Any = None) -> None:
|
|
432
|
-
self.conditions = conditions
|
|
435
|
+
class TextEquals(_BaseCondition):
|
|
436
|
+
def __init__(self, text: Any = None, value: Any = None) -> None:
|
|
437
|
+
self.text = text
|
|
438
|
+
self.value = value
|
|
433
439
|
|
|
434
440
|
def to_dict(self) -> Dict[str, Any]:
|
|
435
441
|
"""Convert to dict format expected by backend."""
|
|
436
442
|
result: Dict[str, Any] = {}
|
|
437
|
-
result["type"] = "
|
|
443
|
+
result["type"] = "TextEquals"
|
|
438
444
|
|
|
439
445
|
# Add field values to leaf object (backend expects leaf format)
|
|
440
446
|
leaf: Dict[str, Any] = {}
|
|
441
|
-
if self.
|
|
442
|
-
leaf["
|
|
447
|
+
if self.text is not None:
|
|
448
|
+
leaf["text"] = self.text
|
|
449
|
+
if self.value is not None:
|
|
450
|
+
leaf["value"] = self.value
|
|
443
451
|
|
|
444
452
|
if leaf:
|
|
445
453
|
result["leaf"] = leaf
|
|
@@ -447,19 +455,22 @@ class AndCondition(_BaseCondition):
|
|
|
447
455
|
return result
|
|
448
456
|
|
|
449
457
|
|
|
450
|
-
class
|
|
451
|
-
def __init__(self,
|
|
452
|
-
self.
|
|
458
|
+
class TextStartsWith(_BaseCondition):
|
|
459
|
+
def __init__(self, text: Any = None, value: Any = None) -> None:
|
|
460
|
+
self.text = text
|
|
461
|
+
self.value = value
|
|
453
462
|
|
|
454
463
|
def to_dict(self) -> Dict[str, Any]:
|
|
455
464
|
"""Convert to dict format expected by backend."""
|
|
456
465
|
result: Dict[str, Any] = {}
|
|
457
|
-
result["type"] = "
|
|
466
|
+
result["type"] = "TextStartsWith"
|
|
458
467
|
|
|
459
468
|
# Add field values to leaf object (backend expects leaf format)
|
|
460
469
|
leaf: Dict[str, Any] = {}
|
|
461
|
-
if self.
|
|
462
|
-
leaf["
|
|
470
|
+
if self.text is not None:
|
|
471
|
+
leaf["text"] = self.text
|
|
472
|
+
if self.value is not None:
|
|
473
|
+
leaf["value"] = self.value
|
|
463
474
|
|
|
464
475
|
if leaf:
|
|
465
476
|
result["leaf"] = leaf
|
|
@@ -467,48 +478,37 @@ class OrCondition(_BaseCondition):
|
|
|
467
478
|
return result
|
|
468
479
|
|
|
469
480
|
|
|
470
|
-
class
|
|
471
|
-
def __init__(self
|
|
472
|
-
|
|
481
|
+
class TrueCondition(_BaseCondition):
|
|
482
|
+
def __init__(self) -> None:
|
|
483
|
+
pass
|
|
473
484
|
|
|
474
485
|
def to_dict(self) -> Dict[str, Any]:
|
|
475
486
|
"""Convert to dict format expected by backend."""
|
|
476
|
-
|
|
477
|
-
result["type"] = "NotCondition"
|
|
478
|
-
|
|
479
|
-
# Add field values to leaf object (backend expects leaf format)
|
|
480
|
-
leaf: Dict[str, Any] = {}
|
|
481
|
-
if self.condition is not None:
|
|
482
|
-
leaf["condition"] = self.condition
|
|
483
|
-
|
|
484
|
-
if leaf:
|
|
485
|
-
result["leaf"] = leaf
|
|
486
|
-
|
|
487
|
-
return result
|
|
487
|
+
return {"type": "TrueCondition", "leaf": {}}
|
|
488
488
|
|
|
489
489
|
|
|
490
490
|
# Auto-generated __all__ list for import *
|
|
491
491
|
__all__ = [
|
|
492
492
|
"And",
|
|
493
|
-
"Or",
|
|
494
493
|
"Not",
|
|
494
|
+
"Or",
|
|
495
495
|
"EarlierThan",
|
|
496
496
|
"FalseCondition",
|
|
497
497
|
"GreaterThan",
|
|
498
|
-
"
|
|
499
|
-
"TextContains",
|
|
500
|
-
"TextEquals",
|
|
501
|
-
"TextStartsWith",
|
|
502
|
-
"TrueCondition",
|
|
498
|
+
"IsAny",
|
|
503
499
|
"IsError",
|
|
504
|
-
"
|
|
505
|
-
"IsSuccess",
|
|
500
|
+
"IsErrorActionNotFound",
|
|
506
501
|
"IsErrorInfoNeeded",
|
|
502
|
+
"IsErrorInternalError",
|
|
507
503
|
"IsErrorTerminated",
|
|
504
|
+
"IsErrorTimeout",
|
|
508
505
|
"IsFormattedError",
|
|
509
|
-
"
|
|
510
|
-
"
|
|
511
|
-
"IsErrorActionNotFound",
|
|
512
|
-
"IsErrorInternalError",
|
|
506
|
+
"IsNull",
|
|
507
|
+
"IsSuccess",
|
|
513
508
|
"LessThan",
|
|
509
|
+
"TextContains",
|
|
510
|
+
"TextEndsWith",
|
|
511
|
+
"TextEquals",
|
|
512
|
+
"TextStartsWith",
|
|
513
|
+
"TrueCondition",
|
|
514
514
|
]
|
erdo/_generated/types.py
CHANGED
|
@@ -2375,91 +2375,91 @@ class ExportIntegrationsResponse:
|
|
|
2375
2375
|
|
|
2376
2376
|
# Auto-generated __all__ list for import *
|
|
2377
2377
|
__all__ = [
|
|
2378
|
-
"
|
|
2379
|
-
"
|
|
2380
|
-
"
|
|
2381
|
-
"
|
|
2382
|
-
"
|
|
2383
|
-
"
|
|
2384
|
-
"
|
|
2385
|
-
"
|
|
2386
|
-
"
|
|
2387
|
-
"
|
|
2388
|
-
"
|
|
2389
|
-
"
|
|
2390
|
-
"
|
|
2391
|
-
"Error",
|
|
2392
|
-
"DatasetType",
|
|
2393
|
-
"IntegrationType",
|
|
2378
|
+
"APIConditionDefinition",
|
|
2379
|
+
"APIExecutionMode",
|
|
2380
|
+
"APIParameterDefinition",
|
|
2381
|
+
"APIParameterInterpreter",
|
|
2382
|
+
"APIParameterValueSource",
|
|
2383
|
+
"APIParameterValueSourceHandler",
|
|
2384
|
+
"APIResultHandler",
|
|
2385
|
+
"APIStep",
|
|
2386
|
+
"APIStepWithHandlers",
|
|
2387
|
+
"APITool",
|
|
2388
|
+
"ActionDefinition",
|
|
2389
|
+
"AgentDiscovery",
|
|
2390
|
+
"AnalysisDetails",
|
|
2394
2391
|
"AuthType",
|
|
2395
|
-
"IntegrationStatus",
|
|
2396
|
-
"SegmentSelectionType",
|
|
2397
|
-
"ExpiryType",
|
|
2398
|
-
"ResourceType",
|
|
2399
|
-
"ResourceState",
|
|
2400
|
-
"ResourceRelationshipType",
|
|
2401
|
-
"ResourceAttachType",
|
|
2402
2392
|
"Bot",
|
|
2403
|
-
"
|
|
2404
|
-
"ParameterValueSource",
|
|
2405
|
-
"ParameterValueSourceHandler",
|
|
2406
|
-
"ParameterInterpreter",
|
|
2407
|
-
"AgentDiscovery",
|
|
2408
|
-
"ExecutionModeConfig",
|
|
2409
|
-
"UpsertBotRequest",
|
|
2393
|
+
"BotResource",
|
|
2410
2394
|
"BotsResponse",
|
|
2411
|
-
"StepsResponse",
|
|
2412
|
-
"ServiceDefinition",
|
|
2413
|
-
"ActionDefinition",
|
|
2414
|
-
"ResultSchema",
|
|
2415
|
-
"PropertySchema",
|
|
2416
|
-
"IntegrationSchema",
|
|
2417
2395
|
"CodegenDetails",
|
|
2418
|
-
"AnalysisDetails",
|
|
2419
|
-
"CredentialSchema",
|
|
2420
|
-
"ExportActionsResponse",
|
|
2421
2396
|
"ConditionDefinition",
|
|
2422
|
-
"
|
|
2423
|
-
"
|
|
2424
|
-
"ResultHandler",
|
|
2425
|
-
"JSONSchemaProperty",
|
|
2426
|
-
"JSONSchema",
|
|
2427
|
-
"Tool",
|
|
2428
|
-
"Message",
|
|
2429
|
-
"SystemParameters",
|
|
2430
|
-
"Result",
|
|
2431
|
-
"APIStep",
|
|
2432
|
-
"APIParameterValueSource",
|
|
2433
|
-
"APIParameterValueSourceHandler",
|
|
2434
|
-
"APIParameterInterpreter",
|
|
2435
|
-
"APIExecutionMode",
|
|
2436
|
-
"APIConditionDefinition",
|
|
2437
|
-
"APITool",
|
|
2438
|
-
"APIResultHandler",
|
|
2439
|
-
"APIParameterDefinition",
|
|
2440
|
-
"APIStepWithHandlers",
|
|
2397
|
+
"CredentialSchema",
|
|
2398
|
+
"CredentialSource",
|
|
2441
2399
|
"Dataset",
|
|
2442
|
-
"BotResource",
|
|
2443
|
-
"UIConfigIcon",
|
|
2444
|
-
"UIConfig",
|
|
2445
|
-
"ErrorHandlingConfig",
|
|
2446
|
-
"SegmentLevel",
|
|
2447
|
-
"SegmentConfig",
|
|
2448
|
-
"ResourceTypeConfig",
|
|
2449
2400
|
"DatasetResourceDiscoveryConfig",
|
|
2401
|
+
"DatasetType",
|
|
2402
|
+
"Error",
|
|
2403
|
+
"ErrorHandlingConfig",
|
|
2404
|
+
"ExecutionModeConfig",
|
|
2405
|
+
"ExecutionModeType",
|
|
2450
2406
|
"ExpiryConfig",
|
|
2451
|
-
"
|
|
2452
|
-
"
|
|
2407
|
+
"ExpiryType",
|
|
2408
|
+
"ExportActionsResponse",
|
|
2409
|
+
"ExportIntegrationsResponse",
|
|
2410
|
+
"HandlerType",
|
|
2453
2411
|
"IntegrationConfig",
|
|
2454
|
-
"
|
|
2412
|
+
"IntegrationDefinition",
|
|
2455
2413
|
"IntegrationDiscovery",
|
|
2456
|
-
"
|
|
2457
|
-
"
|
|
2414
|
+
"IntegrationSchema",
|
|
2415
|
+
"IntegrationStatus",
|
|
2416
|
+
"IntegrationType",
|
|
2417
|
+
"InvocationEventType",
|
|
2418
|
+
"JSONSchema",
|
|
2419
|
+
"JSONSchemaProperty",
|
|
2420
|
+
"JSONSchemaType",
|
|
2458
2421
|
"ListIntegrationsResponse",
|
|
2459
|
-
"
|
|
2422
|
+
"LlmModel",
|
|
2460
2423
|
"Memory",
|
|
2461
|
-
"
|
|
2424
|
+
"Message",
|
|
2425
|
+
"OutputBehaviorType",
|
|
2426
|
+
"OutputContentType",
|
|
2427
|
+
"OutputVisibility",
|
|
2428
|
+
"ParameterDefinition",
|
|
2429
|
+
"ParameterHydrationBehaviour",
|
|
2430
|
+
"ParameterInterpreter",
|
|
2431
|
+
"ParameterType",
|
|
2432
|
+
"ParameterValueSource",
|
|
2433
|
+
"ParameterValueSourceHandler",
|
|
2434
|
+
"PropertySchema",
|
|
2435
|
+
"PythonIntegrationInstance",
|
|
2462
2436
|
"Resource",
|
|
2437
|
+
"ResourceAnalysis",
|
|
2438
|
+
"ResourceAttachType",
|
|
2439
|
+
"ResourceRelationshipType",
|
|
2440
|
+
"ResourceState",
|
|
2441
|
+
"ResourceType",
|
|
2442
|
+
"ResourceTypeConfig",
|
|
2443
|
+
"Result",
|
|
2444
|
+
"ResultHandler",
|
|
2445
|
+
"ResultSchema",
|
|
2446
|
+
"SegmentConfig",
|
|
2447
|
+
"SegmentLevel",
|
|
2448
|
+
"SegmentOption",
|
|
2449
|
+
"SegmentSelectionType",
|
|
2450
|
+
"SensitivityLevel",
|
|
2451
|
+
"ServiceDefinition",
|
|
2452
|
+
"Status",
|
|
2453
|
+
"StepWithHandlers",
|
|
2454
|
+
"StepsResponse",
|
|
2455
|
+
"SystemParameters",
|
|
2456
|
+
"TempCondition",
|
|
2457
|
+
"Tool",
|
|
2458
|
+
"UIConfig",
|
|
2459
|
+
"UIConfigIcon",
|
|
2460
|
+
"UpsertBotRequest",
|
|
2461
|
+
"UpsertIntegrationRequest",
|
|
2462
|
+
"UpsertIntegrationResponse",
|
|
2463
2463
|
]
|
|
2464
2464
|
|
|
2465
2465
|
|
erdo/actions/__init__.py
CHANGED
|
@@ -25,16 +25,16 @@ from .._generated.internal_actions import refresh_resource # noqa: F401
|
|
|
25
25
|
|
|
26
26
|
# Make all services available for import
|
|
27
27
|
__all__ = [
|
|
28
|
-
"checkpoint_attempt",
|
|
29
|
-
"refresh_resource",
|
|
30
28
|
"analysis",
|
|
31
29
|
"bot",
|
|
32
|
-
"
|
|
33
|
-
"websearch",
|
|
30
|
+
"checkpoint_attempt",
|
|
34
31
|
"codeexec",
|
|
35
32
|
"llm",
|
|
36
33
|
"memory",
|
|
34
|
+
"refresh_resource",
|
|
37
35
|
"resource_definitions",
|
|
38
36
|
"sqlexec",
|
|
39
37
|
"utils",
|
|
38
|
+
"webparser",
|
|
39
|
+
"websearch",
|
|
40
40
|
]
|
erdo/sync/extractor.py
CHANGED
|
@@ -70,6 +70,12 @@ def transform_dict_recursively(obj: Any) -> Any:
|
|
|
70
70
|
return [transform_dict_recursively(item) for item in obj]
|
|
71
71
|
elif isinstance(obj, str):
|
|
72
72
|
return transform_string_value(obj)
|
|
73
|
+
elif hasattr(obj, "__class__") and hasattr(obj.__class__, "__mro__"):
|
|
74
|
+
# Handle enums by converting to their value
|
|
75
|
+
for base in obj.__class__.__mro__:
|
|
76
|
+
if "Enum" in str(base):
|
|
77
|
+
return obj.value if hasattr(obj, "value") else str(obj)
|
|
78
|
+
return obj
|
|
73
79
|
else:
|
|
74
80
|
return obj
|
|
75
81
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
erdo/__init__.py,sha256=
|
|
1
|
+
erdo/__init__.py,sha256=gg-frEZXTdpawdIdEOpSJuHDG6w7OM-Fu-QhHmcSK7Y,952
|
|
2
2
|
erdo/bot_permissions.py,sha256=NZSjjGURORpq3hRqv0tA0YvkxcTZ9MQqtmzrlmof29c,8261
|
|
3
3
|
erdo/cli_entry.py,sha256=jz18bWz-D09rmkEvwLTAbcK1shHUqFCpiU7U7czEltY,2057
|
|
4
4
|
erdo/install_cli.py,sha256=jgRoSm-MIbLHW0Sr5m78q3htRwIh7JXo_wNmpVsiAcM,4454
|
|
@@ -13,11 +13,11 @@ erdo/_generated/internal_actions.py,sha256=dbZgHNF5RQhjyB8VAJ-4eaV2XUlqHKv99m-Dt
|
|
|
13
13
|
erdo/_generated/parameters.py,sha256=QC-_75fQg_iFu-dvI9ce4yHP9UnFItDWe6sBfzfXaig,472
|
|
14
14
|
erdo/_generated/secrets.py,sha256=F2xBkFsiYXOJnZ5Tcrc9uiaakyirHlKFkYCFxZKANtw,454
|
|
15
15
|
erdo/_generated/template_functions.py,sha256=mgFqsXxL36dMNptzDaGvNEjoA76nFf4k9ZRz-J4Ozdc,1174
|
|
16
|
-
erdo/_generated/types.py,sha256=
|
|
16
|
+
erdo/_generated/types.py,sha256=heiWWVNnCDqO8a99emh1XTtqRHIQEHKugWUoJUKq5Og,81094
|
|
17
17
|
erdo/_generated/actions/__init__.py,sha256=L5YKDEe1RikpvtkWxmTAThVLa-HxGfur3kcO-S7RB_w,1223
|
|
18
18
|
erdo/_generated/actions/analysis.py,sha256=xuDxpd4NiS4bW_JAAQEhQa4Impmq_sBfSaUt3SYhf0g,5483
|
|
19
19
|
erdo/_generated/actions/bot.py,sha256=5rQxG2GgU8V_sjLN6QIMTPZN5e5omURRLUppuNQegXM,6291
|
|
20
|
-
erdo/_generated/actions/codeexec.py,sha256=
|
|
20
|
+
erdo/_generated/actions/codeexec.py,sha256=31cZWnFHSAsYeu_y_gLlhcoKVpSl-C701OvilKb_qo4,6698
|
|
21
21
|
erdo/_generated/actions/llm.py,sha256=HvCXnnUadJnM4P3zrcQ2KIWyhqACAX4x0zw6VO6N3XI,5142
|
|
22
22
|
erdo/_generated/actions/memory.py,sha256=cSzlVrR2tMobaO4VBGtRPmBv5NGpUHq36nAG3yQQFVg,16321
|
|
23
23
|
erdo/_generated/actions/pdfextractor.py,sha256=UQ10OQ3K3FNKkqx18aG67Xbqd3GjB0nNh7DA6mpNs2g,3535
|
|
@@ -26,8 +26,8 @@ erdo/_generated/actions/sqlexec.py,sha256=z6SzgryI19wLhg-t_INqdG7n82lFGM4rfWvXEB
|
|
|
26
26
|
erdo/_generated/actions/utils.py,sha256=rLvks2e3FJT5IjaV3hQygC-jijS8yBkL37QPgsyopik,16135
|
|
27
27
|
erdo/_generated/actions/webparser.py,sha256=TonVmfVvnUPthvAT2rC_l8hvO25rCPhtYVR36pNPNQI,4184
|
|
28
28
|
erdo/_generated/actions/websearch.py,sha256=KGKeJwZDBUXg-fPkq8oe7vw1zsspSNJ_Ei-BhSLi3zg,2715
|
|
29
|
-
erdo/_generated/condition/__init__.py,sha256=
|
|
30
|
-
erdo/actions/__init__.py,sha256=
|
|
29
|
+
erdo/_generated/condition/__init__.py,sha256=tWS9LUWbMy8Q4yYG2ZHJuQibNbmACAEupe1f9PPQ11c,14808
|
|
30
|
+
erdo/actions/__init__.py,sha256=kb9vGSmhSGwxKNGacUCquu6z3d8u972uIw9x13aCrp0,1311
|
|
31
31
|
erdo/conditions/__init__.py,sha256=xN7MS1aj4lh65CrE-94yFQXnQV8v8VjdEXMzPLTK0CU,394
|
|
32
32
|
erdo/config/__init__.py,sha256=qUkApXToTQC88f5n6FDIuAfDM6na7ydOiKT1M5enbNo,121
|
|
33
33
|
erdo/config/config.py,sha256=BSerQVQdbbp1KuARpIuKp6bM1M4Cqr-Bsf0nQJJTND8,4279
|
|
@@ -36,10 +36,10 @@ erdo/invoke/client.py,sha256=h88WB5OQukt9KKQzGavmp_-A9o5R4ZvA49TffG1Xa2w,7582
|
|
|
36
36
|
erdo/invoke/invoke.py,sha256=yMD65tQiBzrYw_Z_lKdxW2C0lyut9N4n_OmKDp0c6k8,8166
|
|
37
37
|
erdo/sync/__init__.py,sha256=f-7-9cYngOiLrTDAng3JxMC86JIE6jFk6-Vjz_dMybs,311
|
|
38
38
|
erdo/sync/client.py,sha256=LrcyrsapuyrqmuPh-UwbocL7WUhHZ9zkDItXzon_AUs,3022
|
|
39
|
-
erdo/sync/extractor.py,sha256=
|
|
39
|
+
erdo/sync/extractor.py,sha256=iAIlRJqHr4e69XYnir2mZ6F6cUjnXp0P_EKsG1jdDLc,17217
|
|
40
40
|
erdo/sync/sync.py,sha256=KzuChW5ramY8rX6QM3emRda928A09CQzFLmLJ5PLztg,10421
|
|
41
|
-
erdo-0.1.
|
|
42
|
-
erdo-0.1.
|
|
43
|
-
erdo-0.1.
|
|
44
|
-
erdo-0.1.
|
|
45
|
-
erdo-0.1.
|
|
41
|
+
erdo-0.1.8.dist-info/METADATA,sha256=2gBPUH8bkBcY_RB9ohlnPWAdRqIr7WgSMyHsxgy0KJE,9127
|
|
42
|
+
erdo-0.1.8.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
43
|
+
erdo-0.1.8.dist-info/entry_points.txt,sha256=KFGSp8-6IE3-8dSr-3Djqye3IdEY65Y4E8fABoFUCHg,45
|
|
44
|
+
erdo-0.1.8.dist-info/licenses/LICENSE,sha256=9pdgUAuBAumY5tewMdJnx2Ozj8dS6gGKsSiY-SVInu4,1034
|
|
45
|
+
erdo-0.1.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|