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

Commit 36ab081

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 656f896 commit 36ab081

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

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -101,10 +101,8 @@ public class PythonClientCodegen extends AbstractPythonCodegen {
101101

102102
// for apis.tags imports
103103
private Map<String, String> tagModuleNameToApiClassname = new LinkedHashMap<>();
104-
// for apis.tags enum tag definition
105-
private Map<String, String> enumToTag = new LinkedHashMap<>();
106104
// for apis.tags tag api definition
107-
private Map<String, String> tagEnumToApiClassname = new LinkedHashMap<>();
105+
private Map<String, String> tagToApiClassname = new LinkedHashMap<>();
108106

109107
private boolean nonCompliantUseDiscrIfCompositionFails = false;
110108

@@ -556,9 +554,7 @@ protected void generateEndpoints(OperationsMap objs) {
556554
String tagModuleName = toApiFilename(tagName);
557555
String apiClassname = toApiName(tagName);
558556
tagModuleNameToApiClassname.put(tagModuleName, apiClassname);
559-
String tagEnum = toEnumVarName(tagName, "str");
560-
enumToTag.put(tagEnum, tagName);
561-
tagEnumToApiClassname.put(tagEnum, apiClassname);
557+
tagToApiClassname.put(tagName, apiClassname);
562558
}
563559
}
564560

@@ -574,9 +570,7 @@ protected void generateEndpoints(OperationsMap objs) {
574570
String tagModuleName = toApiFilename(tagName);
575571
String apiClassname = toApiName(tagName);
576572
tagModuleNameToApiClassname.put(tagModuleName, apiClassname);
577-
String tagEnum = toEnumVarName(tagName, "str");
578-
enumToTag.put(tagEnum, tagName);
579-
tagEnumToApiClassname.put(tagEnum, apiClassname);
573+
tagToApiClassname.put(tagName, apiClassname);
580574
}
581575
}
582576
String path = co.path;
@@ -658,15 +652,13 @@ protected void generateEndpoints(OperationsMap objs) {
658652
outputFilename = filenameFromRoot(Arrays.asList("test", "test_paths", "__init__.py"));
659653
testFiles.add(Arrays.asList(new HashMap<>(), "__init__test_paths.handlebars", outputFilename));
660654

661-
Map<String, String> pathValToVar = new LinkedHashMap<>();
662655
Map<String, String> pathModuleToApiClassname = new LinkedHashMap<>();
663-
Map<String, String> pathEnumToApiClassname = new LinkedHashMap<>();
656+
Map<String, String> pathToApiClassname = new LinkedHashMap<>();
664657
for (Map.Entry<String, PathItem> pathsEntry : paths.entrySet()) {
665658
String path = pathsEntry.getKey();
666659
String pathEnumVar = toEnumVarName(path, "str");
667-
pathValToVar.put(path, pathEnumVar);
668660
String apiClassName = toModelName(path);
669-
pathEnumToApiClassname.put(pathEnumVar, apiClassName);
661+
pathToApiClassname.put(path, apiClassName);
670662
pathModuleToApiClassname.put(toVarName(path), apiClassName);
671663
}
672664
// Note: __init__apis.handlebars is generated as a supporting file
@@ -675,29 +667,27 @@ protected void generateEndpoints(OperationsMap objs) {
675667
tagToApiMap.put("packageName", packageName);
676668
tagToApiMap.put("apiClassname", "Api");
677669
tagToApiMap.put("tagModuleNameToApiClassname", tagModuleNameToApiClassname);
678-
tagToApiMap.put("tagEnumToApiClassname", tagEnumToApiClassname);
670+
tagToApiMap.put("tagToApiClassname", tagToApiClassname);
679671
outputFilename = packageFilename(Arrays.asList(apiPackage, "tag_to_api.py"));
680672
apisFiles.add(Arrays.asList(tagToApiMap, "apis_tag_to_api.handlebars", outputFilename));
681673
// apis.path_to_api.py
682674
Map<String, Object> allByPathsFileMap = new HashMap<>();
683675
allByPathsFileMap.put("packageName", packageName);
684676
allByPathsFileMap.put("apiClassname", "Api");
685677
allByPathsFileMap.put("pathModuleToApiClassname", pathModuleToApiClassname);
686-
allByPathsFileMap.put("pathEnumToApiClassname", pathEnumToApiClassname);
678+
allByPathsFileMap.put("pathToApiClassname", pathToApiClassname);
687679
outputFilename = packageFilename(Arrays.asList(apiPackage, "path_to_api.py"));
688680
apisFiles.add(Arrays.asList(allByPathsFileMap, "apis_path_to_api.handlebars", outputFilename));
689681
// apis.paths.__init__.py
690682
Map<String, Object> initApiTagsMap = new HashMap<>();
691683
initApiTagsMap.put("packageName", packageName);
692-
initApiTagsMap.put("enumToTag", enumToTag);
693684
outputFilename = packageFilename(Arrays.asList(apiPackage, "tags", "__init__.py"));
694685
apisFiles.add(Arrays.asList(initApiTagsMap, "__init__apis_tags.handlebars", outputFilename));
695686

696687
// paths.__init__.py (contains path str enum)
697688
Map<String, Object> initOperationMap = new HashMap<>();
698689
initOperationMap.put("packageName", packageName);
699690
initOperationMap.put("apiClassname", "Api");
700-
initOperationMap.put("pathValToVar", pathValToVar);
701691
outputFilename = packageFilename(Arrays.asList("paths", "__init__.py"));
702692
pathsFiles.add(Arrays.asList(initOperationMap, "__init__paths_enum.handlebars", outputFilename));
703693
// apis.paths.__init__.py
@@ -708,17 +698,16 @@ protected void generateEndpoints(OperationsMap objs) {
708698
for (Map.Entry<String, String> entry: pathModuleToPath.entrySet()) {
709699
String pathModule = entry.getKey();
710700
String path = entry.getValue();
711-
String pathVar = pathValToVar.get(path);
712701
Map<String, Object> pathApiMap = new HashMap<>();
713702
pathApiMap.put("packageName", packageName);
714703
pathApiMap.put("pathModule", pathModule);
715704
pathApiMap.put("apiClassName", "Api");
716-
pathApiMap.put("pathVar", pathVar);
705+
pathApiMap.put("path", path);
717706
outputFilename = packageFilename(Arrays.asList("paths", pathModule, "__init__.py"));
718707
pathsFiles.add(Arrays.asList(pathApiMap, "__init__paths_x.handlebars", outputFilename));
719708

720709
PathItem pi = openAPI.getPaths().get(path);
721-
String apiClassName = pathEnumToApiClassname.get(pathVar);
710+
String apiClassName = pathToApiClassname.get(path);
722711
Map<String, Object> operationMap = new HashMap<>();
723712
operationMap.put("packageName", packageName);
724713
operationMap.put("pathModule", pathModule);
Lines changed: 1 addition & 9 deletions
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
Lines changed: 1 addition & 9 deletions
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

Lines changed: 1 addition & 3 deletions
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}}}"
Lines changed: 4 additions & 5 deletions
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
)
Lines changed: 4 additions & 5 deletions
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

Lines changed: 1 addition & 1 deletion
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)