* Adds get/setIsString interface to IJsonSchemaValidationProperties
* Adds get/set isNumber interface in IJsonSchemaValidationProperties
* Adds get/set isAnyType in IJsonSchemaValidationProperties
* Adds and uses ModelUtils.isAnyType, adds setTypeProperties
* Adds missing descriptions of isAnyType parameters
* Uses ModelUtils.isAnyType
* Samples regenerated
* Moves isArray handling higher up in fromProperty
* Moves isAnyTypeSchema handling higher up in fromProperty
* Moves isFreeFormObject handling higher up in fromProperty
* Refactors fromProperties, updates tests
* Fixes the fromProperty refactor, tests now pass
* Uses setTypeProperties to set isNumber, isNull, isArray, and isUnboundedInteger
* Sets isAnyType in setTypeProperties
* Sets isMap in setTypeProperties
* Sets property.isPrimitiveType in isFreeFormObject, tweaks if condition order
* Adds fix for JavaClientCodegenTest.testJdkHttpClientWithAndWithoutDiscriminator
* Refactors fromProperty
* Adds updatePropertyForObject updatePropertyForAnyType
* Sets binary and file types to not be strings
* Updates samples
* Adds updatePropertyForString
* Adds testComposedPropertyTypes
* Fixes python test
* Samples updated
* Switches all isAnyTypeSchema usages to ModelUtils.isAnyType
* Refactors model enum handling higher up
* Moves m.dataType assignent higher into fromModel
* Moves m.isNullable setting higher into isModel
* Adds updateModelForComposedSchema
* Further fromModel refactoring, all schema checks are now at the same indentation level
* Further refactors fromModel, adds isTypeObjectSchema block
* Moves addVars into anyType or objectType blocks in fromModel
* Turns off isNullable n isAnyType array
* Fixes typescript CodegenParameers
* Adds updatePropertyForAnyType to typescript-axios so property.isNullable will be false for AnyType
* Adds testComposedModelTypes
* Updates ComposedAnyType schema
* Fixes tests for JavaJAXRSCXF by adding updateModelForObject method
* Updates go and csharp to handle object model differently
* Adds updateModelForAnyType
* Fixes name reference
* Adds testComposedResponseTypes
* Refactoring fromResponse
* Further refactoring of fromResponse
* Uses setTypeProperties in fromResponse
* Tests now pass for testComposedResponseTypes
* Sets COdegenResponse dataType using getTypeDeclaration
* Begins refactoring of fromRequestBody
* Adds updateResponseBodyForPrimitiveType
* Adds all needed type if else blocks in fromRequestBody
* Fixes JavaJAXRSCXFExtServerCodegenTests
* Fixes RubyClientCodegenTests
* Adds fixes for clients that need custom isMap for body parameters
* Ruby broken, samples regened, debugging
* Adds updateRequestBodyForArray, renames updateRequest.. methods
* Samples regenerated
* Removes changes from Ruby generator
* Reverts RubyClientCodegen.java
* Reverts changes to GoClientCodegen.java
* Reverts PowerShellClientCodegen.java
* Reverts CrystalClientCodegen.java
* Removes updateRequestBodyForObject from JavaCXFServerCodegen.java
* Adds comment about refed models
* Tweaks made to fromProperties to add an explanatory comment
* Updates RustServer to have ByteArray request bodies not be strings
* Sets types in fromFormProperty
* Adds testComposedRequestBodyTypes
* Fixes when validation syncing is done in syncValidationProperties
* Removes redundant validation code from fromParameter
* Moves parameter inX setting higher up before schema logic in fromParameter
* More refactoring in fromParameter, uses early return to reduce levels of indentation
* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForArray
* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForObject
* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForPrimitiveType
* Removes setParameterBooleanFlagWithCodegenProperty from updateRequestBodyForMap
* Removes setParameterBooleanFlagWithCodegenProperty from addBodyModelSchema
* Removes setParameterBooleanFlagWithCodegenProperty from fromFormProperty
* Refactors parameter array handling code into fromFormProperty
* Simplifies fromRequestBodyToFormParameters
* Removes setParameterBooleanFlagWithCodegenProperty from fromParameter
* Adds deprecated docstring to setParameterBooleanFlagWithCodegenProperty
* Refactors ModelUtils.isFileSchema out of string schema check
* Removes ModelUtils.isFileSchema from RustServer updateRequestBodyForString
* Improves comment text
* Fixes RustServer uuid type setting for CodegenParameter
* Removes unneeded parens
* Fixes array property examples
* Removes unused code
* Renames variable to itemsProperty
* Adds testComposedRequestQueryParamTypes
* Adds updatePropertyForAnyType to rustserver will not have changed model properties
* Hoists arrayInnerProperty._enum into parameter for html2 generator
* Moves turning string type off into the codegen files
* Adds two more missing locations in rustserver
* Moves addVarsRequiredVarsAdditionalProps into anytype and objecttype handling
* More refactoring of where addVarsRequiredVarsAdditionalProps is used
* Samples regenerated
* Add a space between table title and the line above it to resolve issues when translating markdown to asciidoc
* Regenerate Samples
Co-authored-by: Tyler Ballast <tyler.ballast@reportix.com>
Co-authored-by: tballast <tyler.ballast@gmail.com>
* python->python-legacy, python-experimental->python
* test with openjdk8
* test with openjdk11
* comment out rm
* move kotlin tests to circleci
* move kotlin tests
* move tests to circleci
* fix circleci
* rearrange test
* move tests
* use wrapper
Co-authored-by: Justin Black <justin.a.black@gmail.com>
* Reduce redundancy in python docs
This is a followup to PR #5094, which had a few unresolved comments at
merge time. This reduces the amount of redundant lines in the api
example doc templates, and ensures that referenced Configuration objects
are actually instantiated.
* Regenerate samples
* [python] Cleanup ThreadPool with atexit rather than __del__
This removes the `__del__` function from the generated Python client,
and replaces it with a `cleanup` function. When a ThreadPool is created,
the cleanup function is registered with the `atexit` module.
This fixes#5093, where the API client could hang indefinitely at
garbage collection.
* Update petstore examples
* Test to ensure threadpool is cleaned up
* Docs now encourage using the context manager
* Regenerate docs
* Update samples
* add test cases to cover different collection format
* add space params to retrofit 1.x
* add space params to retrofit 2.x
* rename url to localVarUrl
* fix exception in haskell servant
* add multiple server support to python client
* various fixes
* minor fixes, add tests
* test oas2 python first
* fix tests
* fix issues reported by flake8
* update code format
* add python petstore to ensure up-to-date
* rearrange test
* fix E501
* fix tests
* add new files
* fix script permission
* fix index check
* update samples
* Adds two models to the v2.0 spec, uses examples as defaults in python client
* Adds array default and type_holder_default and type_holder_example tests
* Re-generated python security client with ./bin/security/python-petstore.sh
* Changes comment text, rebased master
* Updates client + server samples
* Adds missing samples updates
* Changes python client to look for true or false with booleans in toDefaultValue
* Changes boolean casting to use Boolean.valueOf
* Adds deserialization fix for python tests
* Changes Mock to namedtuple in python deserialization tests
* Actually remove unittest.mock
* Fix escaped regex values in Python client (#1517).
* Override PythonClientCodegen toRegularExpression() method to correct
issue with backslashes being escaped. This issue was a result of
calling escapeText() in the parent DefaultCodegen class.
* Only escape unescaped forward slashes in PythonClientCodegen.
* Override addRegularExpressionDelimiter in PythonClientCodegen.java
such that only unescaped forward slashes in the pattern get escaped.
* Adds a new test resource .yaml file for specifically testing this
issue.
* Check for regular expression modifiers in PythonClientCodegen.
* Adds check in postProcessPattern() in PythonClientCodegen.java to
check if regular expression has modifiers defined. If so, it throws an
exception as modifiers are not currently supported in the Python
client.
* PythonClientCodegen warns that regex modifiers are not supported.
* Changes behavior in PythonClientCodegen.java to no longer throw an
IllegalArgumentException in the case that a pattern contains
modifiers. A warning message will be logged instead stating that
modifiers are not currently supported by the codegen class.
* Remove warning for PythonClientCodegen regex modifier support.
* Removes warning message from PythonClientCodegen.java stating that
regular expression modifiers are not currently supported. Further
code review and testing revealed that this feature is already
supported and working.
* Add updated Python client sample files.
* Avoid creating unused ThreadPools
Instead, create ApiClient.pool on first request for .pool property.
avoids spawning n-cpus threads (the default for ThreadPool) at instantiation of every ApiClient
* update doc
* set pool_thread to None
* fix: non-zero exit code if tests fail
* tests: use local petserver to run tests
* fix: non-zero exit code if tests fail
* tests: use local petserver to run tests
* fix: creating ssl context in old version of Python
* chore: remove unused target from Makefile
* doc: changes from upstream
* fix: tornado client raises NotImplementedError in older version of Python
`unicode` does not exist in py3, therefore since six is already imported
switch to using `six.u` so that `unicode` is used on py2 and `str` is used
on py3.
The linting results for the generated samples are as follows
where the first number is the BEFORE and the second is AFTER.
pyclient 7714 vs. 120
pyclient3 7717 vs. 120
pyclient3-asyncio 7584 vs. 120
pyclient-tornado 7633 vs. 120
pyclient3-tornado 7633 vs. 120
For the complete details please see the following gist.
https://gist.github.com/kenjones-cisco/2eb69a7e8db75e9fd53789f01570d9f2
Enforces linting for python clients by running flake8 for the generated
python client.
* Updated api_client and configuration docstrings
ApiClient: Removed host param, added configuration and cookie param
Configuration: Docstrings are only read from the @property decorated
function, not the setter, moved the more descriptive docstrings from the
setters to property functions
* Ran bin/python-petstore.sh
When a spec defines a Model at the top level that is a non-aggretate type (such
as string, number or boolean), it essentially represents an alias for the simple
type. For example, the following spec snippet creates an alias of the boolean
type that for all intents and purposes acts just like a regular boolean.
definitions:
JustABoolean:
type: boolean
This can be modeled in some languages through built-in mechanisms, such as
typedefs in C++. Java, however, just not have a clean way of representing this.
This change introduces an internal mechanism for representing aliases. It
maintains a map in DefaultCodegen that tracks these types of definitions, and
wherever it sees the "JustABoolean" type in the spec, it generates code that
uses the built-in "Boolean" instead.
This functionality currenlty only applies to Java, but could be extended to
other languages later.
The change adds a few examples of this to the fake endpoint spec for testing,
which means all of the samples change as well.
* Updating samples after #5232.
* Fix tests after #5232.
* Fix Javascript client tests.
* JaxRS server: set serverPort only when not given from outside.
* Update JaxRS sample creator scripts to fix serverPort.
* Preliminary test fix for JaxRS server generators.
* Updating samples for JaxRS with Jersey1/2.
* Updating JaxRS samples again.
* python: Let logging format messages on demand
* python: Use six more
* python: Remove unused imports
* python: flake8 fixes
* python: Make examples compatible with Python 3
* python: Spelling fixes