Skip to content

Commit adb936c

Browse files
committed
ci: regenerated with OpenAPI Doc 0.3.0, Speakeay CLI 1.20.0
1 parent df5fff3 commit adb936c

File tree

6 files changed

+86
-64
lines changed

6 files changed

+86
-64
lines changed

RELEASES.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,4 +302,12 @@ Based on:
302302
- OpenAPI Doc 0.3.0 https://docs.speakeasyapi.dev/openapi.yaml
303303
- Speakeasy CLI 1.19.7 (2.17.9) https://github.com/speakeasy-api/speakeasy
304304
### Releases
305-
- [PyPI v1.15.1] https://pypi.org/project/speakeasy-client-sdk-python/1.15.1 - .
305+
- [PyPI v1.15.1] https://pypi.org/project/speakeasy-client-sdk-python/1.15.1 - .
306+
307+
## 2023-04-14 00:09:24
308+
### Changes
309+
Based on:
310+
- OpenAPI Doc 0.3.0 https://docs.speakeasyapi.dev/openapi.yaml
311+
- Speakeasy CLI 1.20.0 (2.18.0) https://github.com/speakeasy-api/speakeasy
312+
### Releases
313+
- [PyPI v1.16.0] https://pypi.org/project/speakeasy-client-sdk-python/1.16.0 - .

gen.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@ configVersion: 1.0.0
22
management:
33
docChecksum: 2bba3b8f9d211b02569b3f9aff0d34b4
44
docVersion: 0.3.0
5-
speakeasyVersion: 1.19.7
6-
generationVersion: 2.17.9
5+
speakeasyVersion: 1.20.0
6+
generationVersion: 2.18.0
77
generation:
88
telemetryEnabled: true
99
sdkClassName: speakeasy
1010
sdkFlattening: false
1111
singleTagPerOp: false
1212
python:
13-
version: 1.15.1
13+
version: 1.16.0
1414
author: Speakeasy
1515
description: Speakeasy API Client SDK for Python
1616
packageName: speakeasy-client-sdk-python

pylintrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -440,6 +440,7 @@ disable=raw-checker-failed,
440440
using-constant-test,
441441
too-many-statements,
442442
cyclic-import,
443+
too-many-nested-blocks
443444

444445
# Enable the message, report, category or checker with the given id(s). You can
445446
# either give multiple identifier separated by comma (,) or put this option

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
setuptools.setup(
1212
name="speakeasy-client-sdk-python",
13-
version="1.15.1",
13+
version="1.16.0",
1414
author="Speakeasy",
1515
description="Speakeasy API Client SDK for Python",
1616
long_description=long_description,

src/speakeasy/sdk.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ class Speakeasy:
4141
_security_client: requests_http.Session
4242
_server_url: str = SERVERS[SERVER_PROD]
4343
_language: str = "python"
44-
_sdk_version: str = "1.15.1"
45-
_gen_version: str = "2.17.9"
44+
_sdk_version: str = "1.16.0"
45+
_gen_version: str = "2.18.0"
4646

4747
def __init__(self,
4848
security: shared.Security = None,

src/speakeasy/utils/utils.py

Lines changed: 70 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -152,62 +152,71 @@ def generate_url(clazz: type, server_url: str, path: str, path_params: dataclass
152152
if param_metadata is None:
153153
continue
154154

155-
if param_metadata.get('style', 'simple') == 'simple':
156-
param = getattr(
157-
path_params, field.name) if path_params is not None else None
158-
param = _populate_from_globals(
159-
field.name, param, 'pathParam', gbls)
155+
param = getattr(
156+
path_params, field.name) if path_params is not None else None
157+
param = _populate_from_globals(
158+
field.name, param, 'pathParam', gbls)
160159

161-
if param is None:
162-
continue
163-
164-
if isinstance(param, list):
165-
pp_vals: list[str] = []
166-
for pp_val in param:
167-
if pp_val is None:
168-
continue
169-
pp_vals.append(_val_to_string(pp_val))
170-
path = path.replace(
171-
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
172-
elif isinstance(param, dict):
173-
pp_vals: list[str] = []
174-
for pp_key in param:
175-
if param[pp_key] is None:
176-
continue
177-
if param_metadata.get('explode'):
178-
pp_vals.append(
179-
f"{pp_key}={_val_to_string(param[pp_key])}")
180-
else:
181-
pp_vals.append(
182-
f"{pp_key},{_val_to_string(param[pp_key])}")
183-
path = path.replace(
184-
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
185-
elif not isinstance(param, (str, int, float, complex, bool)):
186-
pp_vals: list[str] = []
187-
param_fields: Tuple[Field, ...] = fields(param)
188-
for param_field in param_fields:
189-
param_value_metadata = param_field.metadata.get(
190-
'path_param')
191-
if not param_value_metadata:
192-
continue
193-
194-
parm_name = param_value_metadata.get(
195-
'field_name', field.name)
160+
if param is None:
161+
continue
196162

197-
param_field_val = getattr(param, param_field.name)
198-
if param_field_val is None:
199-
continue
200-
if param_metadata.get('explode'):
201-
pp_vals.append(
202-
f"{parm_name}={_val_to_string(param_field_val)}")
203-
else:
204-
pp_vals.append(
205-
f"{parm_name},{_val_to_string(param_field_val)}")
206-
path = path.replace(
207-
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
208-
else:
163+
f_name = param_metadata.get("field_name", field.name)
164+
serialization = param_metadata.get('serialization', '')
165+
if serialization != '':
166+
serialized_params = _get_serialized_params(
167+
param_metadata, f_name, param)
168+
for key, value in serialized_params.items():
209169
path = path.replace(
210-
'{' + param_metadata.get('field_name', field.name) + '}', _val_to_string(param), 1)
170+
'{' + key + '}', value, 1)
171+
else:
172+
if param_metadata.get('style', 'simple') == 'simple':
173+
if isinstance(param, list):
174+
pp_vals: list[str] = []
175+
for pp_val in param:
176+
if pp_val is None:
177+
continue
178+
pp_vals.append(_val_to_string(pp_val))
179+
path = path.replace(
180+
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
181+
elif isinstance(param, dict):
182+
pp_vals: list[str] = []
183+
for pp_key in param:
184+
if param[pp_key] is None:
185+
continue
186+
if param_metadata.get('explode'):
187+
pp_vals.append(
188+
f"{pp_key}={_val_to_string(param[pp_key])}")
189+
else:
190+
pp_vals.append(
191+
f"{pp_key},{_val_to_string(param[pp_key])}")
192+
path = path.replace(
193+
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
194+
elif not isinstance(param, (str, int, float, complex, bool)):
195+
pp_vals: list[str] = []
196+
param_fields: Tuple[Field, ...] = fields(param)
197+
for param_field in param_fields:
198+
param_value_metadata = param_field.metadata.get(
199+
'path_param')
200+
if not param_value_metadata:
201+
continue
202+
203+
parm_name = param_value_metadata.get(
204+
'field_name', field.name)
205+
206+
param_field_val = getattr(param, param_field.name)
207+
if param_field_val is None:
208+
continue
209+
if param_metadata.get('explode'):
210+
pp_vals.append(
211+
f"{parm_name}={_val_to_string(param_field_val)}")
212+
else:
213+
pp_vals.append(
214+
f"{parm_name},{_val_to_string(param_field_val)}")
215+
path = path.replace(
216+
'{' + param_metadata.get('field_name', field.name) + '}', ",".join(pp_vals), 1)
217+
else:
218+
path = path.replace(
219+
'{' + param_metadata.get('field_name', field.name) + '}', _val_to_string(param), 1)
211220

212221
return server_url.removesuffix("/") + path
213222

@@ -246,8 +255,12 @@ def get_query_params(clazz: type, query_params: dataclass, gbls: dict[str, dict[
246255
f_name = metadata.get("field_name")
247256
serialization = metadata.get('serialization', '')
248257
if serialization != '':
249-
params = params | _get_serialized_query_params(
250-
metadata, f_name, value)
258+
serialized_parms = _get_serialized_params(metadata, f_name, value)
259+
for key, value in serialized_parms.items():
260+
if key in params:
261+
params[key].extend(value)
262+
else:
263+
params[key] = [value]
251264
else:
252265
style = metadata.get('style', 'form')
253266
if style == 'deepObject':
@@ -282,8 +295,8 @@ def get_headers(headers_params: dataclass) -> dict[str, str]:
282295
return headers
283296

284297

285-
def _get_serialized_query_params(metadata: dict, field_name: str, obj: any) -> dict[str, list[str]]:
286-
params: dict[str, list[str]] = {}
298+
def _get_serialized_params(metadata: dict, field_name: str, obj: any) -> dict[str, str]:
299+
params: dict[str, str] = {}
287300

288301
serialization = metadata.get('serialization', '')
289302
if serialization == 'json':

0 commit comments

Comments
 (0)