Documentation for the python-experimental Generator
METADATA
| Property | Value | Notes |
|---|---|---|
| generator name | python-experimental | pass this to the generate command after -g |
| generator stability | EXPERIMENTAL | |
| generator type | CLIENT | |
| generator language | Python | |
| generator language version | >=3.9 | |
| 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 | |
| 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 | |
| useNose | use the nose test framework | false |
IMPORT MAPPING
| Type/Alias | Imports |
|---|
INSTANTIATION TYPES
| Type/Alias | Instantiated By |
|---|---|
| map | dict |
LANGUAGE PRIMITIVES
- 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 |