diff --git a/bin/generate-samples.sh b/bin/generate-samples.sh index 3f88859f9779..6c309f22f596 100755 --- a/bin/generate-samples.sh +++ b/bin/generate-samples.sh @@ -52,8 +52,6 @@ if [[ ${#files[@]} -eq 1 && "${files[0]}" != *'*'* ]]; then # shellcheck disable=SC2068 java ${JAVA_OPTS} -jar "$executable" generate -c ${files[0]} ${args[@]} else - echo "Please press CTRL+C to stop or the script will continue in 5 seconds." - #sleep 5 if [ ${#files[@]} -eq 0 ]; then files=("${root}"/bin/configs/*.yaml) fi diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java index a1caa703f4d2..3537d293a862 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PythonClientCodegen.java @@ -133,7 +133,7 @@ public PythonClientCodegen() { cliOptions.clear(); cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).") .defaultValue("openapi_client")); - cliOptions.add(new CliOption(CodegenConstants.PROJECT_NAME, "python project name in setup.py (e.g. petstore-api).")); + cliOptions.add(new CliOption(CodegenConstants.PROJECT_NAME, "python project name in pyproject.toml (e.g. petstore-api).")); cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.") .defaultValue("1.0.0")); cliOptions.add(new CliOption(PACKAGE_URL, "python package URL.")); @@ -284,18 +284,17 @@ public void processOpts() { if (!generateSourceCodeOnly) { supportingFiles.add(new SupportingFile("tox.mustache", "", "tox.ini")); - supportingFiles.add(new SupportingFile("test-requirements.mustache", "", "test-requirements.txt")); - supportingFiles.add(new SupportingFile("requirements.mustache", "", "requirements.txt")); - supportingFiles.add(new SupportingFile("setup_cfg.mustache", "", "setup.cfg")); supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh")); supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore")); supportingFiles.add(new SupportingFile("travis.mustache", "", ".travis.yml")); supportingFiles.add(new SupportingFile("github-workflow.mustache", ".github/workflows", "python.yml")); supportingFiles.add(new SupportingFile("gitlab-ci.mustache", "", ".gitlab-ci.yml")); - supportingFiles.add(new SupportingFile("setup.mustache", "", "setup.py")); supportingFiles.add(new SupportingFile("pyproject.mustache", "", "pyproject.toml")); supportingFiles.add(new SupportingFile("py.typed.mustache", packagePath(), "py.typed")); + } else { + supportingFiles.add(new SupportingFile("requirements.mustache", "", "requirements.txt")); + supportingFiles.add(new SupportingFile("test-requirements.mustache", "", "test-requirements.txt")); } supportingFiles.add(new SupportingFile("configuration.mustache", packagePath(), "configuration.py")); supportingFiles.add(new SupportingFile("__init__package.mustache", packagePath(), "__init__.py")); diff --git a/modules/openapi-generator/src/main/resources/python/README.mustache b/modules/openapi-generator/src/main/resources/python/README.mustache index 424335a54e94..449700f6dfe5 100644 --- a/modules/openapi-generator/src/main/resources/python/README.mustache +++ b/modules/openapi-generator/src/main/resources/python/README.mustache @@ -12,39 +12,25 @@ This Python package is automatically generated by the [OpenAPI Generator](https: {{/hideGenerationTimestamp}} - Generator version: {{generatorVersion}} - Build package: {{generatorClass}} + {{#infoUrl}} For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) {{/infoUrl}} -## Requirements. +## Requirements Python {{{generatorLanguageVersion}}} ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh pip install git+https://{{gitHost}}/{{{gitUserId}}}/{{{gitRepoId}}}.git ``` -(you may need to run `pip` with root permission: `sudo pip install git+https://{{gitHost}}/{{{gitUserId}}}/{{{gitRepoId}}}.git`) - -Then import the package: -```python -import {{{packageName}}} -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import {{{packageName}}} ``` @@ -58,4 +44,3 @@ Execute `pytest` to run the tests. Please follow the [installation procedure](#installation--usage) and then run the following: {{> common_README }} - diff --git a/modules/openapi-generator/src/main/resources/python/README_onlypackage.mustache b/modules/openapi-generator/src/main/resources/python/README_onlypackage.mustache index 430fb722f841..506c7b832ec2 100644 --- a/modules/openapi-generator/src/main/resources/python/README_onlypackage.mustache +++ b/modules/openapi-generator/src/main/resources/python/README_onlypackage.mustache @@ -16,31 +16,20 @@ The `{{packageName}}` package is automatically generated by the [OpenAPI Generat For more information, please visit [{{{infoUrl}}}]({{{infoUrl}}}) {{/infoUrl}} -## Requirements. +## Requirements Python {{{generatorLanguageVersion}}} ## Installation & Usage -This python library package is generated without supporting files like setup.py or requirements files - -To be able to use it, you will need these dependencies in your own package that uses this library: - -* urllib3 >= 2.1.0, < 3.0.0 -* python-dateutil >= 2.8.2 -{{#async}} -* aiohttp >= 3.8.4 -* aiohttp-retry >= 2.8.3 -{{/async}} -{{#tornado}} -* tornado >= 4.2, < 5 -{{/tornado}} -{{#hasHttpSignatureMethods}} -* pem >= 19.3.0 -* pycryptodome >= 3.9.0 -{{/hasHttpSignatureMethods}} -* pydantic >= 2 -* typing-extensions >= 4.7.1 +This python library package is generated without supporting files like `pyproject.toml`. +To be able to use it, you will need these dependencies in your own package that uses this library. +Requirements files (`requirement.txt`, `test-requirements.txt`) are provided for this. + +``` +pip install -r requirements.txt # install runtime dependencies +pip install -r test-requirements.txt # (optional) install testing dependencies +``` ## Getting Started @@ -48,4 +37,3 @@ In your own code, to use this library to connect and interact with {{{projectNam you can run the following: {{> common_README }} - diff --git a/modules/openapi-generator/src/main/resources/python/__init__model.mustache b/modules/openapi-generator/src/main/resources/python/__init__model.mustache index 117f69132c40..28f737bf8dba 100644 --- a/modules/openapi-generator/src/main/resources/python/__init__model.mustache +++ b/modules/openapi-generator/src/main/resources/python/__init__model.mustache @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa {{>partial_header}} diff --git a/modules/openapi-generator/src/main/resources/python/__init__package.mustache b/modules/openapi-generator/src/main/resources/python/__init__package.mustache index 73f0adf0d473..c5ab3932acad 100644 --- a/modules/openapi-generator/src/main/resources/python/__init__package.mustache +++ b/modules/openapi-generator/src/main/resources/python/__init__package.mustache @@ -1,10 +1,7 @@ -# coding: utf-8 - # flake8: noqa {{>partial_header}} - __version__ = "{{packageVersion}}" # Define package exports diff --git a/modules/openapi-generator/src/main/resources/python/pyproject.mustache b/modules/openapi-generator/src/main/resources/python/pyproject.mustache index 7eed997a3f43..c230102981bf 100644 --- a/modules/openapi-generator/src/main/resources/python/pyproject.mustache +++ b/modules/openapi-generator/src/main/resources/python/pyproject.mustache @@ -1,65 +1,20 @@ -{{#poetry1}} -[tool.poetry] -{{/poetry1}} -{{^poetry1}} +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + [project] -{{/poetry1}} name = "{{{packageName}}}" version = "{{{packageVersion}}}" description = "{{{appName}}}" -{{#poetry1}} -authors = ["{{infoName}}{{^infoName}}OpenAPI Generator Community{{/infoName}} <{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}>"] -{{/poetry1}} -{{^poetry1}} authors = [ - {name = "{{infoName}}{{^infoName}}OpenAPI Generator Community{{/infoName}}",email = "{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}"}, + {name = "{{infoName}}{{^infoName}}OpenAPI Generator Community{{/infoName}}", email = "{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}"}, ] -{{/poetry1}} {{#licenseInfo}} -{{#poetry1}} -license = "{{{licenseInfo}}}" -{{/poetry1}} -{{^poetry1}} license = { text = "{{{licenseInfo}}}" } -{{/poetry1}} {{/licenseInfo}} readme = "README.md" -{{#poetry1}} -repository = "https://{{{gitHost}}}/{{{gitUserId}}}/{{{gitRepoId}}}" -{{/poetry1}} keywords = ["OpenAPI", "OpenAPI-Generator", "{{{appName}}}"] -{{#poetry1}} -include = ["{{packageName}}/py.typed"] - -[tool.poetry.dependencies] -python = "^3.9" -{{^async}} -urllib3 = ">= 2.1.0, < 3.0.0" -{{/async}} -python-dateutil = ">= 2.8.2" -{{#asyncio}} -aiohttp = ">= 3.8.4" -aiohttp-retry = ">= 2.8.3" -{{/asyncio}} -{{#httpx}} -httpx = ">= 0.28.1" -{{/httpx}} -{{#tornado}} -tornado = ">=4.2, <5" -{{/tornado}} -{{#hasHttpSignatureMethods}} -pem = ">= 19.3.0" -pycryptodome = ">= 3.9.0" -{{/hasHttpSignatureMethods}} -pydantic = ">= 2" -typing-extensions = ">= 4.7.1" -{{#lazyImports}} -lazy-imports = ">= 1, < 2" -{{/lazyImports}} -{{/poetry1}} -{{^poetry1}} requires-python = ">=3.9" - dependencies = [ {{^async}} "urllib3 (>=2.1.0,<3.0.0)", @@ -89,33 +44,19 @@ dependencies = [ [project.urls] Repository = "https://{{{gitHost}}}/{{{gitUserId}}}/{{{gitRepoId}}}" -{{/poetry1}} -{{^poetry1}} -[tool.poetry] -requires-poetry = ">=2.0" -{{/poetry1}} - -{{#poetry1}} -[tool.poetry.dev-dependencies] -{{/poetry1}} -{{^poetry1}} [tool.poetry.group.dev.dependencies] -{{/poetry1}} pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "{{{packageName}}}", diff --git a/modules/openapi-generator/src/main/resources/python/setup.mustache b/modules/openapi-generator/src/main/resources/python/setup.mustache deleted file mode 100644 index d65485b42f90..000000000000 --- a/modules/openapi-generator/src/main/resources/python/setup.mustache +++ /dev/null @@ -1,60 +0,0 @@ -# coding: utf-8 - -{{>partial_header}} - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "{{{projectName}}}" -VERSION = "{{packageVersion}}" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ -{{^async}} - "urllib3 >= 2.1.0, < 3.0.0", -{{/async}} - "python-dateutil >= 2.8.2", -{{#asyncio}} - "aiohttp >= 3.8.4", - "aiohttp-retry >= 2.8.3", -{{/asyncio}} -{{#httpx}} - "httpx >= 0.28.1", -{{/httpx}} -{{#tornado}} - "tornado>=4.2, < 5", -{{/tornado}} -{{#hasHttpSignatureMethods}} - "pem >= 19.3.0", - "pycryptodome >= 3.9.0", -{{/hasHttpSignatureMethods}} - "pydantic >= 2", - "typing-extensions >= 4.7.1", -{{#lazyImports}} - "lazy-imports >= 1, < 2", -{{/lazyImports}} -] - -setup( - name=NAME, - version=VERSION, - description="{{appName}}", - author="{{infoName}}{{^infoName}}OpenAPI Generator community{{/infoName}}", - author_email="{{infoEmail}}{{^infoEmail}}team@openapitools.org{{/infoEmail}}", - url="{{packageUrl}}", - keywords=["OpenAPI", "OpenAPI-Generator", "{{{appName}}}"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - {{#licenseInfo}}license="{{.}}", - {{/licenseInfo}}long_description_content_type='text/markdown', - long_description="""\ - {{appDescription}} - """, # noqa: E501 - package_data={"{{{packageName}}}": ["py.typed"]}, -) \ No newline at end of file diff --git a/modules/openapi-generator/src/main/resources/python/setup_cfg.mustache b/modules/openapi-generator/src/main/resources/python/setup_cfg.mustache deleted file mode 100644 index 11433ee875ab..000000000000 --- a/modules/openapi-generator/src/main/resources/python/setup_cfg.mustache +++ /dev/null @@ -1,2 +0,0 @@ -[flake8] -max-line-length=99 diff --git a/modules/openapi-generator/src/main/resources/python/test-requirements.mustache b/modules/openapi-generator/src/main/resources/python/test-requirements.mustache index e98555c11c8a..5d932557da7d 100644 --- a/modules/openapi-generator/src/main/resources/python/test-requirements.mustache +++ b/modules/openapi-generator/src/main/resources/python/test-requirements.mustache @@ -1,6 +1,5 @@ pytest >= 7.2.1 pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 +ruff >= 0.14.0 types-python-dateutil >= 2.8.19.14 mypy >= 1.5 diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java index a18f2f40d11b..9039e146a669 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/python/PythonClientCodegenTest.java @@ -564,9 +564,8 @@ public void testHandleNoApis() throws IOException { File apiFile = files.get(Paths.get(output.getAbsolutePath(), "openapi_client", "api", "hello_example_api.py").toString()); assertNull(apiFile); - File setupFile = files.get(Paths.get(output.getAbsolutePath(), "setup.py").toString()); - assertNotNull(setupFile); - assertFileContains(setupFile.toPath(), "setup("); + File pyprojectTOMLFile = files.get(Paths.get(output.getAbsolutePath(), "pyproject.toml").toString()); + assertNotNull(pyprojectTOMLFile); } @Test(description = "outputs __init__.py with imports for exports") @@ -613,7 +612,7 @@ public void testInitFileImportsExports() throws IOException { assertFileContains(initFilePath, "from openapi_client.models.user import User as User"); } - @Test(description = "Verify default license format uses object notation when poetry1 is false") + @Test(description = "Verify default license format uses object notation") public void testLicenseFormatInPyprojectToml() throws IOException { File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); output.deleteOnExit(); @@ -633,56 +632,4 @@ public void testLicenseFormatInPyprojectToml() throws IOException { TestUtils.assertFileContains(Paths.get(output.getAbsolutePath(), "pyproject.toml"), "license = { text = \"MIT\" }"); } - - @Test(description = "Verify poetry1 mode uses string notation for license") - public void testPoetry1LicenseFormat() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("python") - .setInputSpec("src/test/resources/bugs/issue_21619.yaml") - .setOutputDir(output.getAbsolutePath()) - .addAdditionalProperty("licenseInfo", "Apache-2.0") - .addAdditionalProperty("poetry1", true); // Enable legacy poetry1 mode - - DefaultGenerator generator = new DefaultGenerator(); - List files = generator.opts(configurator.toClientOptInput()).generate(); - files.forEach(File::deleteOnExit); - - Path pyprojectPath = Paths.get(output.getAbsolutePath(), "pyproject.toml"); - TestUtils.assertFileExists(pyprojectPath); - - // In poetry1 mode, license should use simple string format: "Apache-2.0" - TestUtils.assertFileContains(pyprojectPath, "license = \"Apache-2.0\""); - - // Verify it does NOT use the new object format - TestUtils.assertFileNotContains(pyprojectPath, "license = { text = \"Apache-2.0\" }"); - } - - @Test(description = "Verify non-poetry1 mode uses object notation for license") - public void testNonPoetry1LicenseFormat() throws IOException { - File output = Files.createTempDirectory("test").toFile().getCanonicalFile(); - output.deleteOnExit(); - - final CodegenConfigurator configurator = new CodegenConfigurator() - .setGeneratorName("python") - .setInputSpec("src/test/resources/bugs/issue_21619.yaml") - .setOutputDir(output.getAbsolutePath()) - .addAdditionalProperty("licenseInfo", "BSD-3-Clause") - .addAdditionalProperty("poetry1", false); // Explicitly disable poetry1 mode - - DefaultGenerator generator = new DefaultGenerator(); - List files = generator.opts(configurator.toClientOptInput()).generate(); - files.forEach(File::deleteOnExit); - - Path pyprojectPath = Paths.get(output.getAbsolutePath(), "pyproject.toml"); - TestUtils.assertFileExists(pyprojectPath); - - // In non-poetry1 mode, license should use object format: { text = "BSD-3-Clause" } - TestUtils.assertFileContains(pyprojectPath, "license = { text = \"BSD-3-Clause\" }"); - - // Verify it does NOT use the legacy string format - TestUtils.assertFileNotContains(pyprojectPath, "license = \"BSD-3-Clause\""); - } } diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/.openapi-generator/FILES b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/.openapi-generator/FILES index a7c64d3f55f4..4c321309a511 100644 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/.openapi-generator/FILES +++ b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/.openapi-generator/FILES @@ -50,9 +50,5 @@ openapi_client/models/test_query_style_form_explode_true_array_string_query_obje openapi_client/py.typed openapi_client/rest.py pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt test/__init__.py tox.ini diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/README.md b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/README.md index f60e13fd5284..4a6c2c43aa5f 100644 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/README.md +++ b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/README.md @@ -8,35 +8,21 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.19.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements. + +## Requirements Python 3.9+ ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh 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: -```python -import openapi_client -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import openapi_client ``` @@ -160,4 +146,3 @@ Authentication schemes defined for the API: team@openapitools.org - diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/docs/TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.md b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/docs/TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.md deleted file mode 100644 index 4c8f1af90f6f..000000000000 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/docs/TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.md +++ /dev/null @@ -1,29 +0,0 @@ -# TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**values** | **List[int]** | | [optional] - -## Example - -```python -from openapi_client.models.test_query_style_form_explode_true_array_integer_query_object_parameter import TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter - -# TODO update the JSON string below -json = "{}" -# create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a JSON string -test_query_style_form_explode_true_array_integer_query_object_parameter_instance = TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.from_json(json) -# print the JSON string representation of the object -print TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.to_json() - -# convert the object into a dict -test_query_style_form_explode_true_array_integer_query_object_parameter_dict = test_query_style_form_explode_true_array_integer_query_object_parameter_instance.to_dict() -# create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a dict -test_query_style_form_explode_true_array_integer_query_object_parameter_form_dict = test_query_style_form_explode_true_array_integer_query_object_parameter.from_dict(test_query_style_form_explode_true_array_integer_query_object_parameter_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/__init__.py b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/__init__.py index e390db819e87..7222b8338fc1 100644 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/__init__.py +++ b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ @@ -14,7 +12,6 @@ Do not edit the class manually. """ # noqa: E501 - __version__ = "1.0.0" # Define package exports diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/__init__.py b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/__init__.py index 10474719c5a5..5c7b2ae8bfe4 100644 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/__init__.py +++ b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ Echo Server API diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/test_query_style_form_explode_true_array_integer_query_object_parameter.py b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/test_query_style_form_explode_true_array_integer_query_object_parameter.py deleted file mode 100644 index 52e50d5a5612..000000000000 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/openapi_client/models/test_query_style_form_explode_true_array_integer_query_object_parameter.py +++ /dev/null @@ -1,93 +0,0 @@ -# coding: utf-8 - -""" - Echo Server API - - Echo Server API - - The version of the OpenAPI document: 0.1.0 - Contact: team@openapitools.org - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, StrictInt -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter(BaseModel): - """ - TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter - """ # noqa: E501 - values: Optional[List[StrictInt]] = None - __properties: ClassVar[List[str]] = ["values"] - - model_config = { - "populate_by_name": True, - "validate_assignment": True, - "protected_namespaces": (), - } - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - # raise errors for additional fields in the input - for _key in obj.keys(): - if _key not in cls.__properties: - raise ValueError("Error due to additional fields (not defined in TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter) in the input: " + _key) - - _obj = cls.model_validate({ - "values": obj.get("values") - }) - return _obj - - diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/pyproject.toml b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/pyproject.toml index 84c2c75e9f88..029c5a704357 100644 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/pyproject.toml +++ b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/pyproject.toml @@ -1,15 +1,18 @@ +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + [project] name = "openapi_client" version = "1.0.0" description = "Echo Server API" authors = [ - {name = "OpenAPI Generator Community",email = "team@openapitools.org"}, + {name = "OpenAPI Generator Community", email = "team@openapitools.org"}, ] license = { text = "Apache 2.0" } readme = "README.md" keywords = ["OpenAPI", "OpenAPI-Generator", "Echo Server API"] requires-python = ">=3.9" - dependencies = [ "urllib3 (>=2.1.0,<3.0.0)", "python-dateutil (>=2.8.2)", @@ -20,25 +23,19 @@ dependencies = [ [project.urls] Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -[tool.poetry] -requires-poetry = ">=2.0" - [tool.poetry.group.dev.dependencies] pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "openapi_client", diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/requirements.txt b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/requirements.txt deleted file mode 100644 index 6cbb2b98b163..000000000000 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -urllib3 >= 2.1.0, < 3.0.0 -python_dateutil >= 2.8.2 -pydantic >= 2 -typing-extensions >= 4.7.1 diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/setup.py b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/setup.py deleted file mode 100644 index 5527d5073fe1..000000000000 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/setup.py +++ /dev/null @@ -1,51 +0,0 @@ -# coding: utf-8 - -""" - Echo Server API - - Echo Server API - - The version of the OpenAPI document: 0.1.0 - Contact: team@openapitools.org - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "openapi-client" -VERSION = "1.0.0" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ - "urllib3 >= 2.1.0, < 3.0.0", - "python-dateutil >= 2.8.2", - "pydantic >= 2", - "typing-extensions >= 4.7.1", -] - -setup( - name=NAME, - version=VERSION, - description="Echo Server API", - author="OpenAPI Generator community", - author_email="team@openapitools.org", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "Echo Server API"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="Apache 2.0", - long_description_content_type='text/markdown', - long_description="""\ - Echo Server API - """, # noqa: E501 - package_data={"openapi_client": ["py.typed"]}, -) \ No newline at end of file diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test-requirements.txt b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test-requirements.txt deleted file mode 100644 index e98555c11c8a..000000000000 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 diff --git a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test/test_query_api.py b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test/test_query_api.py index e2e6c2dac461..88d1a7e195d1 100644 --- a/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test/test_query_api.py +++ b/samples/client/echo_api/python-disallowAdditionalPropertiesIfNotPresent/test/test_query_api.py @@ -97,6 +97,13 @@ def test_test_query_style_form_explode_true_object_all_of(self) -> None: """ pass + def test_test_query_style_json_serialization_object(self) -> None: + """Test case for test_query_style_json_serialization_object + + Test query parameter(s) + """ + pass + if __name__ == '__main__': unittest.main() diff --git a/samples/client/echo_api/python/.openapi-generator/FILES b/samples/client/echo_api/python/.openapi-generator/FILES index a7c64d3f55f4..4c321309a511 100644 --- a/samples/client/echo_api/python/.openapi-generator/FILES +++ b/samples/client/echo_api/python/.openapi-generator/FILES @@ -50,9 +50,5 @@ openapi_client/models/test_query_style_form_explode_true_array_string_query_obje openapi_client/py.typed openapi_client/rest.py pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt test/__init__.py tox.ini diff --git a/samples/client/echo_api/python/README.md b/samples/client/echo_api/python/README.md index f60e13fd5284..4a6c2c43aa5f 100644 --- a/samples/client/echo_api/python/README.md +++ b/samples/client/echo_api/python/README.md @@ -8,35 +8,21 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.19.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements. + +## Requirements Python 3.9+ ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh 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: -```python -import openapi_client -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import openapi_client ``` @@ -160,4 +146,3 @@ Authentication schemes defined for the API: team@openapitools.org - diff --git a/samples/client/echo_api/python/docs/TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.md b/samples/client/echo_api/python/docs/TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.md deleted file mode 100644 index 4c8f1af90f6f..000000000000 --- a/samples/client/echo_api/python/docs/TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.md +++ /dev/null @@ -1,29 +0,0 @@ -# TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- -**values** | **List[int]** | | [optional] - -## Example - -```python -from openapi_client.models.test_query_style_form_explode_true_array_integer_query_object_parameter import TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter - -# TODO update the JSON string below -json = "{}" -# create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a JSON string -test_query_style_form_explode_true_array_integer_query_object_parameter_instance = TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.from_json(json) -# print the JSON string representation of the object -print TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter.to_json() - -# convert the object into a dict -test_query_style_form_explode_true_array_integer_query_object_parameter_dict = test_query_style_form_explode_true_array_integer_query_object_parameter_instance.to_dict() -# create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a dict -test_query_style_form_explode_true_array_integer_query_object_parameter_form_dict = test_query_style_form_explode_true_array_integer_query_object_parameter.from_dict(test_query_style_form_explode_true_array_integer_query_object_parameter_dict) -``` -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/client/echo_api/python/openapi_client/__init__.py b/samples/client/echo_api/python/openapi_client/__init__.py index e390db819e87..7222b8338fc1 100644 --- a/samples/client/echo_api/python/openapi_client/__init__.py +++ b/samples/client/echo_api/python/openapi_client/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ @@ -14,7 +12,6 @@ Do not edit the class manually. """ # noqa: E501 - __version__ = "1.0.0" # Define package exports diff --git a/samples/client/echo_api/python/openapi_client/models/__init__.py b/samples/client/echo_api/python/openapi_client/models/__init__.py index 10474719c5a5..5c7b2ae8bfe4 100644 --- a/samples/client/echo_api/python/openapi_client/models/__init__.py +++ b/samples/client/echo_api/python/openapi_client/models/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ Echo Server API diff --git a/samples/client/echo_api/python/openapi_client/models/test_query_style_form_explode_true_array_integer_query_object_parameter.py b/samples/client/echo_api/python/openapi_client/models/test_query_style_form_explode_true_array_integer_query_object_parameter.py deleted file mode 100644 index 93c6f0c1216d..000000000000 --- a/samples/client/echo_api/python/openapi_client/models/test_query_style_form_explode_true_array_integer_query_object_parameter.py +++ /dev/null @@ -1,88 +0,0 @@ -# coding: utf-8 - -""" - Echo Server API - - Echo Server API - - The version of the OpenAPI document: 0.1.0 - Contact: team@openapitools.org - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import pprint -import re # noqa: F401 -import json - -from pydantic import BaseModel, StrictInt -from typing import Any, ClassVar, Dict, List, Optional -from typing import Optional, Set -from typing_extensions import Self - -class TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter(BaseModel): - """ - TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter - """ # noqa: E501 - values: Optional[List[StrictInt]] = None - __properties: ClassVar[List[str]] = ["values"] - - model_config = { - "populate_by_name": True, - "validate_assignment": True, - "protected_namespaces": (), - } - - - def to_str(self) -> str: - """Returns the string representation of the model using alias""" - return pprint.pformat(self.model_dump(by_alias=True)) - - def to_json(self) -> str: - """Returns the JSON representation of the model using alias""" - # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead - return json.dumps(self.to_dict()) - - @classmethod - def from_json(cls, json_str: str) -> Optional[Self]: - """Create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a JSON string""" - return cls.from_dict(json.loads(json_str)) - - def to_dict(self) -> Dict[str, Any]: - """Return the dictionary representation of the model using alias. - - This has the following differences from calling pydantic's - `self.model_dump(by_alias=True)`: - - * `None` is only added to the output dict for nullable fields that - were set at model initialization. Other fields with value `None` - are ignored. - """ - excluded_fields: Set[str] = set([ - ]) - - _dict = self.model_dump( - by_alias=True, - exclude=excluded_fields, - exclude_none=True, - ) - return _dict - - @classmethod - def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: - """Create an instance of TestQueryStyleFormExplodeTrueArrayIntegerQueryObjectParameter from a dict""" - if obj is None: - return None - - if not isinstance(obj, dict): - return cls.model_validate(obj) - - _obj = cls.model_validate({ - "values": obj.get("values") - }) - return _obj - - diff --git a/samples/client/echo_api/python/poetry.lock b/samples/client/echo_api/python/poetry.lock deleted file mode 100644 index 8948a229b704..000000000000 --- a/samples/client/echo_api/python/poetry.lock +++ /dev/null @@ -1,682 +0,0 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. - -[[package]] -name = "annotated-types" -version = "0.7.0" -description = "Reusable constraint types to use with typing.Annotated" -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, - {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, -] - -[[package]] -name = "cachetools" -version = "5.5.0" -description = "Extensible memoizing collections and decorators" -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"}, - {file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"}, -] - -[[package]] -name = "chardet" -version = "5.2.0" -description = "Universal encoding detector for Python 3" -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "chardet-5.2.0-py3-none-any.whl", hash = "sha256:e1cf59446890a00105fe7b7912492ea04b6e6f06d4b742b2c788469e34c82970"}, - {file = "chardet-5.2.0.tar.gz", hash = "sha256:1b3b6ff479a8c414bc3fa2c0852995695c4a026dcd6d0633b2dd092ca39c1cf7"}, -] - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["dev"] -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "coverage" -version = "7.6.1" -description = "Code coverage measurement for Python" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, - {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, - {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, - {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, - {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, - {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, - {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, - {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, - {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, - {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, - {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, - {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, - {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, - {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, - {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, - {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, - {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, - {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, - {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, - {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, - {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, - {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, - {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, - {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, - {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, - {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, - {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, - {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, - {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, - {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, - {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, - {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, - {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, - {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, - {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, - {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, - {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, - {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, -] - -[package.dependencies] -tomli = {version = "*", optional = true, markers = "python_full_version <= \"3.11.0a6\" and extra == \"toml\""} - -[package.extras] -toml = ["tomli ; python_full_version <= \"3.11.0a6\""] - -[[package]] -name = "distlib" -version = "0.3.9" -description = "Distribution utilities" -optional = false -python-versions = "*" -groups = ["dev"] -files = [ - {file = "distlib-0.3.9-py2.py3-none-any.whl", hash = "sha256:47f8c22fd27c27e25a65601af709b38e4f0a45ea4fc2e710f65755fa8caaaf87"}, - {file = "distlib-0.3.9.tar.gz", hash = "sha256:a60f20dea646b8a33f3e7772f74dc0b2d0772d2837ee1342a00645c81edf9403"}, -] - -[[package]] -name = "exceptiongroup" -version = "1.2.2" -description = "Backport of PEP 654 (exception groups)" -optional = false -python-versions = ">=3.7" -groups = ["dev"] -markers = "python_version < \"3.11\"" -files = [ - {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, - {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, -] - -[package.extras] -test = ["pytest (>=6)"] - -[[package]] -name = "filelock" -version = "3.16.1" -description = "A platform independent file lock." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"}, - {file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4.1)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.6.1)", "diff-cover (>=9.2)", "pytest (>=8.3.3)", "pytest-asyncio (>=0.24)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "pytest-timeout (>=2.3.1)", "virtualenv (>=20.26.4)"] -typing = ["typing-extensions (>=4.12.2) ; python_version < \"3.11\""] - -[[package]] -name = "flake8" -version = "5.0.4" -description = "the modular source code checker: pep8 pyflakes and co" -optional = false -python-versions = ">=3.6.1" -groups = ["dev"] -files = [ - {file = "flake8-5.0.4-py2.py3-none-any.whl", hash = "sha256:7a1cf6b73744f5806ab95e526f6f0d8c01c66d7bbe349562d22dfca20610b248"}, - {file = "flake8-5.0.4.tar.gz", hash = "sha256:6fbe320aad8d6b95cec8b8e47bc933004678dc63095be98528b7bdd2a9f510db"}, -] - -[package.dependencies] -mccabe = ">=0.7.0,<0.8.0" -pycodestyle = ">=2.9.0,<2.10.0" -pyflakes = ">=2.5.0,<2.6.0" - -[[package]] -name = "iniconfig" -version = "2.0.0" -description = "brain-dead simple config-ini parsing" -optional = false -python-versions = ">=3.7" -groups = ["dev"] -files = [ - {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, - {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, -] - -[[package]] -name = "mccabe" -version = "0.7.0" -description = "McCabe checker, plugin for flake8" -optional = false -python-versions = ">=3.6" -groups = ["dev"] -files = [ - {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, - {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, -] - -[[package]] -name = "mypy" -version = "1.13.0" -description = "Optional static typing for Python" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, - {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, - {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, - {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, - {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, - {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, - {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, - {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, - {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, - {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, - {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, - {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, - {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, - {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, - {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, - {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, - {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, - {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, - {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, - {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, - {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, - {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, - {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, - {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, - {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, - {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, - {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, - {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, - {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, - {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, - {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, - {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, -] - -[package.dependencies] -mypy-extensions = ">=1.0.0" -tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.6.0" - -[package.extras] -dmypy = ["psutil (>=4.0)"] -faster-cache = ["orjson"] -install-types = ["pip"] -mypyc = ["setuptools (>=50)"] -reports = ["lxml"] - -[[package]] -name = "mypy-extensions" -version = "1.0.0" -description = "Type system extensions for programs checked with the mypy type checker." -optional = false -python-versions = ">=3.5" -groups = ["dev"] -files = [ - {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, - {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, -] - -[[package]] -name = "packaging" -version = "24.1" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, - {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, -] - -[[package]] -name = "platformdirs" -version = "4.3.6" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, - {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, -] - -[package.extras] -docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] -type = ["mypy (>=1.11.2)"] - -[[package]] -name = "pluggy" -version = "1.5.0" -description = "plugin and hook calling mechanisms for python" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, - {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, -] - -[package.extras] -dev = ["pre-commit", "tox"] -testing = ["pytest", "pytest-benchmark"] - -[[package]] -name = "pycodestyle" -version = "2.9.1" -description = "Python style guide checker" -optional = false -python-versions = ">=3.6" -groups = ["dev"] -files = [ - {file = "pycodestyle-2.9.1-py2.py3-none-any.whl", hash = "sha256:d1735fc58b418fd7c5f658d28d943854f8a849b01a5d0a1e6f3f3fdd0166804b"}, - {file = "pycodestyle-2.9.1.tar.gz", hash = "sha256:2c9607871d58c76354b697b42f5d57e1ada7d261c261efac224b664affdc5785"}, -] - -[[package]] -name = "pydantic" -version = "2.9.2" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "pydantic-2.9.2-py3-none-any.whl", hash = "sha256:f048cec7b26778210e28a0459867920654d48e5e62db0958433636cde4254f12"}, - {file = "pydantic-2.9.2.tar.gz", hash = "sha256:d155cef71265d1e9807ed1c32b4c8deec042a44a50a4188b25ac67ecd81a9c0f"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.23.4" -typing-extensions = [ - {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, - {version = ">=4.6.1", markers = "python_version < \"3.13\""}, -] - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata ; python_version >= \"3.9\" and sys_platform == \"win32\""] - -[[package]] -name = "pydantic-core" -version = "2.23.4" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.8" -groups = ["main"] -files = [ - {file = "pydantic_core-2.23.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:b10bd51f823d891193d4717448fab065733958bdb6a6b351967bd349d48d5c9b"}, - {file = "pydantic_core-2.23.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4fc714bdbfb534f94034efaa6eadd74e5b93c8fa6315565a222f7b6f42ca1166"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63e46b3169866bd62849936de036f901a9356e36376079b05efa83caeaa02ceb"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed1a53de42fbe34853ba90513cea21673481cd81ed1be739f7f2efb931b24916"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cfdd16ab5e59fc31b5e906d1a3f666571abc367598e3e02c83403acabc092e07"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255a8ef062cbf6674450e668482456abac99a5583bbafb73f9ad469540a3a232"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a7cd62e831afe623fbb7aabbb4fe583212115b3ef38a9f6b71869ba644624a2"}, - {file = "pydantic_core-2.23.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f09e2ff1f17c2b51f2bc76d1cc33da96298f0a036a137f5440ab3ec5360b624f"}, - {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e38e63e6f3d1cec5a27e0afe90a085af8b6806ee208b33030e65b6516353f1a3"}, - {file = "pydantic_core-2.23.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0dbd8dbed2085ed23b5c04afa29d8fd2771674223135dc9bc937f3c09284d071"}, - {file = "pydantic_core-2.23.4-cp310-none-win32.whl", hash = "sha256:6531b7ca5f951d663c339002e91aaebda765ec7d61b7d1e3991051906ddde119"}, - {file = "pydantic_core-2.23.4-cp310-none-win_amd64.whl", hash = "sha256:7c9129eb40958b3d4500fa2467e6a83356b3b61bfff1b414c7361d9220f9ae8f"}, - {file = "pydantic_core-2.23.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:77733e3892bb0a7fa797826361ce8a9184d25c8dffaec60b7ffe928153680ba8"}, - {file = "pydantic_core-2.23.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b84d168f6c48fabd1f2027a3d1bdfe62f92cade1fb273a5d68e621da0e44e6d"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df49e7a0861a8c36d089c1ed57d308623d60416dab2647a4a17fe050ba85de0e"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ff02b6d461a6de369f07ec15e465a88895f3223eb75073ffea56b84d9331f607"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:996a38a83508c54c78a5f41456b0103c30508fed9abcad0a59b876d7398f25fd"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d97683ddee4723ae8c95d1eddac7c192e8c552da0c73a925a89fa8649bf13eea"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:216f9b2d7713eb98cb83c80b9c794de1f6b7e3145eef40400c62e86cee5f4e1e"}, - {file = "pydantic_core-2.23.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6f783e0ec4803c787bcea93e13e9932edab72068f68ecffdf86a99fd5918878b"}, - {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d0776dea117cf5272382634bd2a5c1b6eb16767c223c6a5317cd3e2a757c61a0"}, - {file = "pydantic_core-2.23.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d5f7a395a8cf1621939692dba2a6b6a830efa6b3cee787d82c7de1ad2930de64"}, - {file = "pydantic_core-2.23.4-cp311-none-win32.whl", hash = "sha256:74b9127ffea03643e998e0c5ad9bd3811d3dac8c676e47db17b0ee7c3c3bf35f"}, - {file = "pydantic_core-2.23.4-cp311-none-win_amd64.whl", hash = "sha256:98d134c954828488b153d88ba1f34e14259284f256180ce659e8d83e9c05eaa3"}, - {file = "pydantic_core-2.23.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f3e0da4ebaef65158d4dfd7d3678aad692f7666877df0002b8a522cdf088f231"}, - {file = "pydantic_core-2.23.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f69a8e0b033b747bb3e36a44e7732f0c99f7edd5cea723d45bc0d6e95377ffee"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:723314c1d51722ab28bfcd5240d858512ffd3116449c557a1336cbe3919beb87"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb2802e667b7051a1bebbfe93684841cc9351004e2badbd6411bf357ab8d5ac8"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18ca8148bebe1b0a382a27a8ee60350091a6ddaf475fa05ef50dc35b5df6327"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33e3d65a85a2a4a0dc3b092b938a4062b1a05f3a9abde65ea93b233bca0e03f2"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:128585782e5bfa515c590ccee4b727fb76925dd04a98864182b22e89a4e6ed36"}, - {file = "pydantic_core-2.23.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:68665f4c17edcceecc112dfed5dbe6f92261fb9d6054b47d01bf6371a6196126"}, - {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:20152074317d9bed6b7a95ade3b7d6054845d70584216160860425f4fbd5ee9e"}, - {file = "pydantic_core-2.23.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9261d3ce84fa1d38ed649c3638feefeae23d32ba9182963e465d58d62203bd24"}, - {file = "pydantic_core-2.23.4-cp312-none-win32.whl", hash = "sha256:4ba762ed58e8d68657fc1281e9bb72e1c3e79cc5d464be146e260c541ec12d84"}, - {file = "pydantic_core-2.23.4-cp312-none-win_amd64.whl", hash = "sha256:97df63000f4fea395b2824da80e169731088656d1818a11b95f3b173747b6cd9"}, - {file = "pydantic_core-2.23.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7530e201d10d7d14abce4fb54cfe5b94a0aefc87da539d0346a484ead376c3cc"}, - {file = "pydantic_core-2.23.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df933278128ea1cd77772673c73954e53a1c95a4fdf41eef97c2b779271bd0bd"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cb3da3fd1b6a5d0279a01877713dbda118a2a4fc6f0d821a57da2e464793f05"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c6dcb030aefb668a2b7009c85b27f90e51e6a3b4d5c9bc4c57631292015b0d"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:696dd8d674d6ce621ab9d45b205df149399e4bb9aa34102c970b721554828510"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2971bb5ffe72cc0f555c13e19b23c85b654dd2a8f7ab493c262071377bfce9f6"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8394d940e5d400d04cad4f75c0598665cbb81aecefaca82ca85bd28264af7f9b"}, - {file = "pydantic_core-2.23.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0dff76e0602ca7d4cdaacc1ac4c005e0ce0dcfe095d5b5259163a80d3a10d327"}, - {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7d32706badfe136888bdea71c0def994644e09fff0bfe47441deaed8e96fdbc6"}, - {file = "pydantic_core-2.23.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ed541d70698978a20eb63d8c5d72f2cc6d7079d9d90f6b50bad07826f1320f5f"}, - {file = "pydantic_core-2.23.4-cp313-none-win32.whl", hash = "sha256:3d5639516376dce1940ea36edf408c554475369f5da2abd45d44621cb616f769"}, - {file = "pydantic_core-2.23.4-cp313-none-win_amd64.whl", hash = "sha256:5a1504ad17ba4210df3a045132a7baeeba5a200e930f57512ee02909fc5c4cb5"}, - {file = "pydantic_core-2.23.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d4488a93b071c04dc20f5cecc3631fc78b9789dd72483ba15d423b5b3689b555"}, - {file = "pydantic_core-2.23.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:81965a16b675b35e1d09dd14df53f190f9129c0202356ed44ab2728b1c905658"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ffa2ebd4c8530079140dd2d7f794a9d9a73cbb8e9d59ffe24c63436efa8f271"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61817945f2fe7d166e75fbfb28004034b48e44878177fc54d81688e7b85a3665"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:29d2c342c4bc01b88402d60189f3df065fb0dda3654744d5a165a5288a657368"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e11661ce0fd30a6790e8bcdf263b9ec5988e95e63cf901972107efc49218b13"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d18368b137c6295db49ce7218b1a9ba15c5bc254c96d7c9f9e924a9bc7825ad"}, - {file = "pydantic_core-2.23.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ec4e55f79b1c4ffb2eecd8a0cfba9955a2588497d96851f4c8f99aa4a1d39b12"}, - {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:374a5e5049eda9e0a44c696c7ade3ff355f06b1fe0bb945ea3cac2bc336478a2"}, - {file = "pydantic_core-2.23.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5c364564d17da23db1106787675fc7af45f2f7b58b4173bfdd105564e132e6fb"}, - {file = "pydantic_core-2.23.4-cp38-none-win32.whl", hash = "sha256:d7a80d21d613eec45e3d41eb22f8f94ddc758a6c4720842dc74c0581f54993d6"}, - {file = "pydantic_core-2.23.4-cp38-none-win_amd64.whl", hash = "sha256:5f5ff8d839f4566a474a969508fe1c5e59c31c80d9e140566f9a37bba7b8d556"}, - {file = "pydantic_core-2.23.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a4fa4fc04dff799089689f4fd502ce7d59de529fc2f40a2c8836886c03e0175a"}, - {file = "pydantic_core-2.23.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0a7df63886be5e270da67e0966cf4afbae86069501d35c8c1b3b6c168f42cb36"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dcedcd19a557e182628afa1d553c3895a9f825b936415d0dbd3cd0bbcfd29b4b"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f54b118ce5de9ac21c363d9b3caa6c800341e8c47a508787e5868c6b79c9323"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86d2f57d3e1379a9525c5ab067b27dbb8a0642fb5d454e17a9ac434f9ce523e3"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de6d1d1b9e5101508cb37ab0d972357cac5235f5c6533d1071964c47139257df"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1278e0d324f6908e872730c9102b0112477a7f7cf88b308e4fc36ce1bdb6d58c"}, - {file = "pydantic_core-2.23.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a6b5099eeec78827553827f4c6b8615978bb4b6a88e5d9b93eddf8bb6790f55"}, - {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e55541f756f9b3ee346b840103f32779c695a19826a4c442b7954550a0972040"}, - {file = "pydantic_core-2.23.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a5c7ba8ffb6d6f8f2ab08743be203654bb1aaa8c9dcb09f82ddd34eadb695605"}, - {file = "pydantic_core-2.23.4-cp39-none-win32.whl", hash = "sha256:37b0fe330e4a58d3c58b24d91d1eb102aeec675a3db4c292ec3928ecd892a9a6"}, - {file = "pydantic_core-2.23.4-cp39-none-win_amd64.whl", hash = "sha256:1498bec4c05c9c787bde9125cfdcc63a41004ff167f495063191b863399b1a29"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f455ee30a9d61d3e1a15abd5068827773d6e4dc513e795f380cdd59932c782d5"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1e90d2e3bd2c3863d48525d297cd143fe541be8bbf6f579504b9712cb6b643ec"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e203fdf807ac7e12ab59ca2bfcabb38c7cf0b33c41efeb00f8e5da1d86af480"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e08277a400de01bc72436a0ccd02bdf596631411f592ad985dcee21445bd0068"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f220b0eea5965dec25480b6333c788fb72ce5f9129e8759ef876a1d805d00801"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d06b0c8da4f16d1d1e352134427cb194a0a6e19ad5db9161bf32b2113409e728"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:ba1a0996f6c2773bd83e63f18914c1de3c9dd26d55f4ac302a7efe93fb8e7433"}, - {file = "pydantic_core-2.23.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:9a5bce9d23aac8f0cf0836ecfc033896aa8443b501c58d0602dbfd5bd5b37753"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:78ddaaa81421a29574a682b3179d4cf9e6d405a09b99d93ddcf7e5239c742e21"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:883a91b5dd7d26492ff2f04f40fbb652de40fcc0afe07e8129e8ae779c2110eb"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88ad334a15b32a791ea935af224b9de1bf99bcd62fabf745d5f3442199d86d59"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:233710f069d251feb12a56da21e14cca67994eab08362207785cf8c598e74577"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:19442362866a753485ba5e4be408964644dd6a09123d9416c54cd49171f50744"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:624e278a7d29b6445e4e813af92af37820fafb6dcc55c012c834f9e26f9aaaef"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f5ef8f42bec47f21d07668a043f077d507e5bf4e668d5c6dfe6aaba89de1a5b8"}, - {file = "pydantic_core-2.23.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:aea443fffa9fbe3af1a9ba721a87f926fe548d32cab71d188a6ede77d0ff244e"}, - {file = "pydantic_core-2.23.4.tar.gz", hash = "sha256:2584f7cf844ac4d970fba483a717dbe10c1c1c96a969bf65d61ffe94df1b2863"}, -] - -[package.dependencies] -typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" - -[[package]] -name = "pyflakes" -version = "2.5.0" -description = "passive checker of Python programs" -optional = false -python-versions = ">=3.6" -groups = ["dev"] -files = [ - {file = "pyflakes-2.5.0-py2.py3-none-any.whl", hash = "sha256:4579f67d887f804e67edb544428f264b7b24f435b263c4614f384135cea553d2"}, - {file = "pyflakes-2.5.0.tar.gz", hash = "sha256:491feb020dca48ccc562a8c0cbe8df07ee13078df59813b83959cbdada312ea3"}, -] - -[[package]] -name = "pyproject-api" -version = "1.8.0" -description = "API to interact with the python pyproject.toml based projects" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pyproject_api-1.8.0-py3-none-any.whl", hash = "sha256:3d7d347a047afe796fd5d1885b1e391ba29be7169bd2f102fcd378f04273d228"}, - {file = "pyproject_api-1.8.0.tar.gz", hash = "sha256:77b8049f2feb5d33eefcc21b57f1e279636277a8ac8ad6b5871037b243778496"}, -] - -[package.dependencies] -packaging = ">=24.1" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} - -[package.extras] -docs = ["furo (>=2024.8.6)", "sphinx-autodoc-typehints (>=2.4.1)"] -testing = ["covdefaults (>=2.3)", "pytest (>=8.3.3)", "pytest-cov (>=5)", "pytest-mock (>=3.14)", "setuptools (>=75.1)"] - -[[package]] -name = "pytest" -version = "8.3.3" -description = "pytest: simple powerful testing with Python" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, - {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "sys_platform == \"win32\""} -exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -iniconfig = "*" -packaging = "*" -pluggy = ">=1.5,<2" -tomli = {version = ">=1", markers = "python_version < \"3.11\""} - -[package.extras] -dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] - -[[package]] -name = "pytest-cov" -version = "5.0.0" -description = "Pytest plugin for measuring coverage." -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, - {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, -] - -[package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} -pytest = ">=4.6" - -[package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -groups = ["main"] -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -groups = ["main"] -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "tomli" -version = "2.0.2" -description = "A lil' TOML parser" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -markers = "python_full_version <= \"3.11.0a6\"" -files = [ - {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, - {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, -] - -[[package]] -name = "tox" -version = "4.23.2" -description = "tox is a generic virtualenv management and test command line tool" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "tox-4.23.2-py3-none-any.whl", hash = "sha256:452bc32bb031f2282881a2118923176445bac783ab97c874b8770ab4c3b76c38"}, - {file = "tox-4.23.2.tar.gz", hash = "sha256:86075e00e555df6e82e74cfc333917f91ecb47ffbc868dcafbd2672e332f4a2c"}, -] - -[package.dependencies] -cachetools = ">=5.5" -chardet = ">=5.2" -colorama = ">=0.4.6" -filelock = ">=3.16.1" -packaging = ">=24.1" -platformdirs = ">=4.3.6" -pluggy = ">=1.5" -pyproject-api = ">=1.8" -tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} -typing-extensions = {version = ">=4.12.2", markers = "python_version < \"3.11\""} -virtualenv = ">=20.26.6" - -[package.extras] -test = ["devpi-process (>=1.0.2)", "pytest (>=8.3.3)", "pytest-mock (>=3.14)"] - -[[package]] -name = "types-python-dateutil" -version = "2.9.0.20241003" -description = "Typing stubs for python-dateutil" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "types-python-dateutil-2.9.0.20241003.tar.gz", hash = "sha256:58cb85449b2a56d6684e41aeefb4c4280631246a0da1a719bdbe6f3fb0317446"}, - {file = "types_python_dateutil-2.9.0.20241003-py3-none-any.whl", hash = "sha256:250e1d8e80e7bbc3a6c99b907762711d1a1cdd00e978ad39cb5940f6f0a87f3d"}, -] - -[[package]] -name = "typing-extensions" -version = "4.12.2" -description = "Backported and Experimental Type Hints for Python 3.8+" -optional = false -python-versions = ">=3.8" -groups = ["main", "dev"] -files = [ - {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, - {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, -] - -[[package]] -name = "urllib3" -version = "2.6.0" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.9" -groups = ["main"] -files = [ - {file = "urllib3-2.6.0-py3-none-any.whl", hash = "sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f"}, - {file = "urllib3-2.6.0.tar.gz", hash = "sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1"}, -] - -[package.extras] -brotli = ["brotli (>=1.2.0) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=1.2.0.0) ; platform_python_implementation != \"CPython\""] -h2 = ["h2 (>=4,<5)"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] - -[[package]] -name = "virtualenv" -version = "20.27.1" -description = "Virtual Python Environment builder" -optional = false -python-versions = ">=3.8" -groups = ["dev"] -files = [ - {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, - {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, -] - -[package.dependencies] -distlib = ">=0.3.7,<1" -filelock = ">=3.12.2,<4" -platformdirs = ">=3.9.1,<5" - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.2,!=7.3)", "sphinx-argparse (>=0.4)", "sphinxcontrib-towncrier (>=0.2.1a0)", "towncrier (>=23.6)"] -test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7)", "packaging (>=23.1)", "pytest (>=7.4)", "pytest-env (>=0.8.2)", "pytest-freezer (>=0.4.8) ; platform_python_implementation == \"PyPy\" or platform_python_implementation == \"CPython\" and sys_platform == \"win32\" and python_version >= \"3.13\"", "pytest-mock (>=3.11.1)", "pytest-randomly (>=3.12)", "pytest-timeout (>=2.1)", "setuptools (>=68)", "time-machine (>=2.10) ; platform_python_implementation == \"CPython\""] - -[metadata] -lock-version = "2.1" -python-versions = "^3.8" -content-hash = "57d3b5d05d4e2134386b965cb2b75cdb799da017a82c8b162a1d03f7a31a3815" diff --git a/samples/client/echo_api/python/pyproject.toml b/samples/client/echo_api/python/pyproject.toml index 84c2c75e9f88..029c5a704357 100644 --- a/samples/client/echo_api/python/pyproject.toml +++ b/samples/client/echo_api/python/pyproject.toml @@ -1,15 +1,18 @@ +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + [project] name = "openapi_client" version = "1.0.0" description = "Echo Server API" authors = [ - {name = "OpenAPI Generator Community",email = "team@openapitools.org"}, + {name = "OpenAPI Generator Community", email = "team@openapitools.org"}, ] license = { text = "Apache 2.0" } readme = "README.md" keywords = ["OpenAPI", "OpenAPI-Generator", "Echo Server API"] requires-python = ">=3.9" - dependencies = [ "urllib3 (>=2.1.0,<3.0.0)", "python-dateutil (>=2.8.2)", @@ -20,25 +23,19 @@ dependencies = [ [project.urls] Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -[tool.poetry] -requires-poetry = ">=2.0" - [tool.poetry.group.dev.dependencies] pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "openapi_client", diff --git a/samples/client/echo_api/python/requirements.txt b/samples/client/echo_api/python/requirements.txt deleted file mode 100644 index 6cbb2b98b163..000000000000 --- a/samples/client/echo_api/python/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -urllib3 >= 2.1.0, < 3.0.0 -python_dateutil >= 2.8.2 -pydantic >= 2 -typing-extensions >= 4.7.1 diff --git a/samples/client/echo_api/python/setup.cfg b/samples/client/echo_api/python/setup.cfg deleted file mode 100644 index 11433ee875ab..000000000000 --- a/samples/client/echo_api/python/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[flake8] -max-line-length=99 diff --git a/samples/client/echo_api/python/setup.py b/samples/client/echo_api/python/setup.py deleted file mode 100644 index 5527d5073fe1..000000000000 --- a/samples/client/echo_api/python/setup.py +++ /dev/null @@ -1,51 +0,0 @@ -# coding: utf-8 - -""" - Echo Server API - - Echo Server API - - The version of the OpenAPI document: 0.1.0 - Contact: team@openapitools.org - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "openapi-client" -VERSION = "1.0.0" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ - "urllib3 >= 2.1.0, < 3.0.0", - "python-dateutil >= 2.8.2", - "pydantic >= 2", - "typing-extensions >= 4.7.1", -] - -setup( - name=NAME, - version=VERSION, - description="Echo Server API", - author="OpenAPI Generator community", - author_email="team@openapitools.org", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "Echo Server API"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="Apache 2.0", - long_description_content_type='text/markdown', - long_description="""\ - Echo Server API - """, # noqa: E501 - package_data={"openapi_client": ["py.typed"]}, -) \ No newline at end of file diff --git a/samples/client/echo_api/python/test-requirements.txt b/samples/client/echo_api/python/test-requirements.txt deleted file mode 100644 index e98555c11c8a..000000000000 --- a/samples/client/echo_api/python/test-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 diff --git a/samples/client/echo_api/python/test/test_query_api.py b/samples/client/echo_api/python/test/test_query_api.py index e2e6c2dac461..88d1a7e195d1 100644 --- a/samples/client/echo_api/python/test/test_query_api.py +++ b/samples/client/echo_api/python/test/test_query_api.py @@ -97,6 +97,13 @@ def test_test_query_style_form_explode_true_object_all_of(self) -> None: """ pass + def test_test_query_style_json_serialization_object(self) -> None: + """Test case for test_query_style_json_serialization_object + + Test query parameter(s) + """ + pass + if __name__ == '__main__': unittest.main() diff --git a/samples/client/echo_api/python/testfiles/test.gif b/samples/client/echo_api/python/testfiles/test.gif deleted file mode 100644 index 9884f476b9c7..000000000000 Binary files a/samples/client/echo_api/python/testfiles/test.gif and /dev/null differ diff --git a/samples/openapi3/client/petstore/python-aiohttp/.openapi-generator/FILES b/samples/openapi3/client/petstore/python-aiohttp/.openapi-generator/FILES index 6cbba41b5b1b..e4c212a4b712 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/python-aiohttp/.openapi-generator/FILES @@ -255,9 +255,5 @@ petstore_api/py.typed petstore_api/rest.py petstore_api/signing.py pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt test/__init__.py tox.ini diff --git a/samples/openapi3/client/petstore/python-aiohttp/README.md b/samples/openapi3/client/petstore/python-aiohttp/README.md index 2d639677cfe5..d6acf4e8324f 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/README.md +++ b/samples/openapi3/client/petstore/python-aiohttp/README.md @@ -8,35 +8,21 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.19.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements. + +## Requirements Python 3.9+ ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh 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: -```python -import petstore_api -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import petstore_api ``` @@ -314,4 +300,3 @@ Authentication schemes defined for the API: - diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/__init__.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/__init__.py index 278f6dfecf4f..6cdae300c7fe 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/__init__.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ @@ -13,7 +11,6 @@ Do not edit the class manually. """ # noqa: E501 - __version__ = "1.0.0" # Define package exports diff --git a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/__init__.py b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/__init__.py index f34d053a1b72..4a162541e8c8 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/__init__.py +++ b/samples/openapi3/client/petstore/python-aiohttp/petstore_api/models/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ OpenAPI Petstore diff --git a/samples/openapi3/client/petstore/python-aiohttp/pyproject.toml b/samples/openapi3/client/petstore/python-aiohttp/pyproject.toml index 8e03a6c82feb..16d83d0440e2 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/pyproject.toml +++ b/samples/openapi3/client/petstore/python-aiohttp/pyproject.toml @@ -1,40 +1,44 @@ -[tool.poetry] +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + +[project] name = "petstore_api" version = "1.0.0" description = "OpenAPI Petstore" -authors = ["OpenAPI Generator Community "] -license = "Apache-2.0" +authors = [ + {name = "OpenAPI Generator Community", email = "team@openapitools.org"}, +] +license = { text = "Apache-2.0" } readme = "README.md" -repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" keywords = ["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"] -include = ["petstore_api/py.typed"] +requires-python = ">=3.9" +dependencies = [ + "python-dateutil (>=2.8.2)", + "aiohttp (>=3.8.4)", + "aiohttp-retry (>=2.8.3)", + "pem (>=19.3.0)", + "pycryptodome (>=3.9.0)", + "pydantic (>=2)", + "typing-extensions (>=4.7.1)", +] -[tool.poetry.dependencies] -python = "^3.9" -python-dateutil = ">= 2.8.2" -aiohttp = ">= 3.8.4" -aiohttp-retry = ">= 2.8.3" -pem = ">= 19.3.0" -pycryptodome = ">= 3.9.0" -pydantic = ">= 2" -typing-extensions = ">= 4.7.1" +[project.urls] +Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -[tool.poetry.dev-dependencies] +[tool.poetry.group.dev.dependencies] pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "petstore_api", diff --git a/samples/openapi3/client/petstore/python-aiohttp/requirements.txt b/samples/openapi3/client/petstore/python-aiohttp/requirements.txt deleted file mode 100644 index add57040b437..000000000000 --- a/samples/openapi3/client/petstore/python-aiohttp/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -python_dateutil >= 2.8.2 -aiohttp >= 3.8.4 -aiohttp-retry >= 2.8.3 -pem >= 19.3.0 -pycryptodome >= 3.9.0 -pydantic >= 2 -typing-extensions >= 4.7.1 diff --git a/samples/openapi3/client/petstore/python-aiohttp/setup.py b/samples/openapi3/client/petstore/python-aiohttp/setup.py deleted file mode 100644 index 93a557bdcaa9..000000000000 --- a/samples/openapi3/client/petstore/python-aiohttp/setup.py +++ /dev/null @@ -1,53 +0,0 @@ -# coding: utf-8 - -""" - OpenAPI Petstore - - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - - The version of the OpenAPI document: 1.0.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "petstore-api" -VERSION = "1.0.0" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ - "python-dateutil >= 2.8.2", - "aiohttp >= 3.8.4", - "aiohttp-retry >= 2.8.3", - "pem >= 19.3.0", - "pycryptodome >= 3.9.0", - "pydantic >= 2", - "typing-extensions >= 4.7.1", -] - -setup( - name=NAME, - version=VERSION, - description="OpenAPI Petstore", - author="OpenAPI Generator community", - author_email="team@openapitools.org", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="Apache-2.0", - long_description_content_type='text/markdown', - long_description="""\ - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - """, # noqa: E501 - package_data={"petstore_api": ["py.typed"]}, -) \ No newline at end of file diff --git a/samples/openapi3/client/petstore/python-aiohttp/test-requirements.txt b/samples/openapi3/client/petstore/python-aiohttp/test-requirements.txt deleted file mode 100644 index e98555c11c8a..000000000000 --- a/samples/openapi3/client/petstore/python-aiohttp/test-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 diff --git a/samples/openapi3/client/petstore/python-aiohttp/test/test_enum_test.py b/samples/openapi3/client/petstore/python-aiohttp/test/test_enum_test.py index 5f2f59e6c62b..d84613bc9464 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/test/test_enum_test.py +++ b/samples/openapi3/client/petstore/python-aiohttp/test/test_enum_test.py @@ -40,14 +40,14 @@ def make_instance(self, include_optional) -> EnumTest: enum_integer_default = 1, enum_integer = 1, enum_number = 1.1, - enum_number_vendor_ext = 42, - enum_string_vendor_ext = 'FOO', enum_string_single_member = 'abc', enum_integer_single_member = 100, outer_enum = 'placed', outer_enum_integer = 2, outer_enum_default_value = 'placed', - outer_enum_integer_default_value = -1 + outer_enum_integer_default_value = -1, + enum_number_vendor_ext = 42, + enum_string_vendor_ext = 'FOO' ) else: return EnumTest( diff --git a/samples/openapi3/client/petstore/python-aiohttp/test/test_one_of_enum_string.py b/samples/openapi3/client/petstore/python-aiohttp/test/test_one_of_enum_string.py index 0434db164a7e..ca7314f13eff 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/test/test_one_of_enum_string.py +++ b/samples/openapi3/client/petstore/python-aiohttp/test/test_one_of_enum_string.py @@ -25,26 +25,9 @@ def setUp(self): def tearDown(self): pass - def make_instance(self, include_optional) -> OneOfEnumString: - """Test OneOfEnumString - include_optional is a boolean, when False only required - params are included, when True both required and - optional params are included """ - # uncomment below to create an instance of `OneOfEnumString` - """ - model = OneOfEnumString() - if include_optional: - return OneOfEnumString( - ) - else: - return OneOfEnumString( - ) - """ - def testOneOfEnumString(self): """Test OneOfEnumString""" - # inst_req_only = self.make_instance(include_optional=False) - # inst_req_and_optional = self.make_instance(include_optional=True) + # inst = OneOfEnumString() if __name__ == '__main__': unittest.main() diff --git a/samples/openapi3/client/petstore/python-aiohttp/test/test_with_nested_one_of.py b/samples/openapi3/client/petstore/python-aiohttp/test/test_with_nested_one_of.py index 6d8fd35bfc08..e73d0279b96b 100644 --- a/samples/openapi3/client/petstore/python-aiohttp/test/test_with_nested_one_of.py +++ b/samples/openapi3/client/petstore/python-aiohttp/test/test_with_nested_one_of.py @@ -37,7 +37,7 @@ def make_instance(self, include_optional) -> WithNestedOneOf: return WithNestedOneOf( size = 56, nested_pig = None, - nested_oneof_enum_string = None + nested_oneof_enum_string = 'a' ) else: return WithNestedOneOf( diff --git a/samples/openapi3/client/petstore/python-httpx/.openapi-generator/FILES b/samples/openapi3/client/petstore/python-httpx/.openapi-generator/FILES index 6cbba41b5b1b..e4c212a4b712 100644 --- a/samples/openapi3/client/petstore/python-httpx/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/python-httpx/.openapi-generator/FILES @@ -255,9 +255,5 @@ petstore_api/py.typed petstore_api/rest.py petstore_api/signing.py pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt test/__init__.py tox.ini diff --git a/samples/openapi3/client/petstore/python-httpx/README.md b/samples/openapi3/client/petstore/python-httpx/README.md index 2d639677cfe5..d6acf4e8324f 100644 --- a/samples/openapi3/client/petstore/python-httpx/README.md +++ b/samples/openapi3/client/petstore/python-httpx/README.md @@ -8,35 +8,21 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.19.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements. + +## Requirements Python 3.9+ ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh 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: -```python -import petstore_api -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import petstore_api ``` @@ -314,4 +300,3 @@ Authentication schemes defined for the API: - diff --git a/samples/openapi3/client/petstore/python-httpx/petstore_api/__init__.py b/samples/openapi3/client/petstore/python-httpx/petstore_api/__init__.py index 278f6dfecf4f..6cdae300c7fe 100644 --- a/samples/openapi3/client/petstore/python-httpx/petstore_api/__init__.py +++ b/samples/openapi3/client/petstore/python-httpx/petstore_api/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ @@ -13,7 +11,6 @@ Do not edit the class manually. """ # noqa: E501 - __version__ = "1.0.0" # Define package exports diff --git a/samples/openapi3/client/petstore/python-httpx/petstore_api/models/__init__.py b/samples/openapi3/client/petstore/python-httpx/petstore_api/models/__init__.py index f34d053a1b72..4a162541e8c8 100644 --- a/samples/openapi3/client/petstore/python-httpx/petstore_api/models/__init__.py +++ b/samples/openapi3/client/petstore/python-httpx/petstore_api/models/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ OpenAPI Petstore diff --git a/samples/openapi3/client/petstore/python-httpx/pyproject.toml b/samples/openapi3/client/petstore/python-httpx/pyproject.toml index 17720c14e8c2..b80c8bd66fd5 100644 --- a/samples/openapi3/client/petstore/python-httpx/pyproject.toml +++ b/samples/openapi3/client/petstore/python-httpx/pyproject.toml @@ -1,15 +1,18 @@ +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + [project] name = "petstore_api" version = "1.0.0" description = "OpenAPI Petstore" authors = [ - {name = "OpenAPI Generator Community",email = "team@openapitools.org"}, + {name = "OpenAPI Generator Community", email = "team@openapitools.org"}, ] license = { text = "Apache-2.0" } readme = "README.md" keywords = ["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"] requires-python = ">=3.9" - dependencies = [ "python-dateutil (>=2.8.2)", "httpx (>=0.28.1)", @@ -22,25 +25,19 @@ dependencies = [ [project.urls] Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -[tool.poetry] -requires-poetry = ">=2.0" - [tool.poetry.group.dev.dependencies] pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "petstore_api", diff --git a/samples/openapi3/client/petstore/python-httpx/requirements.txt b/samples/openapi3/client/petstore/python-httpx/requirements.txt deleted file mode 100644 index 47ae4aa20eac..000000000000 --- a/samples/openapi3/client/petstore/python-httpx/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -python_dateutil >= 2.8.2 -httpx = ">= 0.28.1" -pem >= 19.3.0 -pycryptodome >= 3.9.0 -pydantic >= 2 -typing-extensions >= 4.7.1 diff --git a/samples/openapi3/client/petstore/python-httpx/setup.py b/samples/openapi3/client/petstore/python-httpx/setup.py deleted file mode 100644 index e9883ecf3ccc..000000000000 --- a/samples/openapi3/client/petstore/python-httpx/setup.py +++ /dev/null @@ -1,52 +0,0 @@ -# coding: utf-8 - -""" - OpenAPI Petstore - - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - - The version of the OpenAPI document: 1.0.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "petstore-api" -VERSION = "1.0.0" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ - "python-dateutil >= 2.8.2", - "httpx >= 0.28.1", - "pem >= 19.3.0", - "pycryptodome >= 3.9.0", - "pydantic >= 2", - "typing-extensions >= 4.7.1", -] - -setup( - name=NAME, - version=VERSION, - description="OpenAPI Petstore", - author="OpenAPI Generator community", - author_email="team@openapitools.org", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="Apache-2.0", - long_description_content_type='text/markdown', - long_description="""\ - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - """, # noqa: E501 - package_data={"petstore_api": ["py.typed"]}, -) \ No newline at end of file diff --git a/samples/openapi3/client/petstore/python-httpx/test-requirements.txt b/samples/openapi3/client/petstore/python-httpx/test-requirements.txt deleted file mode 100644 index e98555c11c8a..000000000000 --- a/samples/openapi3/client/petstore/python-httpx/test-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_another_fake_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_another_fake_api.py index d1b73d979ffc..93d3c4088940 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_another_fake_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_another_fake_api.py @@ -17,16 +17,16 @@ from petstore_api.api.another_fake_api import AnotherFakeApi -class TestAnotherFakeApi(unittest.TestCase): +class TestAnotherFakeApi(unittest.IsolatedAsyncioTestCase): """AnotherFakeApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = AnotherFakeApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_call_123_test_special_tags(self) -> None: + async def test_call_123_test_special_tags(self) -> None: """Test case for call_123_test_special_tags To test special tags diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_default_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_default_api.py index eb421a8edc1b..763eed825053 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_default_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_default_api.py @@ -17,16 +17,16 @@ from petstore_api.api.default_api import DefaultApi -class TestDefaultApi(unittest.TestCase): +class TestDefaultApi(unittest.IsolatedAsyncioTestCase): """DefaultApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = DefaultApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_foo_get(self) -> None: + async def test_foo_get(self) -> None: """Test case for foo_get """ diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_fake_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_fake_api.py index 11920b00480e..048479d824ed 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_fake_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_fake_api.py @@ -17,257 +17,257 @@ from petstore_api.api.fake_api import FakeApi -class TestFakeApi(unittest.TestCase): +class TestFakeApi(unittest.IsolatedAsyncioTestCase): """FakeApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = FakeApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_fake_any_type_request_body(self) -> None: + async def test_fake_any_type_request_body(self) -> None: """Test case for fake_any_type_request_body test any type request body """ pass - def test_fake_enum_ref_query_parameter(self) -> None: + async def test_fake_enum_ref_query_parameter(self) -> None: """Test case for fake_enum_ref_query_parameter test enum reference query parameter """ pass - def test_fake_health_get(self) -> None: + async def test_fake_health_get(self) -> None: """Test case for fake_health_get Health check endpoint """ pass - def test_fake_http_signature_test(self) -> None: + async def test_fake_http_signature_test(self) -> None: """Test case for fake_http_signature_test test http signature authentication """ pass - def test_fake_outer_boolean_serialize(self) -> None: + async def test_fake_outer_boolean_serialize(self) -> None: """Test case for fake_outer_boolean_serialize """ pass - def test_fake_outer_composite_serialize(self) -> None: + async def test_fake_outer_composite_serialize(self) -> None: """Test case for fake_outer_composite_serialize """ pass - def test_fake_outer_number_serialize(self) -> None: + async def test_fake_outer_number_serialize(self) -> None: """Test case for fake_outer_number_serialize """ pass - def test_fake_outer_string_serialize(self) -> None: + async def test_fake_outer_string_serialize(self) -> None: """Test case for fake_outer_string_serialize """ pass - def test_fake_property_enum_integer_serialize(self) -> None: + async def test_fake_property_enum_integer_serialize(self) -> None: """Test case for fake_property_enum_integer_serialize """ pass - def test_fake_ref_enum_string(self) -> None: + async def test_fake_ref_enum_string(self) -> None: """Test case for fake_ref_enum_string test ref to enum string """ pass - def test_fake_return_boolean(self) -> None: + async def test_fake_return_boolean(self) -> None: """Test case for fake_return_boolean test returning boolean """ pass - def test_fake_return_byte_like_json(self) -> None: + async def test_fake_return_byte_like_json(self) -> None: """Test case for fake_return_byte_like_json test byte like json """ pass - def test_fake_return_enum(self) -> None: + async def test_fake_return_enum(self) -> None: """Test case for fake_return_enum test returning enum """ pass - def test_fake_return_enum_like_json(self) -> None: + async def test_fake_return_enum_like_json(self) -> None: """Test case for fake_return_enum_like_json test enum like json """ pass - def test_fake_return_float(self) -> None: + async def test_fake_return_float(self) -> None: """Test case for fake_return_float test returning float """ pass - def test_fake_return_int(self) -> None: + async def test_fake_return_int(self) -> None: """Test case for fake_return_int test returning int """ pass - def test_fake_return_list_of_objects(self) -> None: + async def test_fake_return_list_of_objects(self) -> None: """Test case for fake_return_list_of_objects test returning list of objects """ pass - def test_fake_return_str_like_json(self) -> None: + async def test_fake_return_str_like_json(self) -> None: """Test case for fake_return_str_like_json test str like json """ pass - def test_fake_return_string(self) -> None: + async def test_fake_return_string(self) -> None: """Test case for fake_return_string test returning string """ pass - def test_fake_uuid_example(self) -> None: + async def test_fake_uuid_example(self) -> None: """Test case for fake_uuid_example test uuid example """ pass - def test_test_additional_properties_reference(self) -> None: + async def test_test_additional_properties_reference(self) -> None: """Test case for test_additional_properties_reference test referenced additionalProperties """ pass - def test_test_body_with_binary(self) -> None: + async def test_test_body_with_binary(self) -> None: """Test case for test_body_with_binary """ pass - def test_test_body_with_file_schema(self) -> None: + async def test_test_body_with_file_schema(self) -> None: """Test case for test_body_with_file_schema """ pass - def test_test_body_with_query_params(self) -> None: + async def test_test_body_with_query_params(self) -> None: """Test case for test_body_with_query_params """ pass - def test_test_client_model(self) -> None: + async def test_test_client_model(self) -> None: """Test case for test_client_model To test \"client\" model """ pass - def test_test_date_time_query_parameter(self) -> None: + async def test_test_date_time_query_parameter(self) -> None: """Test case for test_date_time_query_parameter """ pass - def test_test_empty_and_non_empty_responses(self) -> None: + async def test_test_empty_and_non_empty_responses(self) -> None: """Test case for test_empty_and_non_empty_responses test empty and non-empty responses """ pass - def test_test_endpoint_parameters(self) -> None: + async def test_test_endpoint_parameters(self) -> None: """Test case for test_endpoint_parameters Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 """ pass - def test_test_error_responses_with_model(self) -> None: + async def test_test_error_responses_with_model(self) -> None: """Test case for test_error_responses_with_model test error responses with model """ pass - def test_test_group_parameters(self) -> None: + async def test_test_group_parameters(self) -> None: """Test case for test_group_parameters Fake endpoint to test group parameters (optional) """ pass - def test_test_inline_additional_properties(self) -> None: + async def test_test_inline_additional_properties(self) -> None: """Test case for test_inline_additional_properties test inline additionalProperties """ pass - def test_test_inline_freeform_additional_properties(self) -> None: + async def test_test_inline_freeform_additional_properties(self) -> None: """Test case for test_inline_freeform_additional_properties test inline free-form additionalProperties """ pass - def test_test_json_form_data(self) -> None: + async def test_test_json_form_data(self) -> None: """Test case for test_json_form_data test json serialization of form data """ pass - def test_test_object_for_multipart_requests(self) -> None: + async def test_test_object_for_multipart_requests(self) -> None: """Test case for test_object_for_multipart_requests """ pass - def test_test_query_parameter_collection_format(self) -> None: + async def test_test_query_parameter_collection_format(self) -> None: """Test case for test_query_parameter_collection_format """ pass - def test_test_string_map_reference(self) -> None: + async def test_test_string_map_reference(self) -> None: """Test case for test_string_map_reference test referenced string map """ pass - def test_upload_file_with_additional_properties(self) -> None: + async def test_upload_file_with_additional_properties(self) -> None: """Test case for upload_file_with_additional_properties uploads a file and additional properties using multipart/form-data diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_fake_classname_tags123_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_fake_classname_tags123_api.py index 9282bf7150cb..12a8629dc308 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_fake_classname_tags123_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_fake_classname_tags123_api.py @@ -17,16 +17,16 @@ from petstore_api.api.fake_classname_tags123_api import FakeClassnameTags123Api -class TestFakeClassnameTags123Api(unittest.TestCase): +class TestFakeClassnameTags123Api(unittest.IsolatedAsyncioTestCase): """FakeClassnameTags123Api unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = FakeClassnameTags123Api() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_test_classname(self) -> None: + async def test_test_classname(self) -> None: """Test case for test_classname To test class name in snake case diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_import_test_datetime_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_import_test_datetime_api.py index 6cd4fb8cbaf5..73069b626123 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_import_test_datetime_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_import_test_datetime_api.py @@ -17,16 +17,16 @@ from petstore_api.api.import_test_datetime_api import ImportTestDatetimeApi -class TestImportTestDatetimeApi(unittest.TestCase): +class TestImportTestDatetimeApi(unittest.IsolatedAsyncioTestCase): """ImportTestDatetimeApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = ImportTestDatetimeApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_import_test_return_datetime(self) -> None: + async def test_import_test_return_datetime(self) -> None: """Test case for import_test_return_datetime test date time diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_pet_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_pet_api.py index 4cf869d36a26..19c138fee2c1 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_pet_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_pet_api.py @@ -17,72 +17,72 @@ from petstore_api.api.pet_api import PetApi -class TestPetApi(unittest.TestCase): +class TestPetApi(unittest.IsolatedAsyncioTestCase): """PetApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = PetApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_add_pet(self) -> None: + async def test_add_pet(self) -> None: """Test case for add_pet Add a new pet to the store """ pass - def test_delete_pet(self) -> None: + async def test_delete_pet(self) -> None: """Test case for delete_pet Deletes a pet """ pass - def test_find_pets_by_status(self) -> None: + async def test_find_pets_by_status(self) -> None: """Test case for find_pets_by_status Finds Pets by status """ pass - def test_find_pets_by_tags(self) -> None: + async def test_find_pets_by_tags(self) -> None: """Test case for find_pets_by_tags Finds Pets by tags """ pass - def test_get_pet_by_id(self) -> None: + async def test_get_pet_by_id(self) -> None: """Test case for get_pet_by_id Find pet by ID """ pass - def test_update_pet(self) -> None: + async def test_update_pet(self) -> None: """Test case for update_pet Update an existing pet """ pass - def test_update_pet_with_form(self) -> None: + async def test_update_pet_with_form(self) -> None: """Test case for update_pet_with_form Updates a pet in the store with form data """ pass - def test_upload_file(self) -> None: + async def test_upload_file(self) -> None: """Test case for upload_file uploads an image """ pass - def test_upload_file_with_required_file(self) -> None: + async def test_upload_file_with_required_file(self) -> None: """Test case for upload_file_with_required_file uploads an image (required) diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_store_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_store_api.py index 603b0f7bc57c..5cbcd18b75fb 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_store_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_store_api.py @@ -17,37 +17,37 @@ from petstore_api.api.store_api import StoreApi -class TestStoreApi(unittest.TestCase): +class TestStoreApi(unittest.IsolatedAsyncioTestCase): """StoreApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = StoreApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_delete_order(self) -> None: + async def test_delete_order(self) -> None: """Test case for delete_order Delete purchase order by ID """ pass - def test_get_inventory(self) -> None: + async def test_get_inventory(self) -> None: """Test case for get_inventory Returns pet inventories by status """ pass - def test_get_order_by_id(self) -> None: + async def test_get_order_by_id(self) -> None: """Test case for get_order_by_id Find purchase order by ID """ pass - def test_place_order(self) -> None: + async def test_place_order(self) -> None: """Test case for place_order Place an order for a pet diff --git a/samples/openapi3/client/petstore/python-httpx/test/test_user_api.py b/samples/openapi3/client/petstore/python-httpx/test/test_user_api.py index 6b17c42093e2..e091d190dea4 100644 --- a/samples/openapi3/client/petstore/python-httpx/test/test_user_api.py +++ b/samples/openapi3/client/petstore/python-httpx/test/test_user_api.py @@ -17,65 +17,65 @@ from petstore_api.api.user_api import UserApi -class TestUserApi(unittest.TestCase): +class TestUserApi(unittest.IsolatedAsyncioTestCase): """UserApi unit test stubs""" - def setUp(self) -> None: + async def asyncSetUp(self) -> None: self.api = UserApi() - def tearDown(self) -> None: - pass + async def asyncTearDown(self) -> None: + await self.api.api_client.close() - def test_create_user(self) -> None: + async def test_create_user(self) -> None: """Test case for create_user Create user """ pass - def test_create_users_with_array_input(self) -> None: + async def test_create_users_with_array_input(self) -> None: """Test case for create_users_with_array_input Creates list of users with given input array """ pass - def test_create_users_with_list_input(self) -> None: + async def test_create_users_with_list_input(self) -> None: """Test case for create_users_with_list_input Creates list of users with given input array """ pass - def test_delete_user(self) -> None: + async def test_delete_user(self) -> None: """Test case for delete_user Delete user """ pass - def test_get_user_by_name(self) -> None: + async def test_get_user_by_name(self) -> None: """Test case for get_user_by_name Get user by user name """ pass - def test_login_user(self) -> None: + async def test_login_user(self) -> None: """Test case for login_user Logs user into the system """ pass - def test_logout_user(self) -> None: + async def test_logout_user(self) -> None: """Test case for logout_user Logs out current logged in user session """ pass - def test_update_user(self) -> None: + async def test_update_user(self) -> None: """Test case for update_user Updated user diff --git a/samples/openapi3/client/petstore/python-lazyImports/.openapi-generator/FILES b/samples/openapi3/client/petstore/python-lazyImports/.openapi-generator/FILES index 6cbba41b5b1b..e4c212a4b712 100644 --- a/samples/openapi3/client/petstore/python-lazyImports/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/python-lazyImports/.openapi-generator/FILES @@ -255,9 +255,5 @@ petstore_api/py.typed petstore_api/rest.py petstore_api/signing.py pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt test/__init__.py tox.ini diff --git a/samples/openapi3/client/petstore/python-lazyImports/README.md b/samples/openapi3/client/petstore/python-lazyImports/README.md index 1878ef1cf9e6..651c79b9f9f5 100644 --- a/samples/openapi3/client/petstore/python-lazyImports/README.md +++ b/samples/openapi3/client/petstore/python-lazyImports/README.md @@ -8,35 +8,21 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.19.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements. + +## Requirements Python 3.9+ ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh 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: -```python -import petstore_api -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import petstore_api ``` @@ -314,4 +300,3 @@ Authentication schemes defined for the API: - diff --git a/samples/openapi3/client/petstore/python-lazyImports/petstore_api/__init__.py b/samples/openapi3/client/petstore/python-lazyImports/petstore_api/__init__.py index 5fc37d488192..c4fd50943590 100644 --- a/samples/openapi3/client/petstore/python-lazyImports/petstore_api/__init__.py +++ b/samples/openapi3/client/petstore/python-lazyImports/petstore_api/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ @@ -13,7 +11,6 @@ Do not edit the class manually. """ # noqa: E501 - __version__ = "1.0.0" # Define package exports diff --git a/samples/openapi3/client/petstore/python-lazyImports/petstore_api/models/__init__.py b/samples/openapi3/client/petstore/python-lazyImports/petstore_api/models/__init__.py index 6d488f7a8d6e..9332dd45f65a 100644 --- a/samples/openapi3/client/petstore/python-lazyImports/petstore_api/models/__init__.py +++ b/samples/openapi3/client/petstore/python-lazyImports/petstore_api/models/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ OpenAPI Petstore diff --git a/samples/openapi3/client/petstore/python-lazyImports/pyproject.toml b/samples/openapi3/client/petstore/python-lazyImports/pyproject.toml index a466656e8b6e..681e0af47127 100644 --- a/samples/openapi3/client/petstore/python-lazyImports/pyproject.toml +++ b/samples/openapi3/client/petstore/python-lazyImports/pyproject.toml @@ -1,15 +1,18 @@ +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + [project] name = "petstore_api" version = "1.0.0" description = "OpenAPI Petstore" authors = [ - {name = "OpenAPI Generator Community",email = "team@openapitools.org"}, + {name = "OpenAPI Generator Community", email = "team@openapitools.org"}, ] license = { text = "Apache-2.0" } readme = "README.md" keywords = ["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"] requires-python = ">=3.9" - dependencies = [ "urllib3 (>=2.1.0,<3.0.0)", "python-dateutil (>=2.8.2)", @@ -23,25 +26,19 @@ dependencies = [ [project.urls] Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -[tool.poetry] -requires-poetry = ">=2.0" - [tool.poetry.group.dev.dependencies] pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "petstore_api", diff --git a/samples/openapi3/client/petstore/python-lazyImports/requirements.txt b/samples/openapi3/client/petstore/python-lazyImports/requirements.txt deleted file mode 100644 index ca83fcc1d25b..000000000000 --- a/samples/openapi3/client/petstore/python-lazyImports/requirements.txt +++ /dev/null @@ -1,7 +0,0 @@ -urllib3 >= 2.1.0, < 3.0.0 -python_dateutil >= 2.8.2 -pem >= 19.3.0 -pycryptodome >= 3.9.0 -pydantic >= 2 -typing-extensions >= 4.7.1 -lazy-imports >= 1, < 2 diff --git a/samples/openapi3/client/petstore/python-lazyImports/setup.py b/samples/openapi3/client/petstore/python-lazyImports/setup.py deleted file mode 100644 index 5edb21a69e69..000000000000 --- a/samples/openapi3/client/petstore/python-lazyImports/setup.py +++ /dev/null @@ -1,53 +0,0 @@ -# coding: utf-8 - -""" - OpenAPI Petstore - - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - - The version of the OpenAPI document: 1.0.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "petstore-api" -VERSION = "1.0.0" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ - "urllib3 >= 2.1.0, < 3.0.0", - "python-dateutil >= 2.8.2", - "pem >= 19.3.0", - "pycryptodome >= 3.9.0", - "pydantic >= 2", - "typing-extensions >= 4.7.1", - "lazy-imports >= 1, < 2", -] - -setup( - name=NAME, - version=VERSION, - description="OpenAPI Petstore", - author="OpenAPI Generator community", - author_email="team@openapitools.org", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="Apache-2.0", - long_description_content_type='text/markdown', - long_description="""\ - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - """, # noqa: E501 - package_data={"petstore_api": ["py.typed"]}, -) \ No newline at end of file diff --git a/samples/openapi3/client/petstore/python-lazyImports/test-requirements.txt b/samples/openapi3/client/petstore/python-lazyImports/test-requirements.txt deleted file mode 100644 index e98555c11c8a..000000000000 --- a/samples/openapi3/client/petstore/python-lazyImports/test-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 diff --git a/samples/openapi3/client/petstore/python/.openapi-generator/FILES b/samples/openapi3/client/petstore/python/.openapi-generator/FILES index 6cbba41b5b1b..e4c212a4b712 100755 --- a/samples/openapi3/client/petstore/python/.openapi-generator/FILES +++ b/samples/openapi3/client/petstore/python/.openapi-generator/FILES @@ -255,9 +255,5 @@ petstore_api/py.typed petstore_api/rest.py petstore_api/signing.py pyproject.toml -requirements.txt -setup.cfg -setup.py -test-requirements.txt test/__init__.py tox.ini diff --git a/samples/openapi3/client/petstore/python/README.md b/samples/openapi3/client/petstore/python/README.md old mode 100755 new mode 100644 index 1878ef1cf9e6..651c79b9f9f5 --- a/samples/openapi3/client/petstore/python/README.md +++ b/samples/openapi3/client/petstore/python/README.md @@ -8,35 +8,21 @@ This Python package is automatically generated by the [OpenAPI Generator](https: - Generator version: 7.19.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.PythonClientCodegen -## Requirements. + +## Requirements Python 3.9+ ## Installation & Usage -### pip install If the python package is hosted on a repository, you can install directly using: ```sh 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: -```python -import petstore_api -``` -### Setuptools +Once installed, import the package: -Install via [Setuptools](http://pypi.python.org/pypi/setuptools). - -```sh -python setup.py install --user -``` -(or `sudo python setup.py install` to install the package for all users) - -Then import the package: ```python import petstore_api ``` @@ -314,4 +300,3 @@ Authentication schemes defined for the API: - diff --git a/samples/openapi3/client/petstore/python/docs/EnumSerialization.md b/samples/openapi3/client/petstore/python/docs/EnumSerialization.md deleted file mode 100644 index 68d6e8e23fde..000000000000 --- a/samples/openapi3/client/petstore/python/docs/EnumSerialization.md +++ /dev/null @@ -1,11 +0,0 @@ -# EnumSerialization - - -## Properties - -Name | Type | Description | Notes ------------- | ------------- | ------------- | ------------- - -[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) - - diff --git a/samples/openapi3/client/petstore/python/git_push.sh b/samples/openapi3/client/petstore/python/git_push.sh old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/__init__.py b/samples/openapi3/client/petstore/python/petstore_api/__init__.py old mode 100755 new mode 100644 index 278f6dfecf4f..6cdae300c7fe --- a/samples/openapi3/client/petstore/python/petstore_api/__init__.py +++ b/samples/openapi3/client/petstore/python/petstore_api/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ @@ -13,7 +11,6 @@ Do not edit the class manually. """ # noqa: E501 - __version__ = "1.0.0" # Define package exports diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/__init__.py b/samples/openapi3/client/petstore/python/petstore_api/api/__init__.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/another_fake_api.py b/samples/openapi3/client/petstore/python/petstore_api/api/another_fake_api.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/default_api.py b/samples/openapi3/client/petstore/python/petstore_api/api/default_api.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/fake_api.py b/samples/openapi3/client/petstore/python/petstore_api/api/fake_api.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/pet_api.py b/samples/openapi3/client/petstore/python/petstore_api/api/pet_api.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/store_api.py b/samples/openapi3/client/petstore/python/petstore_api/api/store_api.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api/user_api.py b/samples/openapi3/client/petstore/python/petstore_api/api/user_api.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/api_client.py b/samples/openapi3/client/petstore/python/petstore_api/api_client.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/configuration.py b/samples/openapi3/client/petstore/python/petstore_api/configuration.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/exceptions.py b/samples/openapi3/client/petstore/python/petstore_api/exceptions.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/__init__.py b/samples/openapi3/client/petstore/python/petstore_api/models/__init__.py index f34d053a1b72..4a162541e8c8 100644 --- a/samples/openapi3/client/petstore/python/petstore_api/models/__init__.py +++ b/samples/openapi3/client/petstore/python/petstore_api/models/__init__.py @@ -1,5 +1,3 @@ -# coding: utf-8 - # flake8: noqa """ OpenAPI Petstore diff --git a/samples/openapi3/client/petstore/python/petstore_api/models/enum_serialization.py b/samples/openapi3/client/petstore/python/petstore_api/models/enum_serialization.py deleted file mode 100644 index b7177b7f380a..000000000000 --- a/samples/openapi3/client/petstore/python/petstore_api/models/enum_serialization.py +++ /dev/null @@ -1,37 +0,0 @@ -# coding: utf-8 - -""" - OpenAPI Petstore - - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - - The version of the OpenAPI document: 1.0.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from __future__ import annotations -import json -from enum import Enum -from typing_extensions import Self - - -class EnumSerialization(int, Enum): - """ - EnumSerialization - """ - - """ - allowed enum values - """ - NUMBER_0 = 0 - NUMBER_1 = 1 - - @classmethod - def from_json(cls, json_str: str) -> Self: - """Create an instance of EnumSerialization from a JSON string""" - return cls(json.loads(json_str)) - - diff --git a/samples/openapi3/client/petstore/python/petstore_api/rest.py b/samples/openapi3/client/petstore/python/petstore_api/rest.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/pyproject.toml b/samples/openapi3/client/petstore/python/pyproject.toml index eed3d1a1ac49..97b25e7e45fa 100644 --- a/samples/openapi3/client/petstore/python/pyproject.toml +++ b/samples/openapi3/client/petstore/python/pyproject.toml @@ -1,15 +1,18 @@ +[build-system] +requires = ["poetry-core>=2.0.0"] +build-backend = "poetry.core.masonry.api" + [project] name = "petstore_api" version = "1.0.0" description = "OpenAPI Petstore" authors = [ - {name = "OpenAPI Generator Community",email = "team@openapitools.org"}, + {name = "OpenAPI Generator Community", email = "team@openapitools.org"}, ] license = { text = "Apache-2.0" } readme = "README.md" keywords = ["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"] requires-python = ">=3.9" - dependencies = [ "urllib3 (>=2.1.0,<3.0.0)", "python-dateutil (>=2.8.2)", @@ -22,25 +25,19 @@ dependencies = [ [project.urls] Repository = "https://github.com/GIT_USER_ID/GIT_REPO_ID" -[tool.poetry] -requires-poetry = ">=2.0" - [tool.poetry.group.dev.dependencies] pytest = ">= 7.2.1" pytest-cov = ">= 2.8.1" -tox = ">= 3.9.0" -flake8 = ">= 4.0.0" +ruff = ">= 0.14.0" types-python-dateutil = ">= 2.8.19.14" mypy = ">= 1.5" - -[build-system] -requires = ["setuptools"] -build-backend = "setuptools.build_meta" - [tool.pylint.'MESSAGES CONTROL'] extension-pkg-whitelist = "pydantic" +[tool.ruff.lint] +select = ["E4", "E5", "E7", "E9", "F"] + [tool.mypy] files = [ "petstore_api", diff --git a/samples/openapi3/client/petstore/python/requirements.txt b/samples/openapi3/client/petstore/python/requirements.txt deleted file mode 100755 index a4d47b80f2ca..000000000000 --- a/samples/openapi3/client/petstore/python/requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -urllib3 >= 2.1.0, < 3.0.0 -python_dateutil >= 2.8.2 -pem >= 19.3.0 -pycryptodome >= 3.9.0 -pydantic >= 2 -typing-extensions >= 4.7.1 diff --git a/samples/openapi3/client/petstore/python/setup.cfg b/samples/openapi3/client/petstore/python/setup.cfg deleted file mode 100755 index 11433ee875ab..000000000000 --- a/samples/openapi3/client/petstore/python/setup.cfg +++ /dev/null @@ -1,2 +0,0 @@ -[flake8] -max-line-length=99 diff --git a/samples/openapi3/client/petstore/python/setup.py b/samples/openapi3/client/petstore/python/setup.py deleted file mode 100755 index 35e7395c2b0c..000000000000 --- a/samples/openapi3/client/petstore/python/setup.py +++ /dev/null @@ -1,52 +0,0 @@ -# coding: utf-8 - -""" - OpenAPI Petstore - - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - - The version of the OpenAPI document: 1.0.0 - Generated by OpenAPI Generator (https://openapi-generator.tech) - - Do not edit the class manually. -""" # noqa: E501 - - -from setuptools import setup, find_packages # noqa: H301 - -# To install the library, run the following -# -# python setup.py install -# -# prerequisite: setuptools -# http://pypi.python.org/pypi/setuptools -NAME = "petstore-api" -VERSION = "1.0.0" -PYTHON_REQUIRES = ">= 3.9" -REQUIRES = [ - "urllib3 >= 2.1.0, < 3.0.0", - "python-dateutil >= 2.8.2", - "pem >= 19.3.0", - "pycryptodome >= 3.9.0", - "pydantic >= 2", - "typing-extensions >= 4.7.1", -] - -setup( - name=NAME, - version=VERSION, - description="OpenAPI Petstore", - author="OpenAPI Generator community", - author_email="team@openapitools.org", - url="", - keywords=["OpenAPI", "OpenAPI-Generator", "OpenAPI Petstore"], - install_requires=REQUIRES, - packages=find_packages(exclude=["test", "tests"]), - include_package_data=True, - license="Apache-2.0", - long_description_content_type='text/markdown', - long_description="""\ - This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ - """, # noqa: E501 - package_data={"petstore_api": ["py.typed"]}, -) \ No newline at end of file diff --git a/samples/openapi3/client/petstore/python/test-requirements.txt b/samples/openapi3/client/petstore/python/test-requirements.txt deleted file mode 100755 index e98555c11c8a..000000000000 --- a/samples/openapi3/client/petstore/python/test-requirements.txt +++ /dev/null @@ -1,6 +0,0 @@ -pytest >= 7.2.1 -pytest-cov >= 2.8.1 -tox >= 3.9.0 -flake8 >= 4.0.0 -types-python-dateutil >= 2.8.19.14 -mypy >= 1.5 diff --git a/samples/openapi3/client/petstore/python/test/__init__.py b/samples/openapi3/client/petstore/python/test/__init__.py old mode 100755 new mode 100644 diff --git a/samples/openapi3/client/petstore/python/test/test_enum_test.py b/samples/openapi3/client/petstore/python/test/test_enum_test.py index 5f2f59e6c62b..d84613bc9464 100644 --- a/samples/openapi3/client/petstore/python/test/test_enum_test.py +++ b/samples/openapi3/client/petstore/python/test/test_enum_test.py @@ -40,14 +40,14 @@ def make_instance(self, include_optional) -> EnumTest: enum_integer_default = 1, enum_integer = 1, enum_number = 1.1, - enum_number_vendor_ext = 42, - enum_string_vendor_ext = 'FOO', enum_string_single_member = 'abc', enum_integer_single_member = 100, outer_enum = 'placed', outer_enum_integer = 2, outer_enum_default_value = 'placed', - outer_enum_integer_default_value = -1 + outer_enum_integer_default_value = -1, + enum_number_vendor_ext = 42, + enum_string_vendor_ext = 'FOO' ) else: return EnumTest( diff --git a/samples/openapi3/client/petstore/python/tox.ini b/samples/openapi3/client/petstore/python/tox.ini old mode 100755 new mode 100644