15
15
PRIMITIVE_TYPES = ["string" , "number" , "boolean" , "integer" ]
16
16
17
17
EDGE_CASES = {}
18
- replacement_file = (
19
- pathlib .Path (__file__ ).parent
20
- / "replacement.json"
21
- )
18
+ replacement_file = pathlib .Path (__file__ ).parent / "replacement.json"
22
19
if replacement_file .exists ():
23
20
with replacement_file .open () as f :
24
21
EDGE_CASES .update (json .load (f ))
@@ -96,7 +93,12 @@ def header(self, text, level, raw=None):
96
93
97
94
98
95
def docstring (text ):
99
- return m2r2 .convert (text .replace ("\\ n" , "\\ \\ n" ), renderer = CustomRenderer ())[1 :- 1 ].replace ("\\ " , " " ).replace ("\\ `" , "\\ \\ `" ).replace ("\n \n \n " , "\n \n " )
96
+ return (
97
+ m2r2 .convert (text .replace ("\\ n" , "\\ \\ n" ), renderer = CustomRenderer ())[1 :- 1 ]
98
+ .replace ("\\ " , " " )
99
+ .replace ("\\ `" , "\\ \\ `" )
100
+ .replace ("\n \n \n " , "\n \n " )
101
+ )
100
102
101
103
102
104
def _merge_imports (a , b ):
@@ -111,10 +113,7 @@ def format_parameters(kwargs, spec, version, replace_values=None):
111
113
imports = defaultdict (set )
112
114
113
115
parameters_spec = {p ["name" ]: p for p in spec .get ("parameters" , [])}
114
- if (
115
- "requestBody" in spec
116
- and "multipart/form-data" in spec ["requestBody" ]["content" ]
117
- ):
116
+ if "requestBody" in spec and "multipart/form-data" in spec ["requestBody" ]["content" ]:
118
117
parent = spec ["requestBody" ]["content" ]["multipart/form-data" ]["schema" ]
119
118
for name , schema in parent ["properties" ].items ():
120
119
parameters_spec [name ] = {
@@ -153,9 +152,7 @@ def get_name_and_imports(schema, version=None, imports=None):
153
152
name = schema .__reference__ ["$ref" ].split ("/" )[- 1 ]
154
153
if "oneOf" not in schema :
155
154
# do not include parent of oneOf schema
156
- imports [
157
- MODEL_IMPORT_TPL .format (version = version , name = safe_snake_case (name ))
158
- ].add (name )
155
+ imports [MODEL_IMPORT_TPL .format (version = version , name = safe_snake_case (name ))].add (name )
159
156
160
157
return name , imports
161
158
@@ -176,10 +173,10 @@ def format_data_with_schema(
176
173
imports = imports or defaultdict (set )
177
174
if schema .get ("type" ) not in {"string" , "integer" , "boolean" } or schema .get ("enum" ):
178
175
name , imports = get_name_and_imports (schema , version , imports )
176
+ if schema .get ("oneOf" ):
177
+ name = None
179
178
if name :
180
- imports [
181
- MODEL_IMPORT_TPL .format (version = version , name = safe_snake_case (name ))
182
- ].add (name )
179
+ imports [MODEL_IMPORT_TPL .format (version = version , name = safe_snake_case (name ))].add (name )
183
180
184
181
if "enum" in schema and data not in schema ["enum" ]:
185
182
raise ValueError (f"{ data } is not valid enum value { schema ['enum' ]} " )
@@ -321,15 +318,9 @@ def format_data_with_schema_dict(
321
318
imports = _merge_imports (imports , extra_imports )
322
319
323
320
if not name and "oneOf" not in schema :
324
- if (
325
- default_name
326
- and not schema .get ("additionalProperties" )
327
- and schema .get ("properties" )
328
- ):
321
+ if default_name and not schema .get ("additionalProperties" ) and schema .get ("properties" ):
329
322
name = default_name
330
- imports [
331
- MODEL_IMPORT_TPL .format (version = version , name = safe_snake_case (name ))
332
- ].add (name )
323
+ imports [MODEL_IMPORT_TPL .format (version = version , name = safe_snake_case (name ))].add (name )
333
324
else :
334
325
name = "dict"
335
326
warnings .warn (f"Unnamed schema { schema } for { data } " )
@@ -360,7 +351,7 @@ def format_data_with_schema_dict(
360
351
warnings .warn (f"[{ matched } ] { data } is not valid for schema { name } " )
361
352
362
353
if not parameters and data :
363
- parameters = ", " .join (f" { k } =\ "{ v } \" " for k , v in data .items ())
354
+ parameters = ", " .join (f' { k } ="{ v } "' for k , v in data .items ())
364
355
365
356
if name :
366
357
return f"{ name } ({ parameters } )" , imports
0 commit comments