Skip to content

Commit b7f9e8e

Browse files
committed
refactor: Rebase on main, make Endpoint publicly-called methods public.
1 parent 0a6386b commit b7f9e8e

File tree

4 files changed

+81
-76
lines changed

4 files changed

+81
-76
lines changed

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

+5-1
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22

33
import types
44

5-
from my_test_api_client.api.parameters import get_same_name_multiple_locations_param
5+
from my_test_api_client.api.parameters import get_same_name_multiple_locations_param, multiple_path_parameters
66

77

88
class ParametersEndpoints:
99
@classmethod
1010
def get_same_name_multiple_locations_param(cls) -> types.ModuleType:
1111
return get_same_name_multiple_locations_param
12+
13+
@classmethod
14+
def multiple_path_parameters(cls) -> types.ModuleType:
15+
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

+7-8
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@ def from_data(
5050
data=operation, path=path, method=method, tag=tag, schemas=schemas, config=config
5151
)
5252
if not isinstance(endpoint, ParseError):
53-
endpoint, schemas = Endpoint._add_parameters(
53+
endpoint, schemas = Endpoint.add_parameters(
5454
endpoint=endpoint, data=path_data, schemas=schemas, config=config
5555
)
5656
if not isinstance(endpoint, ParseError):
57-
endpoint = Endpoint._sort_parameters(endpoint=endpoint, path=path)
57+
endpoint = Endpoint.sort_parameters(endpoint=endpoint)
5858
if isinstance(endpoint, ParseError):
5959
endpoint.header = (
6060
f"ERROR parsing {method.upper()} {path} within {tag}. Endpoint will not be generated."
@@ -242,7 +242,7 @@ def _add_responses(
242242
return endpoint, schemas
243243

244244
@staticmethod
245-
def _add_parameters(
245+
def add_parameters(
246246
*, endpoint: "Endpoint", data: Union[oai.Operation, oai.PathItem], schemas: Schemas, config: Config
247247
) -> Tuple[Union["Endpoint", ParseError], Schemas]:
248248
endpoint = deepcopy(endpoint)
@@ -300,18 +300,17 @@ def _add_parameters(
300300
return endpoint, schemas
301301

302302
@staticmethod
303-
def _sort_parameters(*, endpoint: "Endpoint", path: str) -> Union["Endpoint", ParseError]:
303+
def sort_parameters(*, endpoint: "Endpoint") -> Union["Endpoint", ParseError]:
304304
endpoint = deepcopy(endpoint)
305-
parameters_from_path = re.findall(_PATH_PARAM_REGEX, path)
305+
parameters_from_path = re.findall(_PATH_PARAM_REGEX, endpoint.path)
306306
try:
307307
endpoint.path_parameters.sort(key=lambda p: parameters_from_path.index(p.name))
308308
except ValueError:
309309
pass # We're going to catch the difference down below
310310
path_parameter_names = [p.name for p in endpoint.path_parameters]
311311
if parameters_from_path != path_parameter_names:
312312
return ParseError(
313-
data=endpoint,
314-
detail="Incorrect path templating (Path parameters do not match with path)",
313+
detail=f"Incorrect path templating for {endpoint.path} (Path parameters do not match with path)",
315314
)
316315
return endpoint
317316

@@ -336,7 +335,7 @@ def from_data(
336335
tag=tag,
337336
)
338337

339-
result, schemas = Endpoint._add_parameters(endpoint=endpoint, data=data, schemas=schemas, config=config)
338+
result, schemas = Endpoint.add_parameters(endpoint=endpoint, data=data, schemas=schemas, config=config)
340339
if isinstance(result, ParseError):
341340
return result, schemas
342341
result, schemas = Endpoint._add_responses(endpoint=result, data=data.responses, schemas=schemas, config=config)

0 commit comments

Comments
 (0)