Skip to content

Commit 4c83e6e

Browse files
committed
Add override default parameterse
1 parent d5b109c commit 4c83e6e

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

openapi_to_sdk/sdk_automation.py

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88

99
class PythonSDKBuilder(PythonWriter):
1010
def __init__(self, url: str='', sample_endpoint: str='',
11-
inherited_properties: List[str]=[], json_fn: str=None, decorators: Dict[str, str]={}):
11+
inherited_properties: List[str]=[], json_fn: str=None,
12+
decorators: Dict[str, str]={}, override_param_defaults={}):
1213
"""
1314
Args:
1415
url:
1516
Sample endpoint: Endpoint for quick testing
17+
override_param_defaults: Override param defaults in SDK
1618
"""
1719
self.sample_endpoint = sample_endpoint
1820
self.url = url
@@ -23,6 +25,7 @@ def __init__(self, url: str='', sample_endpoint: str='',
2325
self.inherited_properties = inherited_properties
2426
self.decorators = decorators
2527
self.indent_level = 0
28+
self.override_param_defaults=override_param_defaults
2629

2730
def _download_json(self):
2831
return requests.get(self.url + "/openapi.json").json()
@@ -121,12 +124,31 @@ def create_documentation(self, endpoint):
121124
documentation += '\n'
122125
return documentation
123126

127+
def get_default_value_from_override(self, param):
128+
if 'title' in param.keys():
129+
if param['title'] in self.override_param_defaults:
130+
return self.override_param_defaults[param['title']]
131+
if 'name' in param.keys():
132+
if param['name'] in self.override_param_defaults:
133+
return self.override_param_defaults[param['name']]
134+
return self.missing_value
135+
124136
def get_default_value_in_param(self, param):
137+
default_value = self.get_default_value_from_override(param)
138+
if default_value != self.missing_value:
139+
return default_value
125140
if 'default' in param.keys():
126141
return param['default']
127142
if 'schema' in param.keys():
128143
if 'default' in param['schema']:
129144
return param['schema']['default']
145+
# if 'minimum' in param['schema']:
146+
# return param['schema']['minimum']
147+
return self.missing_value
148+
149+
@property
150+
def missing_value(self):
151+
return -99999
130152

131153
def get_decorator_string(self):
132154
string = ''
@@ -153,7 +175,7 @@ def get_request_get_template(self, endpoint_metadata_name, endpoint, body_kwargs
153175
if param['name'] in self.inherited_properties:
154176
continue
155177
default_parameter = self.get_default_value_in_param(param)
156-
if default_parameter is not None:
178+
if default_parameter != self.missing_value:
157179
if isinstance(default_parameter, str):
158180
default_parameter = '"' + str(default_parameter) + '"'
159181
# string += "=" + str(default_parameter)
@@ -173,7 +195,7 @@ def get_request_get_template(self, endpoint_metadata_name, endpoint, body_kwargs
173195
default_arguments = []
174196
for param in body_kwargs:
175197
default_parameter = self.get_default_value_in_param(param)
176-
if default_parameter is not None:
198+
if default_parameter != self.missing_value:
177199
default_arguments.append(default_parameter)
178200
string += self.add_indent() + param['name'] + '=' + param['name'] + ', '
179201
elif param['name'] in self.inherited_properties:
@@ -204,7 +226,7 @@ def get_request_post_template(self, endpoint_metadata_name, endpoint, body_kwarg
204226
if k in self.inherited_properties:
205227
continue
206228
default_parameter = self.get_default_value_in_param(v)
207-
if default_parameter is not None:
229+
if default_parameter != self.missing_value:
208230
if isinstance(default_parameter, str):
209231
default_parameter = '"' + str(default_parameter) + '"'
210232
# string += "=" + str(default_parameter)

tests/test_vectorai.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ def test_smoke():
1818
decorators=[
1919
# 'retry()',
2020
"return_curl_or_response('json')"],
21+
override_param_defaults={'min_score':None},
2122
)
2223
sdk.to_python_file(
2324
class_name="ViAPIClient",
@@ -27,7 +28,8 @@ def test_smoke():
2728
"list_collections",
2829
"create_collection",
2930
"search"
30-
]
31+
],
32+
include_response_parsing=False
3133
)
3234

3335
def test_import():

0 commit comments

Comments
 (0)