polyapi-python 0.3.3.dev9__tar.gz → 0.3.3.dev11__tar.gz

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 (46) hide show
  1. {polyapi_python-0.3.3.dev9/polyapi_python.egg-info → polyapi_python-0.3.3.dev11}/PKG-INFO +1 -1
  2. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/generate.py +27 -2
  3. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/poly_schemas.py +8 -3
  4. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11/polyapi_python.egg-info}/PKG-INFO +1 -1
  5. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/pyproject.toml +1 -1
  6. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/LICENSE +0 -0
  7. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/README.md +0 -0
  8. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/__init__.py +0 -0
  9. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/__main__.py +0 -0
  10. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/api.py +0 -0
  11. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/auth.py +0 -0
  12. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/cli.py +0 -0
  13. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/client.py +0 -0
  14. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/config.py +0 -0
  15. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/constants.py +0 -0
  16. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/deployables.py +0 -0
  17. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/error_handler.py +0 -0
  18. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/exceptions.py +0 -0
  19. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/execute.py +0 -0
  20. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/function_cli.py +0 -0
  21. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/parser.py +0 -0
  22. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/prepare.py +0 -0
  23. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/py.typed +0 -0
  24. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/rendered_spec.py +0 -0
  25. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/schema.py +0 -0
  26. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/server.py +0 -0
  27. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/sync.py +0 -0
  28. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/typedefs.py +0 -0
  29. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/utils.py +0 -0
  30. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/variables.py +0 -0
  31. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi/webhook.py +0 -0
  32. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi_python.egg-info/SOURCES.txt +0 -0
  33. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi_python.egg-info/dependency_links.txt +0 -0
  34. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi_python.egg-info/requires.txt +0 -0
  35. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/polyapi_python.egg-info/top_level.txt +0 -0
  36. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/setup.cfg +0 -0
  37. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_api.py +0 -0
  38. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_auth.py +0 -0
  39. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_deployables.py +0 -0
  40. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_generate.py +0 -0
  41. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_parser.py +0 -0
  42. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_rendered_spec.py +0 -0
  43. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_schema.py +0 -0
  44. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_server.py +0 -0
  45. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_utils.py +0 -0
  46. {polyapi_python-0.3.3.dev9 → polyapi_python-0.3.3.dev11}/tests/test_variables.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polyapi-python
3
- Version: 0.3.3.dev9
3
+ Version: 0.3.3.dev11
4
4
  Summary: The Python Client for PolyAPI, the IPaaS by Developers for Developers
5
5
  Author-email: Dan Fellin <dan@polyapi.io>
6
6
  License: MIT License
@@ -95,6 +95,25 @@ def replace_poly_refs_in_functions(specs: List[SpecificationDto], schema_index):
95
95
  return specs
96
96
 
97
97
 
98
+ def replace_poly_refs_in_schemas(specs: List[SchemaSpecDto], schema_index):
99
+ spec_idxs_to_remove = []
100
+ for idx, spec in enumerate(specs):
101
+ try:
102
+ spec["definition"] = resolve_poly_refs(spec["definition"], schema_index)
103
+ except Exception:
104
+ # print()
105
+ print(f"{spec['context']}.{spec['name']} (id: {spec['id']}) failed to resolve poly refs, skipping!")
106
+ spec_idxs_to_remove.append(idx)
107
+
108
+ # reverse the list so we pop off later indexes first
109
+ spec_idxs_to_remove.reverse()
110
+
111
+ for idx in spec_idxs_to_remove:
112
+ specs.pop(idx)
113
+
114
+ return specs
115
+
116
+
98
117
  def parse_function_specs(
99
118
  specs: List[SpecificationDto],
100
119
  limit_ids: List[str] | None = None, # optional list of ids to limit to
@@ -117,6 +136,10 @@ def parse_function_specs(
117
136
  # poly libraries only support client functions of same language
118
137
  continue
119
138
 
139
+ # Functions with serverSideAsync True will always return a Dict with execution ID
140
+ if spec.get('serverSideAsync'):
141
+ spec['function']['returnType'] = {'kind': 'plain', 'value': 'object'}
142
+
120
143
  functions.append(spec)
121
144
 
122
145
  return functions
@@ -184,10 +207,12 @@ def generate() -> None:
184
207
  functions = parse_function_specs(specs, limit_ids=limit_ids)
185
208
 
186
209
  schemas = get_schemas()
210
+ schema_index = build_schema_index(schemas)
187
211
  if schemas:
188
- generate_schemas(schemas)
212
+ schema_limit_ids: List[str] = [] # useful for narrowing down generation to a single function to debug
213
+ schemas = replace_poly_refs_in_schemas(schemas, schema_index)
214
+ generate_schemas(schemas, limit_ids=schema_limit_ids)
189
215
 
190
- schema_index = build_schema_index(schemas)
191
216
  functions = replace_poly_refs_in_functions(functions, schema_index)
192
217
 
193
218
  if functions:
@@ -20,9 +20,14 @@ FALLBACK_SPEC_TEMPLATE = """class {name}(TypedDict, total=False):
20
20
  """
21
21
 
22
22
 
23
- def generate_schemas(specs: List[SchemaSpecDto]):
24
- for spec in specs:
25
- create_schema(spec)
23
+ def generate_schemas(specs: List[SchemaSpecDto], limit_ids: List[str] = None):
24
+ if limit_ids:
25
+ for spec in specs:
26
+ if spec["id"] in limit_ids:
27
+ create_schema(spec)
28
+ else:
29
+ for spec in specs:
30
+ create_schema(spec)
26
31
 
27
32
 
28
33
  def add_schema_file(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: polyapi-python
3
- Version: 0.3.3.dev9
3
+ Version: 0.3.3.dev11
4
4
  Summary: The Python Client for PolyAPI, the IPaaS by Developers for Developers
5
5
  Author-email: Dan Fellin <dan@polyapi.io>
6
6
  License: MIT License
@@ -3,7 +3,7 @@ requires = ["setuptools>=61.2", "wheel"]
3
3
 
4
4
  [project]
5
5
  name = "polyapi-python"
6
- version = "0.3.3.dev9"
6
+ version = "0.3.3.dev11"
7
7
  description = "The Python Client for PolyAPI, the IPaaS by Developers for Developers"
8
8
  authors = [{ name = "Dan Fellin", email = "dan@polyapi.io" }]
9
9
  dependencies = [