mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-05-12 20:50:55 +00:00
* add python-nextgen generator * remove client_side_validation from model * remove configuraiton import from models * add inheritance support * update test requirements, tox * add typings, pydanic to models * add test model * minor improvements * add enum support * add typing for parameters, remove validations * add oneof, anyof support * fix default value * fix deserialization, api tests passed * private variable naming, update tests, all tests passed * remove six * remove nose * update doc * remove sortParamsByRequiredFlag option * add parameter validation * add validation tests * simplify Field() * remove previous required parameter validation * improve parameter handling * support discriminator mapping * better typing discriminator mapping * format test code * fix tests * fix oneOf from_dict, add test * add set validation test * fix nested oneof serialization, add tests * add model import * remove models. prefix * remove import models * remove model import from api * simplify from_dict * add typing for return * skip pydantic import in return type * fix tests, fix enum * restore more enum schema tests * uncomment enum integer test * clean up getfullargspec import in model * clean up getfullargspec import * fix deserilizatoin for nested oneof * minor fixes, add tests * fix regular expression * add aiohttp samples, add tests * remove default content type to json * update template * fix select accept, content-type * move tests * move tests * fix url query parameters * fix list * fix samples * fix param pydantic, add list as reserved word * fix auto-generated doc * fix readme * fix list, fix special variable name with var_ * fix Literal in python 3.7 * fix default configuration * fix aiohttp tests * set default api client instance * deprecate get_default_copy method * fix enum model * fix enum serializatio/deserialization * add github workflow support * add regular expression validator * add enum validator * better model import * fix file, remove x-py-import-models * rename local var * better model example * fix regular expression warning, add special_name test, whitelist schema * skip self import * update samples * various fixes * add base64, json as reserved word * add http signature support * add http signature test * add additioanl properties support in python client * add decimal support * use strictstr instead of constr * fix test with virtualenv * add nullable support * add readonly support * add model name caching * fix circular reference import * add onelook discriminator lookup * add tests * update samples * fix locale * Fix client legacy generator asyncio README code example * test python-nextgen in circleci * fix pom.xml * update python to 3.7.15 * test with python 3.7.12 * various updates * fix python legacy
8.0 KiB
8.0 KiB
title |
---|
Documentation for the python Generator |
METADATA
Property | Value | Notes |
---|---|---|
generator name | python | pass this to the generate command after -g |
generator stability | STABLE | |
generator type | CLIENT | |
generator language | Python | |
generator language version | >=3.7 | |
generator default templating engine | handlebars | |
helpTxt | Generates a Python client library Features in this generator: - type hints on endpoints and model creation - model parameter names use the spec defined keys and cases - robust composition (oneOf/anyOf/allOf/not) where payload data is stored in one instance only - endpoint parameter names use the spec defined keys and cases - inline schemas are supported at any location including composition - multiple content types supported in request body and response bodies - run time type checking - Sending/receiving decimals as strings supported with type:string format: number -> DecimalSchema - Sending/receiving uuids as strings supported with type:string format: uuid -> UUIDSchema - quicker load time for python modules (a single endpoint can be imported and used without loading others) - all instances of schemas dynamically inherit from all matching schemas so one can use isinstance to check if validation passed - composed schemas with type constraints supported (type:object + oneOf/anyOf/allOf) - schemas are not coerced/cast. For example string + date are both stored as string, and there is a date accessor - Exceptions: int/float is stored as Decimal, When receiving data from headers it will start as str and may need to be cast for example to int |
CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
Option | Description | Values | Default |
---|---|---|---|
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: urllib3 | urllib3 | |
nonCompliantUseDiscriminatorIfCompositionFails | When true, If the payload fails to validate against composed schemas (allOf/anyOf/oneOf/not) and a discriminator is present, then ignore the composition validation errors and attempt to use the discriminator to validate the payload.<br />Note: setting this to true makes the generated client not comply with json schema because it ignores composition validation errors. Please consider making your schemas more restrictive rather than setting this to true. You can do that by:<ul><li>defining the propertyName as an enum with only one value in the schemas that are in your discriminator map</li><li>setting additionalProperties: false in your schemas</li></ul> |
|
false |
packageName | python package name (convention: snake_case). | openapi_client | |
packageUrl | python package URL. | null | |
packageVersion | python package version. | 1.0.0 | |
projectName | python project name in setup.py (e.g. petstore-api). | null | |
recursionLimit | Set the recursion limit. If not set, use the system default value. | null | |
useInlineModelResolver | use the inline model resolver, if true inline complex models will be extracted into components and $refs to them will be used | false | |
useNose | use the nose test framework | false |
IMPORT MAPPING
Type/Alias | Imports |
---|
INSTANTIATION TYPES
Type/Alias | Instantiated By |
---|---|
map | dict |
LANGUAGE PRIMITIVES
- Dict
- List
- bool
- bytes
- date
- datetime
- dict
- file
- file_type
- float
- int
- list
- none_type
- object
- str
RESERVED WORDS
- all_params
- and
- as
- assert
- async
- auth_settings
- await
- body_params
- bool
- break
- class
- continue
- def
- del
- dict
- elif
- else
- except
- exec
- false
- file_type
- finally
- float
- for
- form_params
- from
- frozendict
- global
- header_params
- if
- import
- in
- int
- is
- lambda
- list
- local_var_files
- none
- none_type
- nonlocal
- not
- or
- pass
- path_params
- property
- query_params
- raise
- resource_path
- return
- self
- str
- true
- try
- tuple
- while
- with
- yield
FEATURE SET
Client Modification Feature
Name | Supported | Defined By |
---|---|---|
BasePath | ✗ | ToolingExtension |
Authorizations | ✗ | ToolingExtension |
UserAgent | ✗ | ToolingExtension |
MockServer | ✗ | ToolingExtension |
Data Type Feature
Name | Supported | Defined By |
---|---|---|
Custom | ✗ | OAS2,OAS3 |
Int32 | ✓ | OAS2,OAS3 |
Int64 | ✓ | OAS2,OAS3 |
Float | ✓ | OAS2,OAS3 |
Double | ✓ | OAS2,OAS3 |
Decimal | ✓ | ToolingExtension |
String | ✓ | OAS2,OAS3 |
Byte | ✓ | OAS2,OAS3 |
Binary | ✓ | OAS2,OAS3 |
Boolean | ✓ | OAS2,OAS3 |
Date | ✓ | OAS2,OAS3 |
DateTime | ✓ | OAS2,OAS3 |
Password | ✓ | OAS2,OAS3 |
File | ✓ | OAS2 |
Uuid | ✓ | |
Array | ✓ | OAS2,OAS3 |
Null | ✓ | OAS3 |
AnyType | ✓ | OAS2,OAS3 |
Object | ✓ | OAS2,OAS3 |
Maps | ✓ | ToolingExtension |
CollectionFormat | ✓ | OAS2 |
CollectionFormatMulti | ✓ | OAS2 |
Enum | ✓ | OAS2,OAS3 |
ArrayOfEnum | ✓ | ToolingExtension |
ArrayOfModel | ✓ | ToolingExtension |
ArrayOfCollectionOfPrimitives | ✓ | ToolingExtension |
ArrayOfCollectionOfModel | ✓ | ToolingExtension |
ArrayOfCollectionOfEnum | ✓ | ToolingExtension |
MapOfEnum | ✓ | ToolingExtension |
MapOfModel | ✓ | ToolingExtension |
MapOfCollectionOfPrimitives | ✓ | ToolingExtension |
MapOfCollectionOfModel | ✓ | ToolingExtension |
MapOfCollectionOfEnum | ✓ | ToolingExtension |
Documentation Feature
Name | Supported | Defined By |
---|---|---|
Readme | ✓ | ToolingExtension |
Model | ✓ | ToolingExtension |
Api | ✓ | ToolingExtension |
Global Feature
Name | Supported | Defined By |
---|---|---|
Host | ✓ | OAS2,OAS3 |
BasePath | ✓ | OAS2,OAS3 |
Info | ✓ | OAS2,OAS3 |
Schemes | ✗ | OAS2,OAS3 |
PartialSchemes | ✓ | OAS2,OAS3 |
Consumes | ✓ | OAS2 |
Produces | ✓ | OAS2 |
ExternalDocumentation | ✓ | OAS2,OAS3 |
Examples | ✓ | OAS2,OAS3 |
XMLStructureDefinitions | ✗ | OAS2,OAS3 |
MultiServer | ✗ | OAS3 |
ParameterizedServer | ✓ | OAS3 |
ParameterStyling | ✓ | OAS3 |
Callbacks | ✗ | OAS3 |
LinkObjects | ✗ | OAS3 |
Parameter Feature
Name | Supported | Defined By |
---|---|---|
Path | ✓ | OAS2,OAS3 |
Query | ✓ | OAS2,OAS3 |
Header | ✓ | OAS2,OAS3 |
Body | ✓ | OAS2 |
FormUnencoded | ✓ | OAS2 |
FormMultipart | ✓ | OAS2 |
Cookie | ✗ | OAS3 |
Schema Support Feature
Name | Supported | Defined By |
---|---|---|
Simple | ✓ | OAS2,OAS3 |
Composite | ✓ | OAS2,OAS3 |
Polymorphism | ✓ | OAS2,OAS3 |
Union | ✓ | OAS3 |
allOf | ✓ | OAS2,OAS3 |
anyOf | ✓ | OAS3 |
oneOf | ✓ | OAS3 |
not | ✓ | OAS3 |
Security Feature
Name | Supported | Defined By |
---|---|---|
BasicAuth | ✓ | OAS2,OAS3 |
ApiKey | ✓ | OAS2,OAS3 |
OpenIDConnect | ✗ | OAS3 |
BearerToken | ✓ | OAS3 |
OAuth2_Implicit | ✓ | OAS2,OAS3 |
OAuth2_Password | ✗ | OAS2,OAS3 |
OAuth2_ClientCredentials | ✗ | OAS2,OAS3 |
OAuth2_AuthorizationCode | ✗ | OAS2,OAS3 |
Wire Format Feature
Name | Supported | Defined By |
---|---|---|
JSON | ✓ | OAS2,OAS3 |
XML | ✗ | OAS2,OAS3 |
PROTOBUF | ✗ | ToolingExtension |
Custom | ✓ | OAS2,OAS3 |