polyapi-python 0.3.3.dev9__py3-none-any.whl → 0.3.3.dev11__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.
- polyapi/generate.py +27 -2
- polyapi/poly_schemas.py +8 -3
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev11.dist-info}/METADATA +1 -1
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev11.dist-info}/RECORD +7 -7
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev11.dist-info}/WHEEL +1 -1
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev11.dist-info}/licenses/LICENSE +0 -0
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev11.dist-info}/top_level.txt +0 -0
polyapi/generate.py
CHANGED
|
@@ -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
|
-
|
|
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:
|
polyapi/poly_schemas.py
CHANGED
|
@@ -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
|
-
|
|
25
|
-
|
|
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(
|
|
@@ -11,9 +11,9 @@ polyapi/error_handler.py,sha256=I_e0iz6VM23FLVQWJljxs2NGcl_OODbi43OcbnqBlp8,2398
|
|
|
11
11
|
polyapi/exceptions.py,sha256=Zh7i7eCUhDuXEdUYjatkLFTeZkrx1BJ1P5ePgbJ9eIY,89
|
|
12
12
|
polyapi/execute.py,sha256=T9lXtiOz-JZTJgBKvJptA5_mz31qvYa6-O4NzM52mq4,2118
|
|
13
13
|
polyapi/function_cli.py,sha256=htgmcx_dPmw4_5NKRgIivcwS7D8bkOsxCTOrJhzV3pU,3989
|
|
14
|
-
polyapi/generate.py,sha256=
|
|
14
|
+
polyapi/generate.py,sha256=pmlhaQEqzuqUI-XfuRave6oB_x0MDCV4Q7HMjd-hvAQ,11514
|
|
15
15
|
polyapi/parser.py,sha256=mdoh4pNq8pyiHE0-i6Coqj8frEXfBLRk6itpAXMrrgI,20373
|
|
16
|
-
polyapi/poly_schemas.py,sha256=
|
|
16
|
+
polyapi/poly_schemas.py,sha256=T4kfZyfgVLiqLD28GmYNiHnrNx77J_HO4uzk8LUAhlo,3137
|
|
17
17
|
polyapi/prepare.py,sha256=Q8CWV4kmZ2dbXYVsud34AgJkj5ymcQ_IcYhLuikc9yk,6659
|
|
18
18
|
polyapi/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
19
|
polyapi/rendered_spec.py,sha256=uaNzBhP4cX7iGfKwzZv0dxMagWzsGeDr0cQYx_AyIhQ,2153
|
|
@@ -24,8 +24,8 @@ polyapi/typedefs.py,sha256=KniVl7vwcDOhgAJmHSgTJKkP0rKWvSLIPOGsWuf9jRU,2239
|
|
|
24
24
|
polyapi/utils.py,sha256=K6QMKEf2fgmh3AswyNBADfv53sIOSAbXmGx2MaW5vy8,10261
|
|
25
25
|
polyapi/variables.py,sha256=d36-trnfTL_8m2NkorMiImb4O3UrJbiFV38CHxV5i0A,4200
|
|
26
26
|
polyapi/webhook.py,sha256=LWv28c2MLz_OKBI_Nn7WR4C-gs1SWgbdXsoxIIf-9UI,4886
|
|
27
|
-
polyapi_python-0.3.3.
|
|
28
|
-
polyapi_python-0.3.3.
|
|
29
|
-
polyapi_python-0.3.3.
|
|
30
|
-
polyapi_python-0.3.3.
|
|
31
|
-
polyapi_python-0.3.3.
|
|
27
|
+
polyapi_python-0.3.3.dev11.dist-info/licenses/LICENSE,sha256=6b_I7aPVp8JXhqQwdw7_B84Ca0S4JGjHj0sr_1VOdB4,1068
|
|
28
|
+
polyapi_python-0.3.3.dev11.dist-info/METADATA,sha256=tG1xPLUqwNCb0FTf9Bux5r0WxBgRkVCFha8XJd-kbNQ,5783
|
|
29
|
+
polyapi_python-0.3.3.dev11.dist-info/WHEEL,sha256=wXxTzcEDnjrTwFYjLPcsW_7_XihufBwmpiBeiXNBGEA,91
|
|
30
|
+
polyapi_python-0.3.3.dev11.dist-info/top_level.txt,sha256=CEFllOnzowci_50RYJac-M54KD2IdAptFsayVVF_f04,8
|
|
31
|
+
polyapi_python-0.3.3.dev11.dist-info/RECORD,,
|
{polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev11.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|