Skip to content

Commit 7dece0f

Browse files
committed
refactor: Rebase on main, make Endpoint publicly-called methods public.
1 parent c89129f commit 7dece0f

File tree

4 files changed

+78
-72
lines changed

4 files changed

+78
-72
lines changed

end_to_end_tests/custom-templates-golden-record/my_test_api_client/api/parameters/__init__.py

+5
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
delete_common_parameters_overriding_param,
77
get_common_parameters_overriding_param,
88
get_same_name_multiple_locations_param,
9+
multiple_path_parameters,
910
)
1011

1112

@@ -21,3 +22,7 @@ def delete_common_parameters_overriding_param(cls) -> types.ModuleType:
2122
@classmethod
2223
def get_same_name_multiple_locations_param(cls) -> types.ModuleType:
2324
return get_same_name_multiple_locations_param
25+
26+
@classmethod
27+
def multiple_path_parameters(cls) -> types.ModuleType:
28+
return multiple_path_parameters

end_to_end_tests/golden-record/my_test_api_client/api/parameters/multiple_path_parameters.py

+24-24
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@
77

88

99
def _get_kwargs(
10-
param_4: str,
11-
param_2: int,
12-
param_1: str,
13-
param_3: int,
10+
param4: str,
11+
param2: int,
12+
param1: str,
13+
param3: int,
1414
*,
1515
client: Client,
1616
) -> Dict[str, Any]:
1717
url = "{}/multiple-path-parameters/{param4}/{param2}/{param1}/{param3}".format(
18-
client.base_url, param4=param_4, param2=param_2, param1=param_1, param3=param_3
18+
client.base_url, param4=param4, param2=param2, param1=param1, param3=param3
1919
)
2020

2121
headers: Dict[str, Any] = client.get_headers()
@@ -29,7 +29,7 @@ def _get_kwargs(
2929
}
3030

3131

32-
def _build_response(*, response: httpx.Response) -> Response[None]:
32+
def _build_response(*, response: httpx.Response) -> Response[Any]:
3333
return Response(
3434
status_code=response.status_code,
3535
content=response.content,
@@ -39,18 +39,18 @@ def _build_response(*, response: httpx.Response) -> Response[None]:
3939

4040

4141
def sync_detailed(
42-
param_4: str,
43-
param_2: int,
44-
param_1: str,
45-
param_3: int,
42+
param4: str,
43+
param2: int,
44+
param1: str,
45+
param3: int,
4646
*,
4747
client: Client,
48-
) -> Response[None]:
48+
) -> Response[Any]:
4949
kwargs = _get_kwargs(
50-
param_4=param_4,
51-
param_2=param_2,
52-
param_1=param_1,
53-
param_3=param_3,
50+
param4=param4,
51+
param2=param2,
52+
param1=param1,
53+
param3=param3,
5454
client=client,
5555
)
5656

@@ -62,18 +62,18 @@ def sync_detailed(
6262

6363

6464
async def asyncio_detailed(
65-
param_4: str,
66-
param_2: int,
67-
param_1: str,
68-
param_3: int,
65+
param4: str,
66+
param2: int,
67+
param1: str,
68+
param3: int,
6969
*,
7070
client: Client,
71-
) -> Response[None]:
71+
) -> Response[Any]:
7272
kwargs = _get_kwargs(
73-
param_4=param_4,
74-
param_2=param_2,
75-
param_1=param_1,
76-
param_3=param_3,
73+
param4=param4,
74+
param2=param2,
75+
param1=param1,
76+
param3=param3,
7777
client=client,
7878
)
7979

openapi_python_client/parser/openapi.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def from_data(
5252
)
5353
# Add `PathItem` parameters
5454
if not isinstance(endpoint, ParseError):
55-
endpoint, schemas = Endpoint._add_parameters(
55+
endpoint, schemas = Endpoint.add_parameters(
5656
endpoint=endpoint, data=path_data, schemas=schemas, config=config
5757
)
5858
if isinstance(endpoint, ParseError):
@@ -244,7 +244,7 @@ def _add_responses(
244244
return endpoint, schemas
245245

246246
@staticmethod
247-
def _add_parameters(
247+
def add_parameters(
248248
*, endpoint: "Endpoint", data: Union[oai.Operation, oai.PathItem], schemas: Schemas, config: Config
249249
) -> Tuple[Union["Endpoint", ParseError], Schemas]:
250250
endpoint = deepcopy(endpoint)
@@ -327,18 +327,17 @@ def _add_parameters(
327327
return endpoint, schemas
328328

329329
@staticmethod
330-
def _sort_parameters(*, endpoint: "Endpoint", path: str) -> Union["Endpoint", ParseError]:
330+
def sort_parameters(*, endpoint: "Endpoint") -> Union["Endpoint", ParseError]:
331331
endpoint = deepcopy(endpoint)
332-
parameters_from_path = re.findall(_PATH_PARAM_REGEX, path)
332+
parameters_from_path = re.findall(_PATH_PARAM_REGEX, endpoint.path)
333333
try:
334334
endpoint.path_parameters.sort(key=lambda p: parameters_from_path.index(p.name))
335335
except ValueError:
336336
pass # We're going to catch the difference down below
337337
path_parameter_names = [p.name for p in endpoint.path_parameters]
338338
if parameters_from_path != path_parameter_names:
339339
return ParseError(
340-
data=endpoint,
341-
detail="Incorrect path templating (Path parameters do not match with path)",
340+
detail=f"Incorrect path templating for {endpoint.path} (Path parameters do not match with path)",
342341
)
343342
return endpoint
344343

@@ -363,7 +362,7 @@ def from_data(
363362
tag=tag,
364363
)
365364

366-
result, schemas = Endpoint._add_parameters(endpoint=endpoint, data=data, schemas=schemas, config=config)
365+
result, schemas = Endpoint.add_parameters(endpoint=endpoint, data=data, schemas=schemas, config=config)
367366
if isinstance(result, ParseError):
368367
return result, schemas
369368
result, schemas = Endpoint._add_responses(endpoint=result, data=data.responses, schemas=schemas, config=config)

0 commit comments

Comments
 (0)