pyopenapi-gen 0.14.2__tar.gz → 0.15.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.
Files changed (337) hide show
  1. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/semantic-release.yml +6 -0
  2. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.gitignore +5 -1
  3. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/CHANGELOG.md +97 -0
  4. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/Makefile +7 -2
  5. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/PKG-INFO +1 -1
  6. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/coverage.xml +362 -329
  7. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/input/business_swagger.json +390 -210
  8. pyopenapi_gen-0.15.0/poetry.lock +3139 -0
  9. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/pyproject.toml +4 -4
  10. pyopenapi_gen-0.15.0/scripts/validate_version_sync.py +152 -0
  11. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/__init__.py +1 -1
  12. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/context/render_context.py +97 -1
  13. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/writers/python_construct_renderer.py +2 -15
  14. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/resolvers/schema_resolver.py +20 -2
  15. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/services/type_service.py +4 -0
  16. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/model/dataclass_generator.py +2 -1
  17. pyopenapi_gen-0.15.0/tests/context/test_core_import_path.py +209 -0
  18. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/writers/test_python_construct_renderer_json_wizard.py +4 -4
  19. pyopenapi_gen-0.15.0/tests/types/test_missing_imports_bug.py +202 -0
  20. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/test_dataclass_generator_json_wizard.py +2 -2
  21. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/test_model_visitor.py +6 -4
  22. pyopenapi_gen-0.14.2/poetry.lock +0 -2812
  23. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.bandit +0 -0
  24. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.cursor/mcp.json +0 -0
  25. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.cursor/rules/architecture.mdc +0 -0
  26. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.cursor/rules/coding-conventions.mdc +0 -0
  27. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.cursor/rules/project-goal.mdc +0 -0
  28. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.cursor/rules/testing.mdc +0 -0
  29. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/BRANCH_PROTECTION.md +0 -0
  30. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/CLAUDE_CONFIGURATION.md +0 -0
  31. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/CODEOWNERS +0 -0
  32. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  33. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  34. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/dependabot.yml +0 -0
  35. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/ci.yml +0 -0
  36. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/claude-auto-approve.yml +0 -0
  37. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/claude-review-trigger.yml +0 -0
  38. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/claude.yml +0 -0
  39. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/pr-checks.yml +0 -0
  40. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/production-release.yml.backup +0 -0
  41. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/promote-to-staging.yml +0 -0
  42. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/staging-publish.yml +0 -0
  43. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.github/workflows/testpypi-publish.yml +0 -0
  44. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.python-version +0 -0
  45. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/.vscode/settings.json +0 -0
  46. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/CLAUDE.md +0 -0
  47. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/CONTRIBUTING.md +0 -0
  48. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/LICENSE +0 -0
  49. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/README.md +0 -0
  50. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/README.md +0 -0
  51. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/architecture.md +0 -0
  52. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/endpoint_visitor.md +0 -0
  53. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/helpers.md +0 -0
  54. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/ir_models.md +0 -0
  55. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/line_writer.md +0 -0
  56. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/loader.md +0 -0
  57. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/model_visitor.md +0 -0
  58. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/release-automation.md +0 -0
  59. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/render_context.md +0 -0
  60. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/docs/unified_type_resolution.md +0 -0
  61. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/input/minimal_swagger.json +0 -0
  62. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/input/minimal_syntax_test.json +0 -0
  63. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/input/test_name_collision_spec.json +0 -0
  64. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/mkdocs.yml +0 -0
  65. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/__main__.py +0 -0
  66. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/cli.py +0 -0
  67. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/context/CLAUDE.md +0 -0
  68. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/context/file_manager.py +0 -0
  69. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/context/import_collector.py +0 -0
  70. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/CLAUDE.md +0 -0
  71. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/__init__.py +0 -0
  72. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/auth/base.py +0 -0
  73. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/auth/plugins.py +0 -0
  74. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/exceptions.py +0 -0
  75. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/http_status_codes.py +0 -0
  76. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/http_transport.py +0 -0
  77. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/__init__.py +0 -0
  78. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/loader.py +0 -0
  79. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/operations/__init__.py +0 -0
  80. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/operations/parser.py +0 -0
  81. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/operations/post_processor.py +0 -0
  82. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/operations/request_body.py +0 -0
  83. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/parameters/__init__.py +0 -0
  84. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/parameters/parser.py +0 -0
  85. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/responses/__init__.py +0 -0
  86. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/responses/parser.py +0 -0
  87. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/schemas/__init__.py +0 -0
  88. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/loader/schemas/extractor.py +0 -0
  89. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/pagination.py +0 -0
  90. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/__init__.py +0 -0
  91. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/__init__.py +0 -0
  92. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/__init__.py +0 -0
  93. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/__init__.py +0 -0
  94. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/cyclic_properties.py +0 -0
  95. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/direct_cycle.py +0 -0
  96. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/existing_schema.py +0 -0
  97. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/list_response.py +0 -0
  98. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/missing_ref.py +0 -0
  99. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/new_schema.py +0 -0
  100. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/stripped_suffix.py +0 -0
  101. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/resolve_schema_ref.py +0 -0
  102. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/common/type_parser.py +0 -0
  103. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/context.py +0 -0
  104. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/cycle_helpers.py +0 -0
  105. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/keywords/__init__.py +0 -0
  106. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/keywords/all_of_parser.py +0 -0
  107. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/keywords/any_of_parser.py +0 -0
  108. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/keywords/array_items_parser.py +0 -0
  109. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/keywords/one_of_parser.py +0 -0
  110. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/keywords/properties_parser.py +0 -0
  111. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/schema_finalizer.py +0 -0
  112. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/schema_parser.py +0 -0
  113. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/transformers/__init__.py +0 -0
  114. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/transformers/inline_enum_extractor.py +0 -0
  115. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/transformers/inline_object_promoter.py +0 -0
  116. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/parsing/unified_cycle_detection.py +0 -0
  117. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/postprocess_manager.py +0 -0
  118. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/schemas.py +0 -0
  119. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/streaming_helpers.py +0 -0
  120. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/telemetry.py +0 -0
  121. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/utils.py +0 -0
  122. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/warning_collector.py +0 -0
  123. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/writers/code_writer.py +0 -0
  124. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/writers/documentation_writer.py +0 -0
  125. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core/writers/line_writer.py +0 -0
  126. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/core_package_template/README.md +0 -0
  127. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emit/models_emitter.py +0 -0
  128. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/CLAUDE.md +0 -0
  129. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/client_emitter.py +0 -0
  130. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/core_emitter.py +0 -0
  131. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/docs_emitter.py +0 -0
  132. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/endpoints_emitter.py +0 -0
  133. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/exceptions_emitter.py +0 -0
  134. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/emitters/models_emitter.py +0 -0
  135. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/generator/CLAUDE.md +0 -0
  136. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/generator/client_generator.py +0 -0
  137. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/CLAUDE.md +0 -0
  138. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/__init__.py +0 -0
  139. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/endpoint_utils.py +0 -0
  140. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_cleaner.py +0 -0
  141. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_helper.py +0 -0
  142. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/__init__.py +0 -0
  143. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/array_resolver.py +0 -0
  144. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/composition_resolver.py +0 -0
  145. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/finalizer.py +0 -0
  146. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/named_resolver.py +0 -0
  147. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/object_resolver.py +0 -0
  148. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/primitive_resolver.py +0 -0
  149. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/type_resolution/resolver.py +0 -0
  150. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/helpers/url_utils.py +0 -0
  151. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/http_types.py +0 -0
  152. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/ir.py +0 -0
  153. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/py.typed +0 -0
  154. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/CLAUDE.md +0 -0
  155. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/__init__.py +0 -0
  156. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/contracts/__init__.py +0 -0
  157. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/contracts/protocols.py +0 -0
  158. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/contracts/types.py +0 -0
  159. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/resolvers/__init__.py +0 -0
  160. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/resolvers/reference_resolver.py +0 -0
  161. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/resolvers/response_resolver.py +0 -0
  162. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/services/__init__.py +0 -0
  163. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/strategies/__init__.py +0 -0
  164. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/types/strategies/response_strategy.py +0 -0
  165. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/CLAUDE.md +0 -0
  166. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/client_visitor.py +0 -0
  167. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/docs_visitor.py +0 -0
  168. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/__init__.py +0 -0
  169. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/endpoint_visitor.py +0 -0
  170. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/__init__.py +0 -0
  171. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/docstring_generator.py +0 -0
  172. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/endpoint_method_generator.py +0 -0
  173. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/request_generator.py +0 -0
  174. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/response_handler_generator.py +0 -0
  175. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/signature_generator.py +0 -0
  176. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/generators/url_args_generator.py +0 -0
  177. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/processors/__init__.py +0 -0
  178. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/processors/import_analyzer.py +0 -0
  179. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/endpoint/processors/parameter_processor.py +0 -0
  180. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/exception_visitor.py +0 -0
  181. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/model/__init__.py +0 -0
  182. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/model/alias_generator.py +0 -0
  183. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/model/enum_generator.py +0 -0
  184. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/model/model_visitor.py +0 -0
  185. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/src/pyopenapi_gen/visit/visitor.py +0 -0
  186. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/__init__.py +0 -0
  187. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/auth/auth_analysis.md +0 -0
  188. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/auth/test_auth_base.py +0 -0
  189. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/auth/test_auth_plugins.py +0 -0
  190. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/cli/cli_analysis.md +0 -0
  191. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/cli/test_cli_backup_diff.py +0 -0
  192. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/cli/test_cli_edge_cases.py +0 -0
  193. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/cli/test_cli_edge_cases_comprehensive.py +0 -0
  194. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/cli/test_cli_internal_utils.py +0 -0
  195. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/cli/test_http_pagination_cli.py +0 -0
  196. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/context/context_analysis.md +0 -0
  197. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/context/test_file_manager.py +0 -0
  198. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/context/test_import_collector.py +0 -0
  199. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/context/test_render_context.py +0 -0
  200. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/context/test_render_context_imports.py +0 -0
  201. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/context/test_render_context_relative_paths.py +0 -0
  202. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/core_analysis.md +0 -0
  203. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/loader/parameters/test_inline_enum_array_params.py +0 -0
  204. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/loader/test_extractor.py +0 -0
  205. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/loader/test_top_level_enum_extraction.py +0 -0
  206. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/helpers_analysis.md +0 -0
  207. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_cyclic_properties.py +0 -0
  208. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_direct_cycle.py +0 -0
  209. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_existing_schema.py +0 -0
  210. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_list_response.py +0 -0
  211. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_missing_ref.py +0 -0
  212. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_new_schema.py +0 -0
  213. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/common/ref_resolution/helpers/test_stripped_suffix.py +0 -0
  214. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/__init__.py +0 -0
  215. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/keywords_analysis.md +0 -0
  216. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/test_all_of_parser.py +0 -0
  217. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/test_any_of_parser.py +0 -0
  218. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/test_array_items_parser.py +0 -0
  219. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/test_one_of_parser.py +0 -0
  220. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/keywords/test_properties_parser.py +0 -0
  221. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/parsing_analysis.md +0 -0
  222. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_context.py +0 -0
  223. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_cycle_detection.py +0 -0
  224. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_cycle_helpers.py +0 -0
  225. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_improved_schema_naming.py +0 -0
  226. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_inline_enum_extractor.py +0 -0
  227. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_inline_object_promoter.py +0 -0
  228. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_logging.py +0 -0
  229. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_ref_resolver.py +0 -0
  230. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_schema_finalizer.py +0 -0
  231. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_schema_parser.py +0 -0
  232. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_schema_parser_list_response.py +0 -0
  233. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/parsing/test_type_parser.py +0 -0
  234. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_dataclass_serialization.py +0 -0
  235. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_detect_circular_imports.py +0 -0
  236. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_edge_cases_integration.py +0 -0
  237. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_edge_cases_systematic.py +0 -0
  238. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_exceptions_module.py +0 -0
  239. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_forward_references.py +0 -0
  240. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_http_transport.py +0 -0
  241. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_import_resolution.py +0 -0
  242. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_ir.py +0 -0
  243. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_ir_schema.py +0 -0
  244. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_loader.py +0 -0
  245. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_loader_extensive.py +0 -0
  246. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_loader_invalid_refs.py +0 -0
  247. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_loader_malformed.py +0 -0
  248. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_loader_media_types.py +0 -0
  249. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_pagination.py +0 -0
  250. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_parsing_context.py +0 -0
  251. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_protocol_defaults.py +0 -0
  252. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_schema_parser_specific_case.py +0 -0
  253. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_schemas.py +0 -0
  254. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_simple_self_ref_check.py +0 -0
  255. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_streaming_helpers.py +0 -0
  256. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_telemetry.py +0 -0
  257. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_telemetry_client.py +0 -0
  258. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_utils.py +0 -0
  259. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/test_warning_collector.py +0 -0
  260. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/writers/test_code_writer.py +0 -0
  261. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/writers/test_documentation_writer.py +0 -0
  262. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/writers/test_line_writer.py +0 -0
  263. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/core/writers/writers_analysis.md +0 -0
  264. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/emitters_analysis.md +0 -0
  265. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_client_emitter.py +0 -0
  266. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_docs_emitter.py +0 -0
  267. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_duplicate_operations.py +0 -0
  268. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_endpoints_emitter.py +0 -0
  269. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_exceptions_emitter.py +0 -0
  270. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_list_response_generation.py +0 -0
  271. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/emitters/test_models_emitter.py +0 -0
  272. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/end_to_end/test_dataclass_serialization_e2e.py +0 -0
  273. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/examples/test_developer_experience_demo.py +0 -0
  274. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/generation/generation_analysis.md +0 -0
  275. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/generation/test_external_core_package.py +0 -0
  276. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/generation_issues/specs/minimal_addmessage_like.json +0 -0
  277. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/generation_issues/test_addmessage_like_issues.py +0 -0
  278. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/generation_issues/test_agent_include_parameter_typing.py +0 -0
  279. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/generation_issues/test_message_batch_response_issue.py +0 -0
  280. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/helpers_analysis.md +0 -0
  281. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_array_resolver.py +0 -0
  282. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_endpoint_utils.py +0 -0
  283. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_endpoint_utils_extended.py +0 -0
  284. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_get_endpoint_return_types.py +0 -0
  285. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_named_resolver.py +0 -0
  286. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_named_type_resolver.py +0 -0
  287. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_object_resolver.py +0 -0
  288. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_put_endpoint_return_types.py +0 -0
  289. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_type_cleaner.py +0 -0
  290. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_type_helper.py +0 -0
  291. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_url_utils.py +0 -0
  292. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/helpers/test_utils_helpers.py +0 -0
  293. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/integration/test_generated_code_structure.py +0 -0
  294. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/integrations/integrations_analysis.md +0 -0
  295. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/integrations/test_business_swagger_message_type.py +0 -0
  296. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/integrations/test_end_to_end_business_swagger.py +0 -0
  297. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/integrations/test_end_to_end_petstore.py +0 -0
  298. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/integrations/test_name_collisions.py +0 -0
  299. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/specs/response_unwrapping_spec.yaml +0 -0
  300. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/test_analysis_overview.md +0 -0
  301. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/test_init.py +0 -0
  302. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/__init__.py +0 -0
  303. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_business_swagger_integration.py +0 -0
  304. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_contracts_types.py +0 -0
  305. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_reference_resolver.py +0 -0
  306. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_response_resolver.py +0 -0
  307. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_response_strategy.py +0 -0
  308. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_response_strategy_simplified.py +0 -0
  309. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_schema_resolver.py +0 -0
  310. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_schema_resolver_enums.py +0 -0
  311. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/types/test_type_service.py +0 -0
  312. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/__init__.py +0 -0
  313. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/__init__.py +0 -0
  314. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/__init__.py +0 -0
  315. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/generators_analysis.md +0 -0
  316. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_dataclass_integration.py +0 -0
  317. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_docstring_generator.py +0 -0
  318. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_endpoint_method_generator.py +0 -0
  319. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_match_case_response.py +0 -0
  320. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_request_generator.py +0 -0
  321. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_response_handler_generator.py +0 -0
  322. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_response_handler_generator_strategy.py +0 -0
  323. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_signature_generator.py +0 -0
  324. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/generators/test_url_args_generator.py +0 -0
  325. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/processors/__init__.py +0 -0
  326. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/processors/test_import_analyzer.py +0 -0
  327. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/processors/test_import_analyzer.py.bak +0 -0
  328. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/processors/test_parameter_processor.py +0 -0
  329. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/endpoint/test_endpoint_visitor.py +0 -0
  330. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/__init__.py +0 -0
  331. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/test_alias_generator.py +0 -0
  332. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/test_dataclass_generator.py +0 -0
  333. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/test_enum_generator.py +0 -0
  334. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/test_json_value_integration.py +0 -0
  335. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/model/test_json_value_wrapper.py +0 -0
  336. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/test_client_visitor.py +0 -0
  337. {pyopenapi_gen-0.14.2 → pyopenapi_gen-0.15.0}/tests/visit/test_visitor.py +0 -0
@@ -48,6 +48,12 @@ jobs:
48
48
  run: |
49
49
  poetry install --with dev
50
50
 
51
+ - name: Validate version synchronisation
52
+ run: |
53
+ echo "🔍 Checking that all version files are synchronised..."
54
+ poetry run python scripts/validate_version_sync.py
55
+ echo "✅ All version files are in sync"
56
+
51
57
  - name: Run comprehensive quality checks
52
58
  run: |
53
59
  poetry run black --check src/ tests/
@@ -195,4 +195,8 @@ _process/
195
195
  coverage_reports/
196
196
 
197
197
  logs
198
- agent-plan.json
198
+ agent-plan.json
199
+
200
+ # Bug reports and analysis documents (keep in _process/ folder)
201
+ *-bug-report.md
202
+ *-analysis.md
@@ -1,6 +1,91 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v0.15.0 (2025-10-11)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **release**: Correct semantic-release configuration and sync version to 0.14.3
9
+ ([`cfa0813`](https://github.com/mindhiveoy/pyopenapi_gen/commit/cfa081393657acfaa0a1c6a29243746748872b28))
10
+
11
+ Problem: - semantic-release v9 was configured with deprecated `version_pattern` syntax - This caused
12
+ __init__.py to not be automatically updated during releases - Version validation failed in CI
13
+ because __init__.py (0.10.2) != pyproject.toml (0.14.3)
14
+
15
+ Solution: - Updated semantic-release config to use `version_variables` (v9+ syntax) - Synced
16
+ __init__.py version to 0.14.3 to match pyproject.toml - Now semantic-release will automatically
17
+ update all version locations
18
+
19
+ Changes: - pyproject.toml: Changed version_pattern → version_variables -
20
+ src/pyopenapi_gen/__init__.py: Updated __version__ from 0.10.2 → 0.14.3
21
+
22
+ This ensures future releases automatically sync all version files.
23
+
24
+ - **types**: Correct self-import detection to avoid false positives with similar filenames
25
+ ([`cfee36e`](https://github.com/mindhiveoy/pyopenapi_gen/commit/cfee36e4c8c57d84c0c1d967a7936c5daddf2197))
26
+
27
+ Problem: - Self-import check used .endswith() for filename comparison - This caused false positives
28
+ when one filename was a suffix of another - Example:
29
+ "vector_index_with_embedding_response_data.py".endswith("embedding_response_data.py") == True -
30
+ Result: Missing imports for forward referenced types, causing NameError at runtime
31
+
32
+ Solution: - Changed to exact basename comparison using os.path.basename() - Only files with
33
+ identical basenames are treated as self-imports - Added comprehensive regression tests covering: -
34
+ Similar module names (not self-imports) - Actual self-references (forward refs without imports) -
35
+ Exact filename matching requirements
36
+
37
+ Changes: - src/pyopenapi_gen/types/resolvers/schema_resolver.py: Fixed self-import detection logic -
38
+ tests/types/test_missing_imports_bug.py: Added 3 regression tests -
39
+ tests/visit/test_model_visitor.py: Updated test expectations for correct import behavior -
40
+ .gitignore: Added patterns to ignore bug report and analysis documents
41
+
42
+ Testing: - All 1309 tests pass - Verified with real business_swagger.json that previously failed -
43
+ Generated code now includes correct imports for cross-module references
44
+
45
+ ### Features
46
+
47
+ - **versioning**: Add version synchronization validation script and integrate into quality checks
48
+ ([`de2ecb8`](https://github.com/mindhiveoy/pyopenapi_gen/commit/de2ecb8c63711230e890bae1cf79f22d5594c551))
49
+
50
+
51
+ ## v0.14.3 (2025-10-11)
52
+
53
+ ### Bug Fixes
54
+
55
+ - **core**: Resolve ImportError for sibling core packages in shared mode
56
+ ([`5f76cac`](https://github.com/mindhiveoy/pyopenapi_gen/commit/5f76caca6f13ef786e8920fb52dca9e1d02f5dbe))
57
+
58
+ Fix ImportError when generating clients with shared core packages by using absolute imports instead
59
+ of relative imports for root-level sibling packages.
60
+
61
+ Root cause: Python doesn't support relative imports beyond top-level packages. When core/ and
62
+ businessapi/ are siblings at root, "from ..core" fails because there's no parent package to
63
+ traverse.
64
+
65
+ Implementation: - Modified RenderContext.add_import() to use absolute imports for core packages -
66
+ Added get_core_import_path() helper for import path calculation - Updated dataclass_generator.py
67
+ and python_construct_renderer.py - Core imports now use: "from core.schemas import BaseSchema" -
68
+ Previous broken format: "from ..core.schemas import BaseSchema"
69
+
70
+ Testing: - Added comprehensive test suite with 7 scenarios for import path calculation - Updated
71
+ existing test assertions to expect absolute import format - All 1306 tests passing with 88.18%
72
+ coverage - Verified with business_swagger.json (1127 schemas, 117 operations) - Import validation:
73
+ PYTHONPATH=/path/to/output python -c "from businessapi.client import APIClient"
74
+
75
+ Files modified: - src/pyopenapi_gen/context/render_context.py -
76
+ src/pyopenapi_gen/core/writers/python_construct_renderer.py -
77
+ src/pyopenapi_gen/visit/model/dataclass_generator.py -
78
+ tests/core/writers/test_python_construct_renderer_json_wizard.py -
79
+ tests/visit/model/test_dataclass_generator_json_wizard.py - tests/visit/test_model_visitor.py
80
+
81
+ Files added: - tests/context/test_core_import_path.py
82
+
83
+ ### Chores
84
+
85
+ - **deps**: Update dependencies in poetry.lock
86
+ ([`fcfa26c`](https://github.com/mindhiveoy/pyopenapi_gen/commit/fcfa26c47b4cbce01eb7a4ccd68c02f5bf4d8c02))
87
+
88
+
4
89
  ## v0.14.2 (2025-10-10)
5
90
 
6
91
  ### Bug Fixes
@@ -74,6 +159,11 @@ Technical context: - mypy --strict requires explicit types for union type assign
74
159
 
75
160
  Resolves: mypy error "Incompatible types in assignment (expression has type...)"
76
161
 
162
+ ### Chores
163
+
164
+ - Merge latest changes from main
165
+ ([`44487cc`](https://github.com/mindhiveoy/pyopenapi_gen/commit/44487cce571920b5e2c34814c38cbab67b956097))
166
+
77
167
  ### Code Style
78
168
 
79
169
  - **format**: Apply Black formatting to modernised type syntax changes
@@ -788,6 +878,13 @@ All 1,265 tests now pass consistently across environments.
788
878
  testing still handled by pr-checks.yml for PRs - This unblocks PR merging while avoiding test
789
879
  duplication
790
880
 
881
+ - **ci**: Ensure Poetry is available in PATH for semantic-release build command
882
+ ([`0a68f6e`](https://github.com/mindhiveoy/pyopenapi_gen/commit/0a68f6e4ace7fb998c4ddec14c7cf67713d7ce73))
883
+
884
+ - Add explicit PATH setup for Poetry before semantic-release step - Add verification step to confirm
885
+ Poetry availability - Fixes 'poetry: command not found' error in semantic release pipeline -
886
+ Resolves build command failure preventing automated releases
887
+
791
888
  - **ci**: Ensure Poetry is available in PATH for semantic-release build command
792
889
  ([#46](https://github.com/mindhiveoy/pyopenapi_gen/pull/46),
793
890
  [`3734aac`](https://github.com/mindhiveoy/pyopenapi_gen/commit/3734aacb74eda746375c7d88c45715a1f18f33a1))
@@ -66,11 +66,15 @@ security: deps
66
66
  @echo "🔒 Running security checks..."
67
67
  poetry run bandit -r src/ -c pyproject.toml -f json -o coverage_reports/bandit.json || poetry run bandit -r src/ -c pyproject.toml
68
68
 
69
+ version-check: deps
70
+ @echo "🔍 Validating version synchronisation..."
71
+ poetry run python scripts/validate_version_sync.py
72
+
69
73
  # Combined quality commands
70
74
  quality-fix: format lint-fix
71
75
  @echo "✅ Auto-fixed all possible quality issues"
72
76
 
73
- quality: format-check lint typecheck security
77
+ quality: format-check lint typecheck security version-check
74
78
  @echo "✅ All quality checks passed"
75
79
 
76
80
  # Testing commands
@@ -163,7 +167,7 @@ help:
163
167
  @echo " clean - Clean all build artifacts and virtual environment"
164
168
  @echo ""
165
169
  @echo "Quality commands:"
166
- @echo " quality - Run all quality checks (format, lint, typecheck, security)"
170
+ @echo " quality - Run all quality checks (format, lint, typecheck, security, version)"
167
171
  @echo " quality-fix - Auto-fix formatting and linting issues"
168
172
  @echo " format - Format code with Black"
169
173
  @echo " format-check - Check code formatting"
@@ -171,6 +175,7 @@ help:
171
175
  @echo " lint-fix - Auto-fix linting issues"
172
176
  @echo " typecheck - Type check with mypy"
173
177
  @echo " security - Security scan with Bandit"
178
+ @echo " version-check - Validate version synchronisation across files"
174
179
  @echo ""
175
180
  @echo "Testing commands:"
176
181
  @echo " test - Run all tests with coverage (parallel, 85% required)"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyopenapi-gen
3
- Version: 0.14.2
3
+ Version: 0.15.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