erdo 0.1.31__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.
Files changed (48) hide show
  1. erdo/__init__.py +35 -0
  2. erdo/_generated/__init__.py +18 -0
  3. erdo/_generated/actions/__init__.py +34 -0
  4. erdo/_generated/actions/analysis.py +179 -0
  5. erdo/_generated/actions/bot.py +186 -0
  6. erdo/_generated/actions/codeexec.py +199 -0
  7. erdo/_generated/actions/llm.py +148 -0
  8. erdo/_generated/actions/memory.py +463 -0
  9. erdo/_generated/actions/pdfextractor.py +97 -0
  10. erdo/_generated/actions/resource_definitions.py +296 -0
  11. erdo/_generated/actions/sqlexec.py +90 -0
  12. erdo/_generated/actions/utils.py +475 -0
  13. erdo/_generated/actions/webparser.py +119 -0
  14. erdo/_generated/actions/websearch.py +85 -0
  15. erdo/_generated/condition/__init__.py +556 -0
  16. erdo/_generated/internal.py +51 -0
  17. erdo/_generated/internal_actions.py +91 -0
  18. erdo/_generated/parameters.py +17 -0
  19. erdo/_generated/secrets.py +17 -0
  20. erdo/_generated/template_functions.py +55 -0
  21. erdo/_generated/types.py +3907 -0
  22. erdo/actions/__init__.py +40 -0
  23. erdo/bot_permissions.py +266 -0
  24. erdo/cli_entry.py +73 -0
  25. erdo/conditions/__init__.py +11 -0
  26. erdo/config/__init__.py +5 -0
  27. erdo/config/config.py +140 -0
  28. erdo/formatting.py +279 -0
  29. erdo/install_cli.py +140 -0
  30. erdo/integrations.py +131 -0
  31. erdo/invoke/__init__.py +11 -0
  32. erdo/invoke/client.py +234 -0
  33. erdo/invoke/invoke.py +555 -0
  34. erdo/state.py +376 -0
  35. erdo/sync/__init__.py +17 -0
  36. erdo/sync/client.py +95 -0
  37. erdo/sync/extractor.py +492 -0
  38. erdo/sync/sync.py +327 -0
  39. erdo/template.py +136 -0
  40. erdo/test/__init__.py +41 -0
  41. erdo/test/evaluate.py +272 -0
  42. erdo/test/runner.py +263 -0
  43. erdo/types.py +1431 -0
  44. erdo-0.1.31.dist-info/METADATA +471 -0
  45. erdo-0.1.31.dist-info/RECORD +48 -0
  46. erdo-0.1.31.dist-info/WHEEL +4 -0
  47. erdo-0.1.31.dist-info/entry_points.txt +2 -0
  48. erdo-0.1.31.dist-info/licenses/LICENSE +22 -0
@@ -0,0 +1,97 @@
1
+ """
2
+ PDF extraction actions for extracting tables and text from PDF documents using Document AI and Gemini service functions.
3
+ Auto-generated - DO NOT EDIT.
4
+
5
+ Provides type-safe action definitions for pdfextractor service.
6
+ Actual execution happens in the Go backend after syncing.
7
+ """
8
+
9
+ from typing import Any, Dict, List, Optional, Union
10
+
11
+ from pydantic import BaseModel
12
+
13
+ from erdo.template import TemplateString
14
+ from erdo.types import StepMetadata
15
+
16
+
17
+ class ExtractParams(BaseModel):
18
+ """Extract tables and text from PDF documents using Google Document AI with Gemini fallback parameters"""
19
+
20
+ name: str = "pdfextractor.extract" # Action type for roundtrip compatibility
21
+ file_path: Optional[Union[str, TemplateString]] = None # file_path parameter
22
+ url: Optional[Union[str, TemplateString]] = None # url parameter
23
+ dataset_id: Optional[Union[str, TemplateString]] = None # dataset_id parameter
24
+ content: Optional[Union[str, TemplateString]] = None # content parameter
25
+ extract_tables: Optional[Union[bool, TemplateString]] = (
26
+ None # extract_tables parameter
27
+ )
28
+ extract_text: Optional[Union[bool, TemplateString]] = None # extract_text parameter
29
+ fallback_to_gemini: Optional[Union[bool, TemplateString]] = (
30
+ None # fallback_to_gemini parameter
31
+ )
32
+ timeout_seconds: Optional[Union[int, TemplateString]] = (
33
+ None # timeout_seconds parameter
34
+ )
35
+
36
+
37
+ class ExtractResult(BaseModel):
38
+ """Extract tables and text from PDF documents using Google Document AI with Gemini fallback result type
39
+
40
+ Result schema for pdfextractor.extract action.
41
+ """
42
+
43
+ tables: List[Dict[str, Any]]
44
+ page_count: float
45
+ extraction_method: str
46
+ processing_time_ms: float
47
+ file_size_bytes: float
48
+ text: Optional[str]
49
+ warnings: Optional[List[str]]
50
+
51
+
52
+ def extract(
53
+ file_path: Optional[Union[str, TemplateString]] = None,
54
+ url: Optional[Union[str, TemplateString]] = None,
55
+ dataset_id: Optional[Union[str, TemplateString]] = None,
56
+ content: Optional[Union[str, TemplateString]] = None,
57
+ extract_tables: Optional[Union[bool, TemplateString]] = None,
58
+ extract_text: Optional[Union[bool, TemplateString]] = None,
59
+ fallback_to_gemini: Optional[Union[bool, TemplateString]] = None,
60
+ timeout_seconds: Optional[Union[int, TemplateString]] = None,
61
+ step_metadata: Optional[StepMetadata] = None,
62
+ **params: Any,
63
+ ) -> ExtractParams:
64
+ """Extract tables and text from PDF documents using Google Document AI with Gemini fallback
65
+
66
+ Args:
67
+ file_path: file_path parameter
68
+ url: url parameter
69
+ dataset_id: dataset_id parameter
70
+ content: content parameter
71
+ extract_tables: extract_tables parameter
72
+ extract_text: extract_text parameter
73
+ fallback_to_gemini: fallback_to_gemini parameter
74
+ timeout_seconds: timeout_seconds parameter
75
+
76
+ Returns:
77
+ ExtractParams: Type-safe parameter object
78
+ """
79
+ param_dict = {
80
+ "file_path": file_path,
81
+ "url": url,
82
+ "dataset_id": dataset_id,
83
+ "content": content,
84
+ "extract_tables": extract_tables,
85
+ "extract_text": extract_text,
86
+ "fallback_to_gemini": fallback_to_gemini,
87
+ "timeout_seconds": timeout_seconds,
88
+ }
89
+ # Remove None values for optional parameters
90
+ param_dict = {k: v for k, v in param_dict.items() if v is not None}
91
+ param_dict.update(params)
92
+
93
+ return ExtractParams(**param_dict)
94
+
95
+
96
+ # Associate parameter classes with their result types
97
+ ExtractParams._result = ExtractResult
@@ -0,0 +1,296 @@
1
+ """
2
+ Resource definition actions for managing and searching data resources service functions.
3
+ Auto-generated - DO NOT EDIT.
4
+
5
+ Provides type-safe action definitions for resource_definitions service.
6
+ Actual execution happens in the Go backend after syncing.
7
+ """
8
+
9
+ from typing import Any, List, Optional, Union
10
+
11
+ from pydantic import BaseModel
12
+
13
+ from erdo._generated.types import Resource
14
+ from erdo.template import TemplateString
15
+
16
+
17
+ class BaseActionParams(BaseModel):
18
+ """Base class for all action parameter classes.
19
+
20
+ Provides common fields that all actions support:
21
+ - name: The action type identifier
22
+ - step_metadata: Optional configuration for the step created from this action
23
+ """
24
+
25
+ name: str
26
+ step_metadata: Optional[Any] = None
27
+
28
+
29
+ class SearchParams(BaseActionParams):
30
+ """Search for resource definitions using query and key filters parameters"""
31
+
32
+ name: str = "resource_definitions.search" # Action type for roundtrip compatibility
33
+ query: Optional[Union[str, TemplateString]] = None # query parameter
34
+ or_keys: Optional[Any] = None # or_keys parameter
35
+ and_keys: Optional[Any] = None # and_keys parameter
36
+ thread_id: Optional[Union[str, TemplateString]] = None # thread_id parameter
37
+ dataset_id: Optional[Union[str, TemplateString]] = None # dataset_id parameter
38
+ integration_id: Optional[Union[str, TemplateString]] = (
39
+ None # integration_id parameter
40
+ )
41
+ integration_config_id: Optional[Union[str, TemplateString]] = (
42
+ None # integration_config_id parameter
43
+ )
44
+ limit: Optional[Union[int, TemplateString]] = None # limit parameter
45
+
46
+
47
+ class ListParams(BaseActionParams):
48
+ """List resource definitions with optional filtering by dataset, integration, or attach type parameters"""
49
+
50
+ name: str = "resource_definitions.list" # Action type for roundtrip compatibility
51
+ thread_id: Optional[Union[str, TemplateString]] = None # thread_id parameter
52
+ dataset_id: Optional[Union[str, TemplateString]] = None # dataset_id parameter
53
+ integration_id: Optional[Union[str, TemplateString]] = (
54
+ None # integration_id parameter
55
+ )
56
+ integration_config_id: Optional[Union[str, TemplateString]] = (
57
+ None # integration_config_id parameter
58
+ )
59
+ attach_type: Optional[Union[str, TemplateString]] = None # attach_type parameter
60
+ limit: Optional[Union[int, TemplateString]] = None # limit parameter
61
+
62
+
63
+ class ListByKeysParams(BaseActionParams):
64
+ """List resource definitions filtered by specific keys with optional additional filters parameters"""
65
+
66
+ name: str = (
67
+ "resource_definitions.list_by_keys" # Action type for roundtrip compatibility
68
+ )
69
+ keys: Optional[Any] = None # keys parameter
70
+ thread_id: Optional[Union[str, TemplateString]] = None # thread_id parameter
71
+ dataset_id: Optional[Union[str, TemplateString]] = None # dataset_id parameter
72
+ integration_id: Optional[Union[str, TemplateString]] = (
73
+ None # integration_id parameter
74
+ )
75
+ integration_config_id: Optional[Union[str, TemplateString]] = (
76
+ None # integration_config_id parameter
77
+ )
78
+ attach_type: Optional[Union[str, TemplateString]] = None # attach_type parameter
79
+ limit: Optional[Union[int, TemplateString]] = None # limit parameter
80
+
81
+
82
+ class SearchFromQueriesParams(BaseActionParams):
83
+ """Search resource definitions using multiple queries including integration-specific queries parameters"""
84
+
85
+ name: str = (
86
+ "resource_definitions.search_from_queries" # Action type for roundtrip compatibility
87
+ )
88
+ integration_queries: Optional[Any] = None # integration_queries parameter
89
+ or_keys: Optional[Any] = None # or_keys parameter
90
+ and_keys: Optional[Any] = None # and_keys parameter
91
+ thread_id: Optional[Union[str, TemplateString]] = None # thread_id parameter
92
+ limit: Optional[Union[int, TemplateString]] = None # limit parameter
93
+ authorizers: Optional[Any] = None # authorizers parameter
94
+
95
+
96
+ class SearchResult(BaseModel):
97
+ """Search for resource definitions using query and key filters result type
98
+
99
+ Result schema for resource_definitions.search action.
100
+ """
101
+
102
+ resource_definitions: List[Resource]
103
+
104
+
105
+ class ListResult(BaseModel):
106
+ """List resource definitions with optional filtering by dataset, integration, or attach type result type
107
+
108
+ Result schema for resource_definitions.list action.
109
+ """
110
+
111
+ resource_definitions: List[Resource]
112
+
113
+
114
+ class ListByKeysResult(BaseModel):
115
+ """List resource definitions filtered by specific keys with optional additional filters result type
116
+
117
+ Result schema for resource_definitions.list_by_keys action.
118
+ """
119
+
120
+ resource_definitions: List[Resource]
121
+
122
+
123
+ class SearchFromQueriesResult(BaseModel):
124
+ """Search resource definitions using multiple queries including integration-specific queries result type
125
+
126
+ Generic result schema for resource_definitions.search_from_queries action.
127
+ """
128
+
129
+ success: bool = True # Whether the action was successful
130
+
131
+ class Config:
132
+ extra = "allow" # Allow additional fields dynamically
133
+
134
+
135
+ def search(
136
+ query: Optional[Union[str, TemplateString]] = None,
137
+ or_keys: Optional[Any] = None,
138
+ and_keys: Optional[Any] = None,
139
+ thread_id: Optional[Union[str, TemplateString]] = None,
140
+ dataset_id: Optional[Union[str, TemplateString]] = None,
141
+ integration_id: Optional[Union[str, TemplateString]] = None,
142
+ integration_config_id: Optional[Union[str, TemplateString]] = None,
143
+ limit: Optional[Union[int, TemplateString]] = None,
144
+ **params: Any,
145
+ ) -> SearchParams:
146
+ """Search for resource definitions using query and key filters
147
+
148
+ Args:
149
+ query: query parameter
150
+ or_keys: or_keys parameter
151
+ and_keys: and_keys parameter
152
+ thread_id: thread_id parameter
153
+ dataset_id: dataset_id parameter
154
+ integration_id: integration_id parameter
155
+ integration_config_id: integration_config_id parameter
156
+ limit: limit parameter
157
+
158
+ Returns:
159
+ SearchParams: Type-safe parameter object
160
+ """
161
+ param_dict = {
162
+ "query": query,
163
+ "or_keys": or_keys,
164
+ "and_keys": and_keys,
165
+ "thread_id": thread_id,
166
+ "dataset_id": dataset_id,
167
+ "integration_id": integration_id,
168
+ "integration_config_id": integration_config_id,
169
+ "limit": limit,
170
+ }
171
+ # Remove None values for optional parameters
172
+ param_dict = {k: v for k, v in param_dict.items() if v is not None}
173
+ param_dict.update(params)
174
+ params_obj = SearchParams(**param_dict)
175
+ return params_obj
176
+
177
+
178
+ def list(
179
+ thread_id: Optional[Union[str, TemplateString]] = None,
180
+ dataset_id: Optional[Union[str, TemplateString]] = None,
181
+ integration_id: Optional[Union[str, TemplateString]] = None,
182
+ integration_config_id: Optional[Union[str, TemplateString]] = None,
183
+ attach_type: Optional[Union[str, TemplateString]] = None,
184
+ limit: Optional[Union[int, TemplateString]] = None,
185
+ **params: Any,
186
+ ) -> ListParams:
187
+ """List resource definitions with optional filtering by dataset, integration, or attach type
188
+
189
+ Args:
190
+ thread_id: thread_id parameter
191
+ dataset_id: dataset_id parameter
192
+ integration_id: integration_id parameter
193
+ integration_config_id: integration_config_id parameter
194
+ attach_type: attach_type parameter
195
+ limit: limit parameter
196
+
197
+ Returns:
198
+ ListParams: Type-safe parameter object
199
+ """
200
+ param_dict = {
201
+ "thread_id": thread_id,
202
+ "dataset_id": dataset_id,
203
+ "integration_id": integration_id,
204
+ "integration_config_id": integration_config_id,
205
+ "attach_type": attach_type,
206
+ "limit": limit,
207
+ }
208
+ # Remove None values for optional parameters
209
+ param_dict = {k: v for k, v in param_dict.items() if v is not None}
210
+ param_dict.update(params)
211
+ params_obj = ListParams(**param_dict)
212
+ return params_obj
213
+
214
+
215
+ def list_by_keys(
216
+ keys: Optional[Any] = None,
217
+ thread_id: Optional[Union[str, TemplateString]] = None,
218
+ dataset_id: Optional[Union[str, TemplateString]] = None,
219
+ integration_id: Optional[Union[str, TemplateString]] = None,
220
+ integration_config_id: Optional[Union[str, TemplateString]] = None,
221
+ attach_type: Optional[Union[str, TemplateString]] = None,
222
+ limit: Optional[Union[int, TemplateString]] = None,
223
+ **params: Any,
224
+ ) -> ListByKeysParams:
225
+ """List resource definitions filtered by specific keys with optional additional filters
226
+
227
+ Args:
228
+ keys: keys parameter
229
+ thread_id: thread_id parameter
230
+ dataset_id: dataset_id parameter
231
+ integration_id: integration_id parameter
232
+ integration_config_id: integration_config_id parameter
233
+ attach_type: attach_type parameter
234
+ limit: limit parameter
235
+
236
+ Returns:
237
+ ListByKeysParams: Type-safe parameter object
238
+ """
239
+ param_dict = {
240
+ "keys": keys,
241
+ "thread_id": thread_id,
242
+ "dataset_id": dataset_id,
243
+ "integration_id": integration_id,
244
+ "integration_config_id": integration_config_id,
245
+ "attach_type": attach_type,
246
+ "limit": limit,
247
+ }
248
+ # Remove None values for optional parameters
249
+ param_dict = {k: v for k, v in param_dict.items() if v is not None}
250
+ param_dict.update(params)
251
+ params_obj = ListByKeysParams(**param_dict)
252
+ return params_obj
253
+
254
+
255
+ def search_from_queries(
256
+ integration_queries: Optional[Any] = None,
257
+ or_keys: Optional[Any] = None,
258
+ and_keys: Optional[Any] = None,
259
+ thread_id: Optional[Union[str, TemplateString]] = None,
260
+ limit: Optional[Union[int, TemplateString]] = None,
261
+ authorizers: Optional[Any] = None,
262
+ **params: Any,
263
+ ) -> SearchFromQueriesParams:
264
+ """Search resource definitions using multiple queries including integration-specific queries
265
+
266
+ Args:
267
+ integration_queries: integration_queries parameter
268
+ or_keys: or_keys parameter
269
+ and_keys: and_keys parameter
270
+ thread_id: thread_id parameter
271
+ limit: limit parameter
272
+ authorizers: authorizers parameter
273
+
274
+ Returns:
275
+ SearchFromQueriesParams: Type-safe parameter object
276
+ """
277
+ param_dict = {
278
+ "integration_queries": integration_queries,
279
+ "or_keys": or_keys,
280
+ "and_keys": and_keys,
281
+ "thread_id": thread_id,
282
+ "limit": limit,
283
+ "authorizers": authorizers,
284
+ }
285
+ # Remove None values for optional parameters
286
+ param_dict = {k: v for k, v in param_dict.items() if v is not None}
287
+ param_dict.update(params)
288
+ params_obj = SearchFromQueriesParams(**param_dict)
289
+ return params_obj
290
+
291
+
292
+ # Associate parameter classes with their result types
293
+ SearchParams._result = SearchResult
294
+ ListParams._result = ListResult
295
+ ListByKeysParams._result = ListByKeysResult
296
+ SearchFromQueriesParams._result = SearchFromQueriesResult
@@ -0,0 +1,90 @@
1
+ """
2
+ SQL execution actions for running queries against database integrations service functions.
3
+ Auto-generated - DO NOT EDIT.
4
+
5
+ Provides type-safe action definitions for sqlexec service.
6
+ Actual execution happens in the Go backend after syncing.
7
+ """
8
+
9
+ from typing import Any, List, Optional, Union
10
+
11
+ from pydantic import BaseModel
12
+
13
+ from erdo.template import TemplateString
14
+
15
+
16
+ class BaseActionParams(BaseModel):
17
+ """Base class for all action parameter classes.
18
+
19
+ Provides common fields that all actions support:
20
+ - name: The action type identifier
21
+ - step_metadata: Optional configuration for the step created from this action
22
+ """
23
+
24
+ name: str
25
+ step_metadata: Optional[Any] = None
26
+
27
+
28
+ class ExecuteParams(BaseActionParams):
29
+ """Execute SQL queries against database integrations and return structured results parameters"""
30
+
31
+ name: str = "sqlexec.execute" # Action type for roundtrip compatibility
32
+ query: Optional[Union[str, TemplateString]] = None # query parameter
33
+ dataset_slug: Optional[Union[str, TemplateString]] = None # dataset_slug parameter
34
+ resource: Optional[Any] = None # resource parameter
35
+ store_results: Optional[Union[bool, TemplateString]] = (
36
+ None # store_results parameter
37
+ )
38
+ encryption_key: Optional[Union[str, TemplateString]] = (
39
+ None # encryption_key parameter
40
+ )
41
+
42
+
43
+ class ExecuteResult(BaseModel):
44
+ """Execute SQL queries against database integrations and return structured results result type
45
+
46
+ Result schema for sqlexec.execute action.
47
+ """
48
+
49
+ columns: List[str]
50
+ rows: List[List[Any]]
51
+ row_count: float
52
+ error: Optional[str]
53
+
54
+
55
+ def execute(
56
+ query: Optional[Union[str, TemplateString]] = None,
57
+ dataset_slug: Optional[Union[str, TemplateString]] = None,
58
+ resource: Optional[Any] = None,
59
+ store_results: Optional[Union[bool, TemplateString]] = None,
60
+ encryption_key: Optional[Union[str, TemplateString]] = None,
61
+ **params: Any,
62
+ ) -> ExecuteParams:
63
+ """Execute SQL queries against database integrations and return structured results
64
+
65
+ Args:
66
+ query: query parameter
67
+ dataset_slug: dataset_slug parameter
68
+ resource: resource parameter
69
+ store_results: store_results parameter
70
+ encryption_key: encryption_key parameter
71
+
72
+ Returns:
73
+ ExecuteParams: Type-safe parameter object
74
+ """
75
+ param_dict = {
76
+ "query": query,
77
+ "dataset_slug": dataset_slug,
78
+ "resource": resource,
79
+ "store_results": store_results,
80
+ "encryption_key": encryption_key,
81
+ }
82
+ # Remove None values for optional parameters
83
+ param_dict = {k: v for k, v in param_dict.items() if v is not None}
84
+ param_dict.update(params)
85
+ params_obj = ExecuteParams(**param_dict)
86
+ return params_obj
87
+
88
+
89
+ # Associate parameter classes with their result types
90
+ ExecuteParams._result = ExecuteResult