pyopenapi-gen 0.10.1__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.1 → pyopenapi_gen-0.11.0}/.gitignore +6 -1
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/CHANGELOG.md +154 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/CLAUDE.md +8 -1
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/Makefile +4 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/PKG-INFO +1 -1
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/coverage.xml +284 -306
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/input/business_swagger.json +9816 -5072
- pyopenapi_gen-0.11.0/poetry.lock +2812 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/pyproject.toml +6 -2
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/__init__.py +1 -1
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/exceptions.py +1 -6
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/loader.py +15 -1
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/parameters/parser.py +23 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/schemas/extractor.py +17 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/generator/client_generator.py +20 -5
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/schema_resolver.py +11 -3
- {pyopenapi_gen-0.10.1 → 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.1 → 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.1 → pyopenapi_gen-0.11.0}/tests/types/test_type_service.py +28 -25
- pyopenapi_gen-0.10.1/poetry.lock +0 -2915
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.bandit +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.cursor/mcp.json +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.cursor/rules/architecture.mdc +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.cursor/rules/coding-conventions.mdc +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.cursor/rules/project-goal.mdc +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.cursor/rules/testing.mdc +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/BRANCH_PROTECTION.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/CLAUDE_CONFIGURATION.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/CODEOWNERS +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/dependabot.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/ci.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/claude-auto-approve.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/claude-review-trigger.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/claude.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/pr-checks.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/production-release.yml.backup +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/promote-to-staging.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/semantic-release.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/staging-publish.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.github/workflows/testpypi-publish.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.python-version +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/.vscode/settings.json +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/CONTRIBUTING.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/LICENSE +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/README.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/README.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/architecture.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/endpoint_visitor.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/helpers.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/ir_models.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/line_writer.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/loader.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/model_visitor.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/render_context.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/docs/unified_type_resolution.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/input/minimal_swagger.json +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/input/minimal_syntax_test.json +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/input/test_name_collision_spec.json +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/mkdocs.yml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/__main__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/cli.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/file_manager.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/import_collector.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/context/render_context.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/auth/base.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/auth/plugins.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/http_transport.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/post_processor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/operations/request_body.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/parameters/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/responses/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/responses/parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/loader/schemas/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/pagination.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/cyclic_properties.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/direct_cycle.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/existing_schema.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/list_response.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/missing_ref.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/new_schema.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/stripped_suffix.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/resolve_schema_ref.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/common/type_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/context.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/cycle_helpers.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/all_of_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/any_of_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/array_items_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/one_of_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/keywords/properties_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/schema_finalizer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/schema_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/transformers/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/transformers/inline_enum_extractor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/transformers/inline_object_promoter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/parsing/unified_cycle_detection.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/postprocess_manager.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/schemas.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/streaming_helpers.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/telemetry.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/warning_collector.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/code_writer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/documentation_writer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/line_writer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core/writers/python_construct_renderer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/core_package_template/README.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emit/models_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/client_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/core_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/docs_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/endpoints_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/exceptions_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/emitters/models_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/generator/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/endpoint_utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_cleaner.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_helper.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/array_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/composition_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/finalizer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/named_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/object_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/primitive_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/type_resolution/resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/helpers/url_utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/http_types.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/ir.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/py.typed +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/contracts/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/contracts/protocols.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/contracts/types.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/reference_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/resolvers/response_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/services/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/services/type_service.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/strategies/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/types/strategies/response_strategy.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/CLAUDE.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/client_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/docs_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/endpoint_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/docstring_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/endpoint_method_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/request_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/response_handler_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/generators/url_args_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/processors/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/processors/import_analyzer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/endpoint/processors/parameter_processor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/exception_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/alias_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/dataclass_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/enum_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/model/model_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/src/pyopenapi_gen/visit/visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/auth/auth_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/auth/test_auth_base.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/auth/test_auth_plugins.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/cli/cli_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_backup_diff.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_edge_cases.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_edge_cases_comprehensive.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/cli/test_cli_internal_utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/cli/test_http_pagination_cli.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/context/context_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/context/test_file_manager.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/context/test_import_collector.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/context/test_render_context.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/context/test_render_context_imports.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/context/test_render_context_relative_paths.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/core_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/loader/test_extractor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/helpers_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_cyclic_properties.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_direct_cycle.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_existing_schema.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_list_response.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_missing_ref.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_new_schema.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/common/ref_resolution/helpers/test_stripped_suffix.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/keywords_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_all_of_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_any_of_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_array_items_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_one_of_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/keywords/test_properties_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/parsing_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_context.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_cycle_detection.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_cycle_helpers.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_improved_schema_naming.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_inline_enum_extractor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_inline_object_promoter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_logging.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_ref_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_schema_finalizer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_schema_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_schema_parser_list_response.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/parsing/test_type_parser.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_dataclass_serialization.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_detect_circular_imports.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_edge_cases_integration.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_edge_cases_systematic.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_exceptions_module.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_forward_references.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_http_transport.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_import_resolution.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_ir.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_ir_schema.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_loader.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_loader_extensive.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_loader_invalid_refs.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_loader_malformed.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_loader_media_types.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_pagination.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_parsing_context.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_protocol_defaults.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_schema_parser_specific_case.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_schemas.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_simple_self_ref_check.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_streaming_helpers.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_telemetry.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_telemetry_client.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/test_warning_collector.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/writers/test_code_writer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/writers/test_documentation_writer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/writers/test_line_writer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/writers/test_python_construct_renderer_json_wizard.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/core/writers/writers_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/emitters_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_client_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_docs_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_duplicate_operations.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_endpoints_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_exceptions_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_list_response_generation.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/emitters/test_models_emitter.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/end_to_end/test_dataclass_serialization_e2e.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/examples/test_developer_experience_demo.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/generation/generation_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/generation/test_external_core_package.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/generation_issues/specs/minimal_addmessage_like.json +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/generation_issues/test_addmessage_like_issues.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/generation_issues/test_agent_include_parameter_typing.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/generation_issues/test_message_batch_response_issue.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/helpers_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_array_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_endpoint_utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_endpoint_utils_extended.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_get_endpoint_return_types.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_named_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_named_type_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_object_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_put_endpoint_return_types.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_type_cleaner.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_type_helper.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_url_utils.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/helpers/test_utils_helpers.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/integration/test_generated_code_structure.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/integrations/integrations_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/integrations/test_business_swagger_message_type.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/integrations/test_end_to_end_business_swagger.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/integrations/test_end_to_end_petstore.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/integrations/test_name_collisions.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/specs/response_unwrapping_spec.yaml +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/test_analysis_overview.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/test_init.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/test_business_swagger_integration.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/test_contracts_types.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/test_reference_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/test_response_resolver.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/test_response_strategy.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/types/test_response_strategy_simplified.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/generators_analysis.md +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_dataclass_integration.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_docstring_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_endpoint_method_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_match_case_response.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_request_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_response_handler_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_response_handler_generator_strategy.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_signature_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/generators/test_url_args_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/test_import_analyzer.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/test_import_analyzer.py.bak +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/processors/test_parameter_processor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/endpoint/test_endpoint_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/model/__init__.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/model/test_alias_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/model/test_dataclass_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/model/test_dataclass_generator_json_wizard.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/model/test_enum_generator.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/test_client_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/test_model_visitor.py +0 -0
- {pyopenapi_gen-0.10.1 → pyopenapi_gen-0.11.0}/tests/visit/test_visitor.py +0 -0
@@ -1,6 +1,160 @@
|
|
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
|
+
|
144
|
+
## v0.10.2 (2025-07-17)
|
145
|
+
|
146
|
+
### Bug Fixes
|
147
|
+
|
148
|
+
- **docs**: Update CLAUDE.md with recent publishing automation improvements
|
149
|
+
([`a3eb8d2`](https://github.com/mindhiveoy/pyopenapi_gen/commit/a3eb8d24e08e90f38bfa83c7024941a14ae3e599))
|
150
|
+
|
151
|
+
Document the successful implementation of: - Twine-based PyPI publishing workflow - Enhanced token
|
152
|
+
validation and error handling - Automated branch synchronization system - PYPI_API_TOKEN secret
|
153
|
+
configuration
|
154
|
+
|
155
|
+
This update ensures the documentation reflects the current robust CI/CD publishing state.
|
156
|
+
|
157
|
+
|
4
158
|
## v0.10.1 (2025-07-17)
|
5
159
|
|
6
160
|
### Bug Fixes
|
@@ -780,4 +780,11 @@ These principles ensure readers understand the reasoning and context before gett
|
|
780
780
|
Do what has been asked; nothing more, nothing less.
|
781
781
|
NEVER create files unless they're absolutely necessary for achieving your goal.
|
782
782
|
ALWAYS prefer editing an existing file to creating a new one.
|
783
|
-
NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
|
783
|
+
NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
|
784
|
+
|
785
|
+
## Recent Updates
|
786
|
+
|
787
|
+
- ✅ Enhanced PyPI publishing workflow with twine-based automation
|
788
|
+
- ✅ Added comprehensive PyPI token validation and error handling
|
789
|
+
- ✅ Implemented automated branch synchronization after releases
|
790
|
+
- ✅ Configured PYPI_API_TOKEN secret for reliable CI/CD publishing
|
@@ -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
|