Skip to content
This repository was archived by the owner on Dec 25, 2024. It is now read-only.

Commit 8b22df1

Browse files
committed
v2 change enums to literals (#85)
* Templates updated, path enum converted to typeddict * Sample regenerated * Template update * Sample updated * Samples regenerated
1 parent 42bc8bc commit 8b22df1

File tree

706 files changed

+1232
-2004
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

706 files changed

+1232
-2004
lines changed

modules/openapi-json-schema-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java

+9-20
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,8 @@ public class PythonClientCodegen extends AbstractPythonCodegen {
102102

103103
// for apis.tags imports
104104
private Map<String, String> tagModuleNameToApiClassname = new LinkedHashMap<>();
105-
// for apis.tags enum tag definition
106-
private Map<String, String> enumToTag = new LinkedHashMap<>();
107105
// for apis.tags tag api definition
108-
private Map<String, String> tagEnumToApiClassname = new LinkedHashMap<>();
106+
private Map<String, String> tagToApiClassname = new LinkedHashMap<>();
109107

110108
private boolean nonCompliantUseDiscrIfCompositionFails = false;
111109

@@ -558,9 +556,7 @@ protected void generateEndpoints(OperationsMap objs) {
558556
String tagModuleName = toApiFilename(tagName);
559557
String apiClassname = toApiName(tagName);
560558
tagModuleNameToApiClassname.put(tagModuleName, apiClassname);
561-
String tagEnum = toEnumVarName(tagName, "str");
562-
enumToTag.put(tagEnum, tagName);
563-
tagEnumToApiClassname.put(tagEnum, apiClassname);
559+
tagToApiClassname.put(tagName, apiClassname);
564560
}
565561
}
566562

@@ -576,9 +572,7 @@ protected void generateEndpoints(OperationsMap objs) {
576572
String tagModuleName = toApiFilename(tagName);
577573
String apiClassname = toApiName(tagName);
578574
tagModuleNameToApiClassname.put(tagModuleName, apiClassname);
579-
String tagEnum = toEnumVarName(tagName, "str");
580-
enumToTag.put(tagEnum, tagName);
581-
tagEnumToApiClassname.put(tagEnum, apiClassname);
575+
tagToApiClassname.put(tagName, apiClassname);
582576
}
583577
}
584578
String path = co.path;
@@ -660,15 +654,13 @@ protected void generateEndpoints(OperationsMap objs) {
660654
outputFilename = filenameFromRoot(Arrays.asList("test", "test_paths", "__init__.py"));
661655
testFiles.add(Arrays.asList(new HashMap<>(), "__init__test_paths.handlebars", outputFilename));
662656

663-
Map<String, String> pathValToVar = new LinkedHashMap<>();
664657
Map<String, String> pathModuleToApiClassname = new LinkedHashMap<>();
665-
Map<String, String> pathEnumToApiClassname = new LinkedHashMap<>();
658+
Map<String, String> pathToApiClassname = new LinkedHashMap<>();
666659
for (Map.Entry<String, PathItem> pathsEntry : paths.entrySet()) {
667660
String path = pathsEntry.getKey();
668661
String pathEnumVar = toEnumVarName(path, "str");
669-
pathValToVar.put(path, pathEnumVar);
670662
String apiClassName = toModelName(path);
671-
pathEnumToApiClassname.put(pathEnumVar, apiClassName);
663+
pathToApiClassname.put(path, apiClassName);
672664
pathModuleToApiClassname.put(toVarName(path), apiClassName);
673665
}
674666
// Note: __init__apis.handlebars is generated as a supporting file
@@ -677,29 +669,27 @@ protected void generateEndpoints(OperationsMap objs) {
677669
tagToApiMap.put("packageName", packageName);
678670
tagToApiMap.put("apiClassname", "Api");
679671
tagToApiMap.put("tagModuleNameToApiClassname", tagModuleNameToApiClassname);
680-
tagToApiMap.put("tagEnumToApiClassname", tagEnumToApiClassname);
672+
tagToApiMap.put("tagToApiClassname", tagToApiClassname);
681673
outputFilename = packageFilename(Arrays.asList(apiPackage, "tag_to_api.py"));
682674
apisFiles.add(Arrays.asList(tagToApiMap, "apis_tag_to_api.handlebars", outputFilename));
683675
// apis.path_to_api.py
684676
Map<String, Object> allByPathsFileMap = new HashMap<>();
685677
allByPathsFileMap.put("packageName", packageName);
686678
allByPathsFileMap.put("apiClassname", "Api");
687679
allByPathsFileMap.put("pathModuleToApiClassname", pathModuleToApiClassname);
688-
allByPathsFileMap.put("pathEnumToApiClassname", pathEnumToApiClassname);
680+
allByPathsFileMap.put("pathToApiClassname", pathToApiClassname);
689681
outputFilename = packageFilename(Arrays.asList(apiPackage, "path_to_api.py"));
690682
apisFiles.add(Arrays.asList(allByPathsFileMap, "apis_path_to_api.handlebars", outputFilename));
691683
// apis.paths.__init__.py
692684
Map<String, Object> initApiTagsMap = new HashMap<>();
693685
initApiTagsMap.put("packageName", packageName);
694-
initApiTagsMap.put("enumToTag", enumToTag);
695686
outputFilename = packageFilename(Arrays.asList(apiPackage, "tags", "__init__.py"));
696687
apisFiles.add(Arrays.asList(initApiTagsMap, "__init__apis_tags.handlebars", outputFilename));
697688

698689
// paths.__init__.py (contains path str enum)
699690
Map<String, Object> initOperationMap = new HashMap<>();
700691
initOperationMap.put("packageName", packageName);
701692
initOperationMap.put("apiClassname", "Api");
702-
initOperationMap.put("pathValToVar", pathValToVar);
703693
outputFilename = packageFilename(Arrays.asList("paths", "__init__.py"));
704694
pathsFiles.add(Arrays.asList(initOperationMap, "__init__paths_enum.handlebars", outputFilename));
705695
// apis.paths.__init__.py
@@ -710,17 +700,16 @@ protected void generateEndpoints(OperationsMap objs) {
710700
for (Map.Entry<String, String> entry: pathModuleToPath.entrySet()) {
711701
String pathModule = entry.getKey();
712702
String path = entry.getValue();
713-
String pathVar = pathValToVar.get(path);
714703
Map<String, Object> pathApiMap = new HashMap<>();
715704
pathApiMap.put("packageName", packageName);
716705
pathApiMap.put("pathModule", pathModule);
717706
pathApiMap.put("apiClassName", "Api");
718-
pathApiMap.put("pathVar", pathVar);
707+
pathApiMap.put("path", path);
719708
outputFilename = packageFilename(Arrays.asList("paths", pathModule, "__init__.py"));
720709
pathsFiles.add(Arrays.asList(pathApiMap, "__init__paths_x.handlebars", outputFilename));
721710

722711
PathItem pi = openAPI.getPaths().get(path);
723-
String apiClassName = pathEnumToApiClassname.get(pathVar);
712+
String apiClassName = pathToApiClassname.get(path);
724713
Map<String, Object> operationMap = new HashMap<>();
725714
operationMap.put("packageName", packageName);
726715
operationMap.put("pathModule", pathModule);
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
11
# do not import all endpoints into this module because that uses a lot of memory and stack frames
22
# if you need the ability to import all endpoints from this module, import them with
3-
# from {{packageName}}.apis.tag_to_api import tag_to_api
4-
5-
import enum
6-
7-
8-
class TagValues(str, enum.Enum):
9-
{{#each enumToTag}}
10-
{{@key}} = "{{this}}"
11-
{{/each}}
3+
# from {{packageName}}.apis.tag_to_api import tag_to_api
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,3 @@
11
# do not import all endpoints into this module because that uses a lot of memory and stack frames
22
# if you need the ability to import all endpoints from this module, import them with
3-
# from {{packageName}}.apis.path_to_api import path_to_api
4-
5-
import enum
6-
7-
8-
class PathValues(str, enum.Enum):
9-
{{#each pathValToVar}}
10-
{{this}} = "{{@key}}"
11-
{{/each}}
3+
# from {{packageName}}.apis.path_to_api import path_to_api

modules/openapi-json-schema-generator/src/main/resources/python/__init__paths_x.handlebars

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,4 @@
22
# if you need the ability to import all endpoints from this module, import them with
33
# from {{packageName}}.paths.{{pathModule}} import {{apiClassName}}
44

5-
from {{packageName}}.paths import PathValues
6-
7-
path = PathValues.{{{pathVar}}}
5+
path = "{{{path}}}"
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
import typing_extensions
22

3-
from {{packageName}}.paths import PathValues
43
{{#each pathModuleToApiClassname}}
54
from {{packageName}}.apis.paths.{{@key}} import {{this}}
65
{{/each}}
76

87
PathToApi = typing_extensions.TypedDict(
98
'PathToApi',
109
{
11-
{{#each pathEnumToApiClassname}}
12-
PathValues.{{@key}}: {{this}},
10+
{{#each pathToApiClassname}}
11+
"{{{@key}}}": {{this}},
1312
{{/each}}
1413
}
1514
)
1615

1716
path_to_api = PathToApi(
1817
{
19-
{{#each pathEnumToApiClassname}}
20-
PathValues.{{@key}}: {{this}},
18+
{{#each pathToApiClassname}}
19+
"{{{@key}}}": {{this}},
2120
{{/each}}
2221
}
2322
)
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
import typing_extensions
22

3-
from {{packageName}}.apis.tags import TagValues
43
{{#each tagModuleNameToApiClassname}}
54
from {{packageName}}.apis.tags.{{@key}} import {{this}}
65
{{/each}}
76

87
TagToApi = typing_extensions.TypedDict(
98
'TagToApi',
109
{
11-
{{#each tagEnumToApiClassname}}
12-
TagValues.{{@key}}: {{this}},
10+
{{#each tagToApiClassname}}
11+
"{{{@key}}}": {{this}},
1312
{{/each}}
1413
}
1514
)
1615

1716
tag_to_api = TagToApi(
1817
{
19-
{{#each tagEnumToApiClassname}}
20-
TagValues.{{@key}}: {{this}},
18+
{{#each tagToApiClassname}}
19+
"{{{@key}}}": {{this}},
2120
{{/each}}
2221
}
2322
)

modules/openapi-json-schema-generator/src/main/resources/python/endpoint.handlebars

+1-1
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ class BaseApi(api_client.Api):
156156
{{#if cookieParams}}
157157
self._verify_typed_dict_inputs_oapg(RequestCookieParameters.Params, cookie_params)
158158
{{/if}}
159-
used_path = path.value
159+
used_path = path
160160
{{#if pathParams}}
161161

162162
_path_params = {}

0 commit comments

Comments
 (0)