* I feel the issue is due to the creation of self._var_name_to_model_instances while doing the deserialization of the data. Earlier the Python SDK code was using get_var_name_to_model_instances function which was adding var name to model instances that contain it. So <class 'openapi_client.model.stream_options_all_of'> will not part of mapping in self._var_name_to_model_instances for variable name stream_options. Now with the latest Python SDK code following is the way through which var_name_to_model_instances is created: for prop_name in model_args: if prop_name not in discarded_args: var_name_to_model_instances[prop_name] = [self] + composed_instances Now as we can see that the var_name_to_model_instances is populated with self and composed_instance which will also contain stream_options_all_of as a composed instance and there will be no check that if stream_options is present in composed_instances or not. As there is no attribute_mapping found for stream_options in stream_options_all_of, the type for stream_options will be treated as dict for mapping stream_options_all_of as mentioned by @Chekov2k. So what I suggest is the following code: for prop_name in model_args: if prop_name not in discarded_args: var_name_to_model_instances[prop_name] = [self] + list( filter( lambda x: prop_name in x.openapi_types, composed_instances)) This way we can check if the property name is present in that composed instance or not. If it's okay for @spacether I can raise a PR for this. * [get_item_all_of_bug] Added samples, test cases to validate all_of schema. * [getiem_all_of_bug] Updated docs and samples. * [getiem_all_of_bug] Updated test cases, docs and samples.
x-auth-id-alias
This specification shows how to use x-auth-id-alias extension for API keys.
This Python package is automatically generated by the OpenAPI Generator project:
- API version: 1.0.0
- Package version: 1.0.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
Requirements.
Python >=3.6
Installation & Usage
pip install
If the python package is hosted on a repository, you can install directly using:
pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
(you may need to run pip
with root permission: sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
)
Then import the package:
import x_auth_id_alias
Setuptools
Install via Setuptools.
python setup.py install --user
(or sudo python setup.py install
to install the package for all users)
Then import the package:
import x_auth_id_alias
Getting Started
Please follow the installation procedure and then run the following:
import time
import x_auth_id_alias
from pprint import pprint
from x_auth_id_alias.api import usage_api
# Defining the host is optional and defaults to http://petstore.swagger.io:80/v2
# See configuration.py for a list of all supported configuration parameters.
configuration = x_auth_id_alias.Configuration(
host = "http://petstore.swagger.io:80/v2"
)
# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.
# Configure API key authorization: api_key
configuration.api_key['api_key'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key'] = 'Bearer'
# Configure API key authorization: api_key_query
configuration.api_key['api_key_query'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
# configuration.api_key_prefix['api_key_query'] = 'Bearer'
# Enter a context with an instance of the API client
with x_auth_id_alias.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = usage_api.UsageApi(api_client)
try:
# Use any API key
api_response = api_instance.any_key()
pprint(api_response)
except x_auth_id_alias.ApiException as e:
print("Exception when calling UsageApi->any_key: %s\n" % e)
Documentation for API Endpoints
All URIs are relative to http://petstore.swagger.io:80/v2
Class | Method | HTTP request | Description |
---|---|---|---|
UsageApi | any_key | GET /any | Use any API key |
UsageApi | both_keys | GET /both | Use both API keys |
UsageApi | key_in_header | GET /header | Use API key in header |
UsageApi | key_in_query | GET /query | Use API key in query |
Documentation For Models
Documentation For Authorization
api_key
- Type: API key
- API key parameter name: X-Api-Key
- Location: HTTP header
api_key_query
- Type: API key
- API key parameter name: api_key
- Location: URL query string
Author
Notes for Large OpenAPI documents
If the OpenAPI document is large, imports in x_auth_id_alias.apis and x_auth_id_alias.models may fail with a RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:
Solution 1: Use specific imports for apis and models like:
from x_auth_id_alias.api.default_api import DefaultApi
from x_auth_id_alias.model.pet import Pet
Solution 2: Before importing the package, adjust the maximum recursion limit as shown below:
import sys
sys.setrecursionlimit(1500)
import x_auth_id_alias
from x_auth_id_alias.apis import *
from x_auth_id_alias.models import *