polyapi-python 0.3.3.dev9__py3-none-any.whl → 0.3.3.dev10__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 +23 -2
- polyapi/poly_schemas.py +8 -3
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev10.dist-info}/METADATA +1 -1
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev10.dist-info}/RECORD +7 -7
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev10.dist-info}/WHEEL +0 -0
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev10.dist-info}/licenses/LICENSE +0 -0
- {polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev10.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
|
|
@@ -184,10 +203,12 @@ def generate() -> None:
|
|
|
184
203
|
functions = parse_function_specs(specs, limit_ids=limit_ids)
|
|
185
204
|
|
|
186
205
|
schemas = get_schemas()
|
|
206
|
+
schema_index = build_schema_index(schemas)
|
|
187
207
|
if schemas:
|
|
188
|
-
|
|
208
|
+
schema_limit_ids: List[str] = [] # useful for narrowing down generation to a single function to debug
|
|
209
|
+
schemas = replace_poly_refs_in_schemas(schemas, schema_index)
|
|
210
|
+
generate_schemas(schemas, limit_ids=schema_limit_ids)
|
|
189
211
|
|
|
190
|
-
schema_index = build_schema_index(schemas)
|
|
191
212
|
functions = replace_poly_refs_in_functions(functions, schema_index)
|
|
192
213
|
|
|
193
214
|
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=6cD7h0HcwMbNxSwYbOPaGdw3znZm-GBGCbze840OnBk,11301
|
|
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.dev10.dist-info/licenses/LICENSE,sha256=6b_I7aPVp8JXhqQwdw7_B84Ca0S4JGjHj0sr_1VOdB4,1068
|
|
28
|
+
polyapi_python-0.3.3.dev10.dist-info/METADATA,sha256=zah6PlD1weUQ2WwxTyW6Bjfi38_u6GhiUoVEvP_eRkI,5783
|
|
29
|
+
polyapi_python-0.3.3.dev10.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
|
30
|
+
polyapi_python-0.3.3.dev10.dist-info/top_level.txt,sha256=CEFllOnzowci_50RYJac-M54KD2IdAptFsayVVF_f04,8
|
|
31
|
+
polyapi_python-0.3.3.dev10.dist-info/RECORD,,
|
|
File without changes
|
{polyapi_python-0.3.3.dev9.dist-info → polyapi_python-0.3.3.dev10.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|