forked from loafle/openapi-generator-original
Only allow v3 input specs into python-experimental (#11931)
* Only allow v3 input specs into python-experimantal * docs regenerated
This commit is contained in:
parent
7a78e350cc
commit
36f0dd026c
@ -21,7 +21,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
|
||||
| ------ | ----------- | ------ | ------- |
|
||||
|generateSourceCodeOnly|Specifies that only a library source code is to be generated.| |false|
|
||||
|hideGenerationTimestamp|Hides the generation timestamp when files are generated.| |true|
|
||||
|library|library template (sub-template) to use: asyncio, tornado, urllib3| |urllib3|
|
||||
|library|library template (sub-template) to use: urllib3| |urllib3|
|
||||
|packageName|python package name (convention: snake_case).| |openapi_client|
|
||||
|packageUrl|python package URL.| |null|
|
||||
|packageVersion|python package version.| |1.0.0|
|
||||
|
@ -17,11 +17,10 @@
|
||||
package org.openapitools.codegen.languages;
|
||||
|
||||
import com.github.curiousoddman.rgxgen.RgxGen;
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.Operation;
|
||||
import io.swagger.v3.oas.models.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.models.servers.Server;
|
||||
import io.swagger.v3.oas.models.tags.Tag;
|
||||
import org.apache.commons.lang3.tuple.Triple;
|
||||
import org.openapitools.codegen.api.TemplatePathLocator;
|
||||
import org.openapitools.codegen.ignore.CodegenIgnoreProcessor;
|
||||
import org.openapitools.codegen.templating.*;
|
||||
@ -52,7 +51,6 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static org.openapitools.codegen.utils.OnceLogger.once;
|
||||
import static org.openapitools.codegen.utils.StringUtils.underscore;
|
||||
@ -179,9 +177,7 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
cliOptions.add(new CliOption(RECURSION_LIMIT, "Set the recursion limit. If not set, use the system default value."));
|
||||
|
||||
supportedLibraries.put("urllib3", "urllib3-based client");
|
||||
supportedLibraries.put("asyncio", "Asyncio-based client (python 3.5+)");
|
||||
supportedLibraries.put("tornado", "tornado-based client");
|
||||
CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use: asyncio, tornado, urllib3");
|
||||
CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use: urllib3");
|
||||
libraryOption.setDefault(DEFAULT_LIBRARY);
|
||||
cliOptions.add(libraryOption);
|
||||
setLibrary(DEFAULT_LIBRARY);
|
||||
@ -737,28 +733,30 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
|
||||
public CodegenParameter fromParameter(Parameter parameter, Set<String> imports) {
|
||||
CodegenParameter cp = super.fromParameter(parameter, imports);
|
||||
switch(parameter.getStyle()) {
|
||||
case MATRIX:
|
||||
cp.style = "MATRIX";
|
||||
break;
|
||||
case LABEL:
|
||||
cp.style = "LABEL";
|
||||
break;
|
||||
case FORM:
|
||||
cp.style = "FORM";
|
||||
break;
|
||||
case SIMPLE:
|
||||
cp.style = "SIMPLE";
|
||||
break;
|
||||
case SPACEDELIMITED:
|
||||
cp.style = "SPACE_DELIMITED";
|
||||
break;
|
||||
case PIPEDELIMITED:
|
||||
cp.style = "PIPE_DELIMITED";
|
||||
break;
|
||||
case DEEPOBJECT:
|
||||
cp.style = "DEEP_OBJECT";
|
||||
break;
|
||||
if (parameter.getStyle() != null) {
|
||||
switch(parameter.getStyle()) {
|
||||
case MATRIX:
|
||||
cp.style = "MATRIX";
|
||||
break;
|
||||
case LABEL:
|
||||
cp.style = "LABEL";
|
||||
break;
|
||||
case FORM:
|
||||
cp.style = "FORM";
|
||||
break;
|
||||
case SIMPLE:
|
||||
cp.style = "SIMPLE";
|
||||
break;
|
||||
case SPACEDELIMITED:
|
||||
cp.style = "SPACE_DELIMITED";
|
||||
break;
|
||||
case PIPEDELIMITED:
|
||||
cp.style = "PIPE_DELIMITED";
|
||||
break;
|
||||
case DEEPOBJECT:
|
||||
cp.style = "DEEP_OBJECT";
|
||||
break;
|
||||
}
|
||||
}
|
||||
// clone this so we can change some properties on it
|
||||
CodegenProperty schemaProp = cp.getSchema().clone();
|
||||
@ -2189,4 +2187,18 @@ public class PythonExperimentalClientCodegen extends AbstractPythonCodegen {
|
||||
|
||||
@Override
|
||||
public String generatorLanguageVersion() { return ">=3.9"; };
|
||||
|
||||
@Override
|
||||
public void preprocessOpenAPI(OpenAPI openAPI) {
|
||||
String originalSpecVersion;
|
||||
if (openAPI.getExtensions() != null && !openAPI.getExtensions().isEmpty()) {
|
||||
originalSpecVersion = (String) openAPI.getExtensions().get("x-original-swagger-version");
|
||||
} else {
|
||||
originalSpecVersion = openAPI.getOpenapi();
|
||||
}
|
||||
Integer specMajorVersion = Integer.parseInt(originalSpecVersion.substring(0, 1));
|
||||
if (specMajorVersion < 3) {
|
||||
throw new RuntimeException("Your spec version of "+originalSpecVersion+" is too low. python-experimental only works with specs with version >= 3.X.X. Please use a tool like Swagger Editor or Swagger Converter to convert your spec to v3");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user