openapi-python-generator 2.1.1__tar.gz → 2.1.2.dev1759071794__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/PKG-INFO +1 -1
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/pyproject.toml +1 -1
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/setup.py +1 -1
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/service_generator.py +9 -5
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/LICENSE +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/README.md +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/__init__.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/__main__.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/common.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/generate_data.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/__init__.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/__init__.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/api_config_generator.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/common.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/generator.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/jinja_config.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/model_generator.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/aiohttp.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/apiconfig.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/apiconfig_pydantic_2.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/enum.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/httpx.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/models.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/models_pydantic_2.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/requests.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/language_converters/python/templates/service.jinja2 +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/models.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/parsers/__init__.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/parsers/openapi_30.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/parsers/openapi_31.py +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/py.typed +0 -0
- {openapi_python_generator-2.1.1 → openapi_python_generator-2.1.2.dev1759071794}/src/openapi_python_generator/version_detector.py +0 -0
|
@@ -32,7 +32,7 @@ entry_points = \
|
|
|
32
32
|
|
|
33
33
|
setup_kwargs = {
|
|
34
34
|
'name': 'openapi-python-generator',
|
|
35
|
-
'version': '2.1.
|
|
35
|
+
'version': '2.1.2.dev1759071794',
|
|
36
36
|
'description': 'Openapi Python Generator',
|
|
37
37
|
'long_description': "# Openapi Python Generator\n\n[][pypi_]\n[][status]\n[][python version]\n[][license]\n\n[][documentation]\n[][tests]\n[][codecov]\n\n[][pre-commit]\n[][black]\n\n[pypi_]: https://pypi.org/project/openapi-python-generator/\n[status]: https://pypi.org/project/openapi-python-generator/\n[python version]: https://pypi.org/project/openapi-python-generator\n[documentation]: https://marcomuellner.github.io/openapi-python-generator/\n[tests]: https://github.com/MarcoMuellner/openapi-python-generator/actions?workflow=Tests\n[codecov]: https://app.codecov.io/gh/MarcoMuellner/openapi-python-generator\n[pre-commit]: https://github.com/pre-commit/pre-commit\n[black]: https://github.com/psf/black\n\n\n\n---\n__Documentation:__ [here][documentation]\n\n---\n\n## Features\n\n- __Ease of use__. Provide input, output and the library, and the generator will do the rest.\n- __Type safety and type hinting.__ __OpenAPI python generator__ makes heavy use of pydantic models to provide type-safe data structures.\n- __Support for multiple rest frameworks.__ __OpenAPI python generator__ currently supports the following:\n - [httpx](https://pypi.org/project/httpx/)\n - [requests](https://pypi.org/project/requests/)\n - [aiohttp](https://pypi.org/project/aiohttp/)\n- __Async and sync code generation support__, depending on the framework. It will automatically create both for frameworks that support both.\n- __Easily extendable using Jinja2 templates__. The code is designed to be easily extendable and should support even more languages and frameworks in the future.\n- __Fully tested__. Every generated code is automatically tested against the OpenAPI spec and we have 100% coverage.\n- __Usage as CLI or as library__.\n\n## Requirements\n\n- Python 3.7+\n\n## Installation\n\nYou can install _Openapi Python Generator_ via [pip] from [PyPI]:\n\n```console\n$ pip install openapi-python-generator\n```\n\n## Usage\n\nPlease see the [Quick start page] for details.\n\n## Roadmap\n\n- Support for all commonly used http libraries in the python ecosystem (~~requests~~, urllib, ...)\n- Support for multiple languages\n- Support for multiple authentication schemes\n- Support custom themes\n\n## Contributing\n\nContributions are very welcome.\nTo learn more, see the [Contributor Guide].\n\n## License\n\nDistributed under the terms of the [MIT license][license],\n_Openapi Python Generator_ is free and open source software.\n\n## Issues\n\nIf you encounter any problems,\nplease [file an issue] along with a detailed description.\n\n## Credits\n\nSpecial thanks to the peeps from [openapi-schema-pydantic](https://github.com/kuimono/openapi-schema-pydantic),\nwhich already did a lot of the legwork by providing a pydantic schema for the OpenAPI 3.0.0+ specification.\n\nThis project was generated from [@cjolowicz]'s [Hypermodern Python Cookiecutter] template.\n\n[@cjolowicz]: https://github.com/cjolowicz\n[pypi]: https://pypi.org/\n[hypermodern python cookiecutter]: https://github.com/cjolowicz/cookiecutter-hypermodern-python\n[file an issue]: https://github.com/MarcoMuellner/openapi-python-generator/issues\n[pip]: https://pip.pypa.io/\n\n<!-- github-only -->\n\n[license]: https://github.com/MarcoMuellner/openapi-python-generator/blob/main/LICENSE\n[contributor guide]: https://github.com/MarcoMuellner/openapi-python-generator/blob/main/CONTRIBUTING.md\n[Quick start page]: https://marcomuellner.github.io/openapi-python-generator/quick_start/\n",
|
|
38
38
|
'author': 'Marco Müllner',
|
|
@@ -4,7 +4,6 @@ from typing import Any, Dict, List, Literal, Optional, Tuple, Union
|
|
|
4
4
|
import click
|
|
5
5
|
from openapi_pydantic.v3 import (
|
|
6
6
|
Operation,
|
|
7
|
-
Parameter,
|
|
8
7
|
PathItem,
|
|
9
8
|
Reference,
|
|
10
9
|
Response,
|
|
@@ -24,6 +23,7 @@ from openapi_pydantic.v3.v3_0 import (
|
|
|
24
23
|
from openapi_pydantic.v3.v3_0 import (
|
|
25
24
|
Schema as Schema30,
|
|
26
25
|
)
|
|
26
|
+
from openapi_pydantic.v3.v3_0.parameter import Parameter as Parameter30
|
|
27
27
|
from openapi_pydantic.v3.v3_1 import (
|
|
28
28
|
MediaType as MediaType31,
|
|
29
29
|
)
|
|
@@ -36,6 +36,7 @@ from openapi_pydantic.v3.v3_1 import (
|
|
|
36
36
|
from openapi_pydantic.v3.v3_1 import (
|
|
37
37
|
Schema as Schema31,
|
|
38
38
|
)
|
|
39
|
+
from openapi_pydantic.v3.v3_1.parameter import Parameter as Parameter31
|
|
39
40
|
|
|
40
41
|
from openapi_python_generator.language_converters.python import common
|
|
41
42
|
from openapi_python_generator.language_converters.python.common import normalize_symbol
|
|
@@ -152,7 +153,7 @@ def generate_params(operation: Operation) -> str:
|
|
|
152
153
|
default_params = ""
|
|
153
154
|
if operation.parameters is not None:
|
|
154
155
|
for param in operation.parameters:
|
|
155
|
-
if not isinstance(param,
|
|
156
|
+
if not isinstance(param, (Parameter30, Parameter31)):
|
|
156
157
|
continue # pragma: no cover
|
|
157
158
|
converted_result = ""
|
|
158
159
|
required = False
|
|
@@ -245,7 +246,7 @@ def _generate_params(
|
|
|
245
246
|
|
|
246
247
|
params = []
|
|
247
248
|
for param in operation.parameters:
|
|
248
|
-
if isinstance(param,
|
|
249
|
+
if isinstance(param, (Parameter30, Parameter31)) and param.param_in == param_in:
|
|
249
250
|
param_name_cleaned = common.normalize_symbol(param.name)
|
|
250
251
|
params.append(f"{param.name!r} : {param_name_cleaned}")
|
|
251
252
|
|
|
@@ -358,10 +359,13 @@ def generate_services(
|
|
|
358
359
|
existing_names = set()
|
|
359
360
|
if op.parameters is not None:
|
|
360
361
|
for p in op.parameters: # type: ignore
|
|
361
|
-
if isinstance(p,
|
|
362
|
+
if isinstance(p, (Parameter30, Parameter31)):
|
|
362
363
|
existing_names.add(p.name)
|
|
363
364
|
for p in path_level_params:
|
|
364
|
-
if
|
|
365
|
+
if (
|
|
366
|
+
isinstance(p, (Parameter30, Parameter31))
|
|
367
|
+
and p.name not in existing_names
|
|
368
|
+
):
|
|
365
369
|
if op.parameters is None:
|
|
366
370
|
op.parameters = [] # type: ignore
|
|
367
371
|
op.parameters.append(p) # type: ignore
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|