forked from loafle/openapi-generator-original
[Python] add project name to setup.py in python client (#5836)
* add project name to setup.py in python client * update python README to use project name * add cli option project name for python
This commit is contained in:
parent
b61dfefa5b
commit
d6c717263c
@ -96,6 +96,7 @@ public class CodegenConstants {
|
|||||||
public static final String ENSURE_UNIQUE_PARAMS = "ensureUniqueParams";
|
public static final String ENSURE_UNIQUE_PARAMS = "ensureUniqueParams";
|
||||||
public static final String ENSURE_UNIQUE_PARAMS_DESC = "Whether to ensure parameter names are unique in an operation (rename parameters that are not).";
|
public static final String ENSURE_UNIQUE_PARAMS_DESC = "Whether to ensure parameter names are unique in an operation (rename parameters that are not).";
|
||||||
|
|
||||||
|
public static final String PROJECT_NAME = "projectName";
|
||||||
public static final String PACKAGE_NAME = "packageName";
|
public static final String PACKAGE_NAME = "packageName";
|
||||||
public static final String PACKAGE_VERSION = "packageVersion";
|
public static final String PACKAGE_VERSION = "packageVersion";
|
||||||
|
|
||||||
|
@ -24,8 +24,9 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig {
|
public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||||
public static final String PACKAGE_URL = "packageUrl";
|
public static final String PACKAGE_URL = "packageUrl";
|
||||||
|
|
||||||
protected String packageName;
|
protected String packageName; // e.g. petstore_api
|
||||||
protected String packageVersion;
|
protected String packageVersion;
|
||||||
|
protected String projectName; // for setup.py, e.g. petstore-api
|
||||||
protected String packageUrl;
|
protected String packageUrl;
|
||||||
protected String apiDocPath = "docs/";
|
protected String apiDocPath = "docs/";
|
||||||
protected String modelDocPath = "docs/";
|
protected String modelDocPath = "docs/";
|
||||||
@ -114,6 +115,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
cliOptions.clear();
|
cliOptions.clear();
|
||||||
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).")
|
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).")
|
||||||
.defaultValue("swagger_client"));
|
.defaultValue("swagger_client"));
|
||||||
|
cliOptions.add(new CliOption(CodegenConstants.PROJECT_NAME, "python project name in setup.py (e.g. petstore-api)."));
|
||||||
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.")
|
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.")
|
||||||
.defaultValue("1.0.0"));
|
.defaultValue("1.0.0"));
|
||||||
cliOptions.add(new CliOption(PACKAGE_URL, "python package URL."));
|
cliOptions.add(new CliOption(PACKAGE_URL, "python package URL."));
|
||||||
@ -139,6 +141,15 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
setPackageName("swagger_client");
|
setPackageName("swagger_client");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (additionalProperties.containsKey(CodegenConstants.PROJECT_NAME)) {
|
||||||
|
setProjectName((String) additionalProperties.get(CodegenConstants.PROJECT_NAME));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// default: set project based on package name
|
||||||
|
// e.g. petstore_api (package name) => petstore-api (project name)
|
||||||
|
setProjectName(packageName.replaceAll("_", "-"));
|
||||||
|
}
|
||||||
|
|
||||||
if (additionalProperties.containsKey(CodegenConstants.PACKAGE_VERSION)) {
|
if (additionalProperties.containsKey(CodegenConstants.PACKAGE_VERSION)) {
|
||||||
setPackageVersion((String) additionalProperties.get(CodegenConstants.PACKAGE_VERSION));
|
setPackageVersion((String) additionalProperties.get(CodegenConstants.PACKAGE_VERSION));
|
||||||
}
|
}
|
||||||
@ -154,6 +165,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
Boolean.valueOf(additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP).toString()));
|
Boolean.valueOf(additionalProperties().get(CodegenConstants.HIDE_GENERATION_TIMESTAMP).toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
additionalProperties.put(CodegenConstants.PROJECT_NAME, projectName);
|
||||||
additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
|
additionalProperties.put(CodegenConstants.PACKAGE_NAME, packageName);
|
||||||
additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion);
|
additionalProperties.put(CodegenConstants.PACKAGE_VERSION, packageVersion);
|
||||||
|
|
||||||
@ -196,7 +208,6 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
return str.replaceAll("\\.", "_");
|
return str.replaceAll("\\.", "_");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
public Map<String, Object> postProcessModels(Map<String, Object> objs) {
|
||||||
// process enum in models
|
// process enum in models
|
||||||
@ -494,6 +505,10 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
|
|||||||
this.packageName = packageName;
|
this.packageName = packageName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setProjectName(String projectName) {
|
||||||
|
this.projectName= projectName;
|
||||||
|
}
|
||||||
|
|
||||||
public void setPackageVersion(String packageVersion) {
|
public void setPackageVersion(String packageVersion) {
|
||||||
this.packageVersion = packageVersion;
|
this.packageVersion = packageVersion;
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# {{packageName}}
|
# {{{projectName}}}
|
||||||
{{#appDescription}}
|
{{#appDescription}}
|
||||||
{{{appDescription}}}
|
{{{appDescription}}}
|
||||||
{{/appDescription}}
|
{{/appDescription}}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
import sys
|
import sys
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
NAME = "{{packageName}}"
|
NAME = "{{{projectName}}}"
|
||||||
VERSION = "{{packageVersion}}"
|
VERSION = "{{packageVersion}}"
|
||||||
{{#apiInfo}}
|
{{#apiInfo}}
|
||||||
{{#apis}}
|
{{#apis}}
|
||||||
|
@ -9,6 +9,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class PythonClientOptionsProvider implements OptionsProvider {
|
public class PythonClientOptionsProvider implements OptionsProvider {
|
||||||
public static final String PACKAGE_NAME_VALUE = "swagger_client_python";
|
public static final String PACKAGE_NAME_VALUE = "swagger_client_python";
|
||||||
|
public static final String PROJECT_NAME_VALUE = "swagger-client-python";
|
||||||
public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT";
|
public static final String PACKAGE_VERSION_VALUE = "1.0.0-SNAPSHOT";
|
||||||
public static final String PACKAGE_URL_VALUE = "";
|
public static final String PACKAGE_URL_VALUE = "";
|
||||||
|
|
||||||
@ -22,6 +23,7 @@ public class PythonClientOptionsProvider implements OptionsProvider {
|
|||||||
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<String, String>();
|
ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<String, String>();
|
||||||
return builder.put(PythonClientCodegen.PACKAGE_URL, PACKAGE_URL_VALUE)
|
return builder.put(PythonClientCodegen.PACKAGE_URL, PACKAGE_URL_VALUE)
|
||||||
.put(CodegenConstants.PACKAGE_NAME, PACKAGE_NAME_VALUE)
|
.put(CodegenConstants.PACKAGE_NAME, PACKAGE_NAME_VALUE)
|
||||||
|
.put(CodegenConstants.PROJECT_NAME, PROJECT_NAME_VALUE)
|
||||||
.put(CodegenConstants.PACKAGE_VERSION, PACKAGE_VERSION_VALUE)
|
.put(CodegenConstants.PACKAGE_VERSION, PACKAGE_VERSION_VALUE)
|
||||||
.put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, "true")
|
.put(CodegenConstants.SORT_PARAMS_BY_REQUIRED_FLAG, "true")
|
||||||
.put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "true")
|
.put(CodegenConstants.HIDE_GENERATION_TIMESTAMP, "true")
|
||||||
|
@ -28,6 +28,8 @@ public class PythonClientOptionsTest extends AbstractOptionsTest {
|
|||||||
new Expectations(clientCodegen) {{
|
new Expectations(clientCodegen) {{
|
||||||
clientCodegen.setPackageName(PythonClientOptionsProvider.PACKAGE_NAME_VALUE);
|
clientCodegen.setPackageName(PythonClientOptionsProvider.PACKAGE_NAME_VALUE);
|
||||||
times = 1;
|
times = 1;
|
||||||
|
clientCodegen.setProjectName(PythonClientOptionsProvider.PROJECT_NAME_VALUE);
|
||||||
|
times = 1;
|
||||||
clientCodegen.setPackageVersion(PythonClientOptionsProvider.PACKAGE_VERSION_VALUE);
|
clientCodegen.setPackageVersion(PythonClientOptionsProvider.PACKAGE_VERSION_VALUE);
|
||||||
times = 1;
|
times = 1;
|
||||||
clientCodegen.setPackageUrl(PythonClientOptionsProvider.PACKAGE_URL_VALUE);
|
clientCodegen.setPackageUrl(PythonClientOptionsProvider.PACKAGE_URL_VALUE);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# petstore_api
|
# petstore-api
|
||||||
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||||
|
|
||||||
This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
|
This Python package is automatically generated by the [Swagger Codegen](https://github.com/swagger-api/swagger-codegen) project:
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
import sys
|
import sys
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
NAME = "petstore_api"
|
NAME = "petstore-api"
|
||||||
VERSION = "1.0.0"
|
VERSION = "1.0.0"
|
||||||
# To install the library, run the following
|
# To install the library, run the following
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user