Merge remote-tracking branch 'origin/master' into 2.3.0

This commit is contained in:
wing328
2017-03-22 20:52:26 +08:00
55 changed files with 129 additions and 86 deletions

View File

@@ -92,7 +92,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
.put(NET35, ".NET Framework 3.5 compatible")
.put(NET45, ".NET Framework 4.5+ compatible")
.put(NETSTANDARD, ".NET Standard 1.3 compatible")
.put(UWP, "Universal Windows Platform - beta support")
.put(UWP, "Universal Windows Platform (IMPORTANT: this will be decomissioned and replaced by v5.0)")
.build();
framework.defaultValue(this.targetFramework);
framework.setEnum(frameworks);

View File

@@ -34,6 +34,7 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf
protected String packageVersion;
protected String controllerPackage;
protected String defaultController;
protected Map<Character, String> regexModifiers;
public FlaskConnexionCodegen() {
super();
@@ -110,6 +111,14 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf
supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile"));
supportingFiles.add(new SupportingFile("dockerignore.mustache", "", ".dockerignore"));
regexModifiers = new HashMap<Character, String>();
regexModifiers.put('i', "IGNORECASE");
regexModifiers.put('l', "LOCALE");
regexModifiers.put('m', "MULTILINE");
regexModifiers.put('s', "DOTALL");
regexModifiers.put('u', "UNICODE");
regexModifiers.put('x', "VERBOSE");
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).")
.defaultValue("swagger_server"));
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.")
@@ -640,8 +649,42 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf
if (StringUtils.isNotEmpty(property.pattern)) {
addImport(model, "import re");
}
postProcessPattern(property.pattern, property.vendorExtensions);
}
@Override
public void postProcessParameter(CodegenParameter parameter){
postProcessPattern(parameter.pattern, parameter.vendorExtensions);
}
/*
* The swagger pattern spec follows the Perl convention and style of modifiers. Python
* does not support this in as natural a way so it needs to convert it. See
* https://docs.python.org/2/howto/regex.html#compilation-flags for details.
*/
public void postProcessPattern(String pattern, Map<String, Object> vendorExtensions){
if(pattern != null) {
int i = pattern.lastIndexOf('/');
//Must follow Perl /pattern/modifiers convention
if(pattern.charAt(0) != '/' || i < 2) {
throw new IllegalArgumentException("Pattern must follow the Perl "
+ "/pattern/modifiers convention. "+pattern+" is not valid.");
}
String regex = pattern.substring(1, i).replace("'", "\\'");
List<String> modifiers = new ArrayList<String>();
for(char c : pattern.substring(i).toCharArray()) {
if(regexModifiers.containsKey(c)) {
String modifier = regexModifiers.get(c);
modifiers.add(modifier);
}
}
vendorExtensions.put("x-regex", regex);
vendorExtensions.put("x-modifiers", modifiers);
}
}
}

View File

@@ -32,7 +32,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
protected Map<Character, String> regexModifiers;
private String testFolder;
private String testFolder;
public PythonClientCodegen() {
super();
@@ -292,12 +292,12 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String apiTestFileFolder() {
return outputFolder + File.separatorChar + testFolder;
return outputFolder + File.separatorChar + testFolder;
}
@Override
public String modelTestFileFolder() {
return outputFolder + File.separatorChar + testFolder;
return outputFolder + File.separatorChar + testFolder;
}
@Override
@@ -433,8 +433,8 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String toModelTestFilename(String name) {
return "test_" + toModelFilename(name);
};
return "test_" + toModelFilename(name);
}
@Override
public String toApiFilename(String name) {
@@ -447,7 +447,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String toApiTestFilename(String name) {
return "test_" + toApiFilename(name);
return "test_" + toApiFilename(name);
}
@Override