pyopenapi-gen 0.10.2__tar.gz → 0.11.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.gitignore +6 -1
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/CHANGELOG.md +140 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/Makefile +4 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/PKG-INFO +1 -1
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/coverage.xml +284 -306
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/input/business_swagger.json +9816 -5072
- pyopenapi_gen-0.11.0/poetry.lock +2812 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/pyproject.toml +6 -2
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/__init__.py +1 -1
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/exceptions.py +1 -6
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/loader.py +15 -1
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/parameters/parser.py +23 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/schemas/extractor.py +17 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/generator/client_generator.py +20 -5
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/schema_resolver.py +11 -3
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/signature_generator.py +3 -11
- pyopenapi_gen-0.11.0/tests/core/loader/test_top_level_enum_extraction.py +182 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_schema_resolver.py +10 -17
- pyopenapi_gen-0.11.0/tests/types/test_schema_resolver_enums.py +230 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_type_service.py +28 -25
- pyopenapi_gen-0.10.2/poetry.lock +0 -2915
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.bandit +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.cursor/mcp.json +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.cursor/rules/architecture.mdc +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.cursor/rules/coding-conventions.mdc +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.cursor/rules/project-goal.mdc +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.cursor/rules/testing.mdc +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/BRANCH_PROTECTION.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/CLAUDE_CONFIGURATION.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/CODEOWNERS +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/dependabot.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/ci.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/claude-auto-approve.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/claude-review-trigger.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/claude.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/pr-checks.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/production-release.yml.backup +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/promote-to-staging.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/semantic-release.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/staging-publish.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.github/workflows/testpypi-publish.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.python-version +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/.vscode/settings.json +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/CONTRIBUTING.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/LICENSE +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/README.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/README.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/architecture.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/endpoint_visitor.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/helpers.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/ir_models.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/line_writer.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/loader.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/model_visitor.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/render_context.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/docs/unified_type_resolution.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/input/minimal_swagger.json +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/input/minimal_syntax_test.json +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/input/test_name_collision_spec.json +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/mkdocs.yml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/__main__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/cli.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/file_manager.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/import_collector.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/render_context.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/auth/base.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/auth/plugins.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/http_transport.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/post_processor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/request_body.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/parameters/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/responses/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/responses/parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/schemas/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/pagination.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/cyclic_properties.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/direct_cycle.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/existing_schema.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/list_response.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/missing_ref.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/new_schema.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/stripped_suffix.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/resolve_schema_ref.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/type_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/context.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/cycle_helpers.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/all_of_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/any_of_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/array_items_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/one_of_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/properties_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/schema_finalizer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/schema_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/transformers/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/transformers/inline_enum_extractor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/transformers/inline_object_promoter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/unified_cycle_detection.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/postprocess_manager.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/schemas.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/streaming_helpers.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/telemetry.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/warning_collector.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/code_writer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/documentation_writer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/line_writer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/python_construct_renderer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core_package_template/README.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emit/models_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/client_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/core_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/docs_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/endpoints_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/exceptions_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/models_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/generator/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/endpoint_utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_cleaner.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_helper.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/array_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/composition_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/finalizer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/named_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/object_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/primitive_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/url_utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/http_types.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/ir.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/py.typed +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/contracts/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/contracts/protocols.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/contracts/types.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/reference_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/response_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/services/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/services/type_service.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/strategies/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/strategies/response_strategy.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/client_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/docs_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/endpoint_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/docstring_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/endpoint_method_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/request_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/response_handler_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/url_args_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/processors/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/processors/import_analyzer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/processors/parameter_processor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/exception_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/alias_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/dataclass_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/enum_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/model_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/auth/auth_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/auth/test_auth_base.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/auth/test_auth_plugins.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/cli/cli_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_backup_diff.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_edge_cases.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_edge_cases_comprehensive.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_internal_utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/cli/test_http_pagination_cli.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/context/context_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/context/test_file_manager.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/context/test_import_collector.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/context/test_render_context.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/context/test_render_context_imports.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/context/test_render_context_relative_paths.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/core_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/loader/test_extractor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/helpers_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_cyclic_properties.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_direct_cycle.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_existing_schema.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_list_response.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_missing_ref.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_new_schema.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_stripped_suffix.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/keywords_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_all_of_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_any_of_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_array_items_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_one_of_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_properties_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/parsing_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_context.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_cycle_detection.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_cycle_helpers.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_improved_schema_naming.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_inline_enum_extractor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_inline_object_promoter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_logging.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_ref_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_schema_finalizer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_schema_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_schema_parser_list_response.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_type_parser.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_dataclass_serialization.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_detect_circular_imports.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_edge_cases_integration.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_edge_cases_systematic.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_exceptions_module.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_forward_references.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_http_transport.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_import_resolution.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_ir.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_ir_schema.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_loader.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_loader_extensive.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_loader_invalid_refs.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_loader_malformed.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_loader_media_types.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_pagination.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_parsing_context.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_protocol_defaults.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_schema_parser_specific_case.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_schemas.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_simple_self_ref_check.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_streaming_helpers.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_telemetry.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_telemetry_client.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/test_warning_collector.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/writers/test_code_writer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/writers/test_documentation_writer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/writers/test_line_writer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/writers/test_python_construct_renderer_json_wizard.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/core/writers/writers_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/emitters_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_client_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_docs_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_duplicate_operations.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_endpoints_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_exceptions_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_list_response_generation.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/emitters/test_models_emitter.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/end_to_end/test_dataclass_serialization_e2e.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/examples/test_developer_experience_demo.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/generation/generation_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/generation/test_external_core_package.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/generation_issues/specs/minimal_addmessage_like.json +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/generation_issues/test_addmessage_like_issues.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/generation_issues/test_agent_include_parameter_typing.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/generation_issues/test_message_batch_response_issue.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/helpers_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_array_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_endpoint_utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_endpoint_utils_extended.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_get_endpoint_return_types.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_named_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_named_type_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_object_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_put_endpoint_return_types.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_type_cleaner.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_type_helper.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_url_utils.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/helpers/test_utils_helpers.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/integration/test_generated_code_structure.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/integrations/integrations_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/integrations/test_business_swagger_message_type.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/integrations/test_end_to_end_business_swagger.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/integrations/test_end_to_end_petstore.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/integrations/test_name_collisions.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/specs/response_unwrapping_spec.yaml +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/test_analysis_overview.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/test_init.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_business_swagger_integration.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_contracts_types.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_reference_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_response_resolver.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_response_strategy.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/types/test_response_strategy_simplified.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/generators_analysis.md +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_dataclass_integration.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_docstring_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_endpoint_method_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_match_case_response.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_request_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_response_handler_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_response_handler_generator_strategy.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_signature_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_url_args_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/test_import_analyzer.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/test_import_analyzer.py.bak +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/test_parameter_processor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/test_endpoint_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/model/__init__.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/model/test_alias_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/model/test_dataclass_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/model/test_dataclass_generator_json_wizard.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/model/test_enum_generator.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/test_client_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/test_model_visitor.py +0 -0
- {pyopenapi_gen-0.10.2 → pyopenapi_gen-0.11.0}/tests/visit/test_visitor.py +0 -0
@@ -1,6 +1,146 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v0.11.0 (2025-09-06)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- Remove dynamic attribute to fix mypy type checking
|
9
|
+
([`b52a1ca`](https://github.com/mindhiveoy/pyopenapi_gen/commit/b52a1cac4987a295ca0d404ed2155b1ab2136ec8))
|
10
|
+
|
11
|
+
- Resolve enum type checking and test compatibility issues
|
12
|
+
([`c9ab9e2`](https://github.com/mindhiveoy/pyopenapi_gen/commit/c9ab9e2272a2f4af822ae311674822f658f4f7d3))
|
13
|
+
|
14
|
+
- **parser**: Enhance parameter resolution to prefer component schemas
|
15
|
+
([`743f6d4`](https://github.com/mindhiveoy/pyopenapi_gen/commit/743f6d46d86f7288ddfeabf1c2896f6a698fccda))
|
16
|
+
|
17
|
+
- Add fallback to component parameters when inline schemas are basic - Prefer richer component
|
18
|
+
schemas (arrays/enums/refs) over simple inline ones - Handle simple enum arrays in parameters
|
19
|
+
without creating complex schemas - Improve parameter type resolution for better client generation
|
20
|
+
|
21
|
+
- **types**: Improve enum resolution to handle promoted schemas
|
22
|
+
([`e44d358`](https://github.com/mindhiveoy/pyopenapi_gen/commit/e44d358e5a995a0a93ca19aa3f24ff53855a1666))
|
23
|
+
|
24
|
+
Updated schema resolver to properly recognize promoted enum schemas and reduce false-positive
|
25
|
+
warnings.
|
26
|
+
|
27
|
+
Implementation changes: - Check for generation_name or _is_top_level_enum marker - Return enum type
|
28
|
+
name for properly processed enums - Log more informative warnings with schema names - Preserve
|
29
|
+
fallback to str for truly inline enums
|
30
|
+
|
31
|
+
Technical details in schema_resolver.py: - Modified _resolve_string() to check promotion markers -
|
32
|
+
Return generation_name or name for marked enums - Only warn for unmarked inline enums with
|
33
|
+
descriptive message
|
34
|
+
|
35
|
+
This eliminates spurious warnings for properly promoted enums while maintaining detection of actual
|
36
|
+
inline enum issues.
|
37
|
+
|
38
|
+
- **visit**: Add fallback for missing response descriptions
|
39
|
+
([`5c9b853`](https://github.com/mindhiveoy/pyopenapi_gen/commit/5c9b853c7cdab4afa5d49adf1c8e8f186e39b6e8))
|
40
|
+
|
41
|
+
- Handle None response descriptions gracefully in signature generator - Provide empty string
|
42
|
+
fallback to prevent AttributeError - Improve robustness when OpenAPI specs have incomplete
|
43
|
+
response metadata
|
44
|
+
|
45
|
+
### Chores
|
46
|
+
|
47
|
+
- Update build configuration for coverage reports
|
48
|
+
([`0e6f0ff`](https://github.com/mindhiveoy/pyopenapi_gen/commit/0e6f0ff95c9dbaba0a5920d608641ce29ab1d870))
|
49
|
+
|
50
|
+
- Add coverage_reports/ directory to .gitignore - Update Makefile coverage targets to use
|
51
|
+
coverage_reports/ for data storage - Prevent coverage data files from polluting project root
|
52
|
+
|
53
|
+
- **deps**: Update project dependencies
|
54
|
+
([`e4a1469`](https://github.com/mindhiveoy/pyopenapi_gen/commit/e4a146996d1486194ca9503c0788434ba6df409d))
|
55
|
+
|
56
|
+
- Update anyio to 4.9.0 for improved async functionality - Update authlib to 1.4.0 for better OAuth2
|
57
|
+
support - Sync poetry.lock with latest dependency resolutions
|
58
|
+
|
59
|
+
### Code Style
|
60
|
+
|
61
|
+
- Apply Black formatting to all modified files
|
62
|
+
([`f1d383b`](https://github.com/mindhiveoy/pyopenapi_gen/commit/f1d383b8d8aac31ab5f3fb6536ef88eebb0c242f))
|
63
|
+
|
64
|
+
- Fix Ruff linting issues (unused imports)
|
65
|
+
([`973b82a`](https://github.com/mindhiveoy/pyopenapi_gen/commit/973b82ab1db4e92ac37b1b38740e888e603094b5))
|
66
|
+
|
67
|
+
### Features
|
68
|
+
|
69
|
+
- **enums**: Add support for top-level enum schema promotion
|
70
|
+
([`92afb7c`](https://github.com/mindhiveoy/pyopenapi_gen/commit/92afb7c1964d85def7c8432f56d831d5bfa50a81))
|
71
|
+
|
72
|
+
Enhanced enum extraction to properly handle top-level enum schemas defined directly in OpenAPI
|
73
|
+
components/schemas (like UserRole, TenantStatus).
|
74
|
+
|
75
|
+
Implementation details: - Modified extract_inline_enums() to detect and mark top-level enums - Set
|
76
|
+
generation_name for top-level enums to ensure proper code generation - Added _is_top_level_enum
|
77
|
+
marker for tracking promoted schemas - Preserved existing inline enum extraction from properties
|
78
|
+
|
79
|
+
Technical changes in extractor.py: - Added check for schemas with enum values and primitive types -
|
80
|
+
Automatically set generation_name if not already present - Mark schemas with _is_top_level_enum =
|
81
|
+
True for resolver
|
82
|
+
|
83
|
+
This ensures all enum schemas generate proper Python Enum classes instead of falling back to plain
|
84
|
+
string types.
|
85
|
+
|
86
|
+
Addresses: Inline enum promotion warnings in business_swagger.json
|
87
|
+
|
88
|
+
### Refactoring
|
89
|
+
|
90
|
+
- **core**: Improve exception handling with optional response object
|
91
|
+
([`466706f`](https://github.com/mindhiveoy/pyopenapi_gen/commit/466706fb2cf9dbc43f374c5e51548c6c7111efd2))
|
92
|
+
|
93
|
+
- Make response parameter optional in HTTPError constructor - Use Union[object, None] type
|
94
|
+
annotation for Python 3.12 compatibility - Enhance error handling flexibility for generated
|
95
|
+
clients
|
96
|
+
|
97
|
+
- **generator**: Improve logging and JSON serialization
|
98
|
+
([`30bf5a4`](https://github.com/mindhiveoy/pyopenapi_gen/commit/30bf5a4ef36df27f3d348f17dbb6fd519b450b88))
|
99
|
+
|
100
|
+
- Fix JSONEncoder override method name from 'default' to 'encode' - Add debug logging for spec
|
101
|
+
loading with truncated output - Improve error handling in spec serialization - Enhance debugging
|
102
|
+
capabilities for complex OpenAPI specs
|
103
|
+
|
104
|
+
- **loader**: Improve spec validation error handling
|
105
|
+
([`d42cb7d`](https://github.com/mindhiveoy/pyopenapi_gen/commit/d42cb7da9a8ad5244b8d56285bd7614391b51ef9))
|
106
|
+
|
107
|
+
- Add heuristic detection for jsonschema and openapi_spec_validator errors - Use logger.warning for
|
108
|
+
known validation library errors - Preserve explicit warnings for unexpected validation failures -
|
109
|
+
Reduce noise in test output while maintaining error visibility
|
110
|
+
|
111
|
+
### Testing
|
112
|
+
|
113
|
+
- Add comprehensive business domain OpenAPI spec
|
114
|
+
([`1710abe`](https://github.com/mindhiveoy/pyopenapi_gen/commit/1710abe46521e148da8217f8236252fe9e93514a))
|
115
|
+
|
116
|
+
- Include complex schemas with enums, arrays, and nested objects - Add multi-status response
|
117
|
+
definitions for testing - Include examples of inline and referenced enums - Provide realistic test
|
118
|
+
cases for parameter resolution
|
119
|
+
|
120
|
+
- Enhance type resolution test coverage
|
121
|
+
([`9a0a4e5`](https://github.com/mindhiveoy/pyopenapi_gen/commit/9a0a4e5933a2a20f5aab9e08d77a442768f1a053))
|
122
|
+
|
123
|
+
- Add comprehensive tests for enum resolution scenarios - Improve test assertions for optional type
|
124
|
+
handling - Add edge cases for complex schema resolution - Enhance test documentation with clear
|
125
|
+
scenario descriptions
|
126
|
+
|
127
|
+
- **enums**: Add comprehensive tests for enum promotion feature
|
128
|
+
([`8cd7eb2`](https://github.com/mindhiveoy/pyopenapi_gen/commit/8cd7eb2b61cce36fb01f495ad4ee689c6e09d75b))
|
129
|
+
|
130
|
+
Added test coverage for top-level enum extraction and resolution to ensure proper handling of
|
131
|
+
various enum patterns.
|
132
|
+
|
133
|
+
Test coverage includes: - Top-level string, integer, and number enum schemas - Preservation of
|
134
|
+
existing generation_name values - Mixed scenarios with top-level and inline enums - Schema
|
135
|
+
resolver handling of promoted enums - Warning generation for unprocessed inline enums - Edge cases
|
136
|
+
like object types with enum values
|
137
|
+
|
138
|
+
Test files: - test_top_level_enum_extraction.py: 6 test cases - test_schema_resolver_enums.py: 7
|
139
|
+
test cases
|
140
|
+
|
141
|
+
All tests pass and verify correct enum promotion behavior.
|
142
|
+
|
143
|
+
|
4
144
|
## v0.10.2 (2025-07-17)
|
5
145
|
|
6
146
|
### Bug Fixes
|
@@ -76,10 +76,12 @@ quality: format-check lint typecheck security
|
|
76
76
|
# Testing commands
|
77
77
|
test: deps
|
78
78
|
@echo "🧪 Running tests with coverage (requires 85%)..."
|
79
|
+
@mkdir -p coverage_reports
|
79
80
|
poetry run pytest -n 2 --timeout=120 --cov=src --cov-report=term-missing --cov-report=xml:coverage_reports/coverage.xml --cov-fail-under=85
|
80
81
|
|
81
82
|
test-serial: deps
|
82
83
|
@echo "🧪 Running tests sequentially..."
|
84
|
+
@mkdir -p coverage_reports
|
83
85
|
poetry run pytest --timeout=120 --cov=src --cov-report=term-missing --cov-report=xml:coverage_reports/coverage.xml
|
84
86
|
|
85
87
|
test-no-cov: deps
|
@@ -92,10 +94,12 @@ test-fast: deps
|
|
92
94
|
|
93
95
|
test-cov: deps
|
94
96
|
@echo "🧪 Running tests with coverage report..."
|
97
|
+
@mkdir -p coverage_reports
|
95
98
|
poetry run pytest -n 2 --cov=src --cov-report=term-missing --cov-report=html:coverage_reports/html
|
96
99
|
|
97
100
|
coverage-html: deps
|
98
101
|
@echo "📊 Generating HTML coverage report..."
|
102
|
+
@mkdir -p coverage_reports
|
99
103
|
poetry run pytest --cov=src --cov-report=html:coverage_reports/html
|
100
104
|
@echo "📊 Coverage report: coverage_reports/html/index.html"
|
101
105
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pyopenapi-gen
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.11.0
|
4
4
|
Summary: Modern, async-first Python client generator for OpenAPI specifications with advanced cycle detection and unified type resolution
|
5
5
|
Project-URL: Homepage, https://github.com/your-org/pyopenapi-gen
|
6
6
|
Project-URL: Documentation, https://github.com/your-org/pyopenapi-gen/blob/main/README.md
|