pyopenapi-gen 0.12.1__tar.gz → 0.14.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 (333) hide show
  1. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/CHANGELOG.md +168 -0
  2. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/CLAUDE.md +0 -5
  3. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/PKG-INFO +1 -1
  4. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/coverage.xml +572 -425
  5. pyopenapi_gen-0.14.0/docs/release-automation.md +191 -0
  6. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/pyproject.toml +2 -2
  7. pyopenapi_gen-0.14.0/src/pyopenapi_gen/core/http_status_codes.py +220 -0
  8. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/schema_parser.py +50 -5
  9. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/postprocess_manager.py +85 -12
  10. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/python_construct_renderer.py +5 -1
  11. pyopenapi_gen-0.14.0/src/pyopenapi_gen/emitters/exceptions_emitter.py +186 -0
  12. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/generator/client_generator.py +4 -2
  13. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/schema_resolver.py +67 -10
  14. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/response_handler_generator.py +3 -2
  15. pyopenapi_gen-0.14.0/src/pyopenapi_gen/visit/exception_visitor.py +90 -0
  16. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_schema_parser.py +2 -1
  17. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_exceptions_emitter.py +9 -5
  18. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_models_emitter.py +3 -3
  19. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_match_case_response.py +5 -5
  20. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_response_handler_generator.py +5 -3
  21. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_response_handler_generator_strategy.py +3 -2
  22. pyopenapi_gen-0.12.1/src/pyopenapi_gen/emitters/exceptions_emitter.py +0 -52
  23. pyopenapi_gen-0.12.1/src/pyopenapi_gen/visit/exception_visitor.py +0 -52
  24. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.bandit +0 -0
  25. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.cursor/mcp.json +0 -0
  26. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.cursor/rules/architecture.mdc +0 -0
  27. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.cursor/rules/coding-conventions.mdc +0 -0
  28. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.cursor/rules/project-goal.mdc +0 -0
  29. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.cursor/rules/testing.mdc +0 -0
  30. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/BRANCH_PROTECTION.md +0 -0
  31. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/CLAUDE_CONFIGURATION.md +0 -0
  32. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/CODEOWNERS +0 -0
  33. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  34. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  35. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/dependabot.yml +0 -0
  36. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/ci.yml +0 -0
  37. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/claude-auto-approve.yml +0 -0
  38. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/claude-review-trigger.yml +0 -0
  39. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/claude.yml +0 -0
  40. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/pr-checks.yml +0 -0
  41. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/production-release.yml.backup +0 -0
  42. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/promote-to-staging.yml +0 -0
  43. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/semantic-release.yml +0 -0
  44. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/staging-publish.yml +0 -0
  45. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.github/workflows/testpypi-publish.yml +0 -0
  46. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.gitignore +0 -0
  47. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.python-version +0 -0
  48. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/.vscode/settings.json +0 -0
  49. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/CONTRIBUTING.md +0 -0
  50. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/LICENSE +0 -0
  51. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/Makefile +0 -0
  52. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/README.md +0 -0
  53. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/README.md +0 -0
  54. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/architecture.md +0 -0
  55. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/endpoint_visitor.md +0 -0
  56. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/helpers.md +0 -0
  57. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/ir_models.md +0 -0
  58. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/line_writer.md +0 -0
  59. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/loader.md +0 -0
  60. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/model_visitor.md +0 -0
  61. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/render_context.md +0 -0
  62. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/docs/unified_type_resolution.md +0 -0
  63. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/input/business_swagger.json +0 -0
  64. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/input/minimal_swagger.json +0 -0
  65. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/input/minimal_syntax_test.json +0 -0
  66. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/input/test_name_collision_spec.json +0 -0
  67. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/mkdocs.yml +0 -0
  68. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/poetry.lock +0 -0
  69. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/__init__.py +0 -0
  70. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/__main__.py +0 -0
  71. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/cli.py +0 -0
  72. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/CLAUDE.md +0 -0
  73. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/file_manager.py +0 -0
  74. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/import_collector.py +0 -0
  75. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/render_context.py +0 -0
  76. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/CLAUDE.md +0 -0
  77. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/__init__.py +0 -0
  78. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/auth/base.py +0 -0
  79. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/auth/plugins.py +0 -0
  80. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/exceptions.py +0 -0
  81. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/http_transport.py +0 -0
  82. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/__init__.py +0 -0
  83. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/loader.py +0 -0
  84. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/__init__.py +0 -0
  85. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/parser.py +0 -0
  86. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/post_processor.py +0 -0
  87. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/request_body.py +0 -0
  88. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/parameters/__init__.py +0 -0
  89. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/parameters/parser.py +0 -0
  90. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/responses/__init__.py +0 -0
  91. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/responses/parser.py +0 -0
  92. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/schemas/__init__.py +0 -0
  93. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/schemas/extractor.py +0 -0
  94. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/pagination.py +0 -0
  95. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/__init__.py +0 -0
  96. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/__init__.py +0 -0
  97. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/__init__.py +0 -0
  98. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/__init__.py +0 -0
  99. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/cyclic_properties.py +0 -0
  100. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/direct_cycle.py +0 -0
  101. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/existing_schema.py +0 -0
  102. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/list_response.py +0 -0
  103. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/missing_ref.py +0 -0
  104. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/new_schema.py +0 -0
  105. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/stripped_suffix.py +0 -0
  106. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/resolve_schema_ref.py +0 -0
  107. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/type_parser.py +0 -0
  108. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/context.py +0 -0
  109. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/cycle_helpers.py +0 -0
  110. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/__init__.py +0 -0
  111. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/all_of_parser.py +0 -0
  112. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/any_of_parser.py +0 -0
  113. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/array_items_parser.py +0 -0
  114. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/one_of_parser.py +0 -0
  115. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/properties_parser.py +0 -0
  116. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/schema_finalizer.py +0 -0
  117. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/transformers/__init__.py +0 -0
  118. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/transformers/inline_enum_extractor.py +0 -0
  119. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/transformers/inline_object_promoter.py +0 -0
  120. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/unified_cycle_detection.py +0 -0
  121. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/schemas.py +0 -0
  122. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/streaming_helpers.py +0 -0
  123. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/telemetry.py +0 -0
  124. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/utils.py +0 -0
  125. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/warning_collector.py +0 -0
  126. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/code_writer.py +0 -0
  127. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/documentation_writer.py +0 -0
  128. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/line_writer.py +0 -0
  129. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core_package_template/README.md +0 -0
  130. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emit/models_emitter.py +0 -0
  131. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/CLAUDE.md +0 -0
  132. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/client_emitter.py +0 -0
  133. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/core_emitter.py +0 -0
  134. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/docs_emitter.py +0 -0
  135. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/endpoints_emitter.py +0 -0
  136. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/models_emitter.py +0 -0
  137. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/generator/CLAUDE.md +0 -0
  138. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/CLAUDE.md +0 -0
  139. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/__init__.py +0 -0
  140. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/endpoint_utils.py +0 -0
  141. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_cleaner.py +0 -0
  142. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_helper.py +0 -0
  143. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/__init__.py +0 -0
  144. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/array_resolver.py +0 -0
  145. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/composition_resolver.py +0 -0
  146. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/finalizer.py +0 -0
  147. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/named_resolver.py +0 -0
  148. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/object_resolver.py +0 -0
  149. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/primitive_resolver.py +0 -0
  150. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/resolver.py +0 -0
  151. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/url_utils.py +0 -0
  152. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/http_types.py +0 -0
  153. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/ir.py +0 -0
  154. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/py.typed +0 -0
  155. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/CLAUDE.md +0 -0
  156. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/__init__.py +0 -0
  157. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/contracts/__init__.py +0 -0
  158. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/contracts/protocols.py +0 -0
  159. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/contracts/types.py +0 -0
  160. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/__init__.py +0 -0
  161. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/reference_resolver.py +0 -0
  162. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/response_resolver.py +0 -0
  163. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/services/__init__.py +0 -0
  164. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/services/type_service.py +0 -0
  165. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/strategies/__init__.py +0 -0
  166. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/strategies/response_strategy.py +0 -0
  167. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/CLAUDE.md +0 -0
  168. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/client_visitor.py +0 -0
  169. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/docs_visitor.py +0 -0
  170. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/__init__.py +0 -0
  171. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/endpoint_visitor.py +0 -0
  172. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/__init__.py +0 -0
  173. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/docstring_generator.py +0 -0
  174. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/endpoint_method_generator.py +0 -0
  175. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/request_generator.py +0 -0
  176. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/signature_generator.py +0 -0
  177. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/url_args_generator.py +0 -0
  178. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/processors/__init__.py +0 -0
  179. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/processors/import_analyzer.py +0 -0
  180. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/processors/parameter_processor.py +0 -0
  181. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/__init__.py +0 -0
  182. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/alias_generator.py +0 -0
  183. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/dataclass_generator.py +0 -0
  184. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/enum_generator.py +0 -0
  185. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/model_visitor.py +0 -0
  186. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/visitor.py +0 -0
  187. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/__init__.py +0 -0
  188. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/auth/auth_analysis.md +0 -0
  189. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/auth/test_auth_base.py +0 -0
  190. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/auth/test_auth_plugins.py +0 -0
  191. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/cli/cli_analysis.md +0 -0
  192. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_backup_diff.py +0 -0
  193. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_edge_cases.py +0 -0
  194. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_edge_cases_comprehensive.py +0 -0
  195. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_internal_utils.py +0 -0
  196. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/cli/test_http_pagination_cli.py +0 -0
  197. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/context/context_analysis.md +0 -0
  198. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/context/test_file_manager.py +0 -0
  199. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/context/test_import_collector.py +0 -0
  200. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/context/test_render_context.py +0 -0
  201. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/context/test_render_context_imports.py +0 -0
  202. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/context/test_render_context_relative_paths.py +0 -0
  203. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/core_analysis.md +0 -0
  204. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/loader/parameters/test_inline_enum_array_params.py +0 -0
  205. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/loader/test_extractor.py +0 -0
  206. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/loader/test_top_level_enum_extraction.py +0 -0
  207. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/helpers_analysis.md +0 -0
  208. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_cyclic_properties.py +0 -0
  209. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_direct_cycle.py +0 -0
  210. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_existing_schema.py +0 -0
  211. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_list_response.py +0 -0
  212. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_missing_ref.py +0 -0
  213. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_new_schema.py +0 -0
  214. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_stripped_suffix.py +0 -0
  215. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/__init__.py +0 -0
  216. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/keywords_analysis.md +0 -0
  217. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_all_of_parser.py +0 -0
  218. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_any_of_parser.py +0 -0
  219. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_array_items_parser.py +0 -0
  220. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_one_of_parser.py +0 -0
  221. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_properties_parser.py +0 -0
  222. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/parsing_analysis.md +0 -0
  223. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_context.py +0 -0
  224. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_cycle_detection.py +0 -0
  225. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_cycle_helpers.py +0 -0
  226. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_improved_schema_naming.py +0 -0
  227. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_inline_enum_extractor.py +0 -0
  228. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_inline_object_promoter.py +0 -0
  229. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_logging.py +0 -0
  230. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_ref_resolver.py +0 -0
  231. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_schema_finalizer.py +0 -0
  232. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_schema_parser_list_response.py +0 -0
  233. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_type_parser.py +0 -0
  234. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_dataclass_serialization.py +0 -0
  235. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_detect_circular_imports.py +0 -0
  236. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_edge_cases_integration.py +0 -0
  237. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_edge_cases_systematic.py +0 -0
  238. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_exceptions_module.py +0 -0
  239. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_forward_references.py +0 -0
  240. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_http_transport.py +0 -0
  241. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_import_resolution.py +0 -0
  242. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_ir.py +0 -0
  243. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_ir_schema.py +0 -0
  244. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_loader.py +0 -0
  245. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_loader_extensive.py +0 -0
  246. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_loader_invalid_refs.py +0 -0
  247. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_loader_malformed.py +0 -0
  248. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_loader_media_types.py +0 -0
  249. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_pagination.py +0 -0
  250. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_parsing_context.py +0 -0
  251. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_protocol_defaults.py +0 -0
  252. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_schema_parser_specific_case.py +0 -0
  253. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_schemas.py +0 -0
  254. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_simple_self_ref_check.py +0 -0
  255. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_streaming_helpers.py +0 -0
  256. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_telemetry.py +0 -0
  257. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_telemetry_client.py +0 -0
  258. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_utils.py +0 -0
  259. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/test_warning_collector.py +0 -0
  260. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/writers/test_code_writer.py +0 -0
  261. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/writers/test_documentation_writer.py +0 -0
  262. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/writers/test_line_writer.py +0 -0
  263. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/writers/test_python_construct_renderer_json_wizard.py +0 -0
  264. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/core/writers/writers_analysis.md +0 -0
  265. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/emitters_analysis.md +0 -0
  266. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_client_emitter.py +0 -0
  267. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_docs_emitter.py +0 -0
  268. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_duplicate_operations.py +0 -0
  269. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_endpoints_emitter.py +0 -0
  270. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/emitters/test_list_response_generation.py +0 -0
  271. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/end_to_end/test_dataclass_serialization_e2e.py +0 -0
  272. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/examples/test_developer_experience_demo.py +0 -0
  273. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/generation/generation_analysis.md +0 -0
  274. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/generation/test_external_core_package.py +0 -0
  275. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/generation_issues/specs/minimal_addmessage_like.json +0 -0
  276. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/generation_issues/test_addmessage_like_issues.py +0 -0
  277. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/generation_issues/test_agent_include_parameter_typing.py +0 -0
  278. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/generation_issues/test_message_batch_response_issue.py +0 -0
  279. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/helpers_analysis.md +0 -0
  280. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_array_resolver.py +0 -0
  281. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_endpoint_utils.py +0 -0
  282. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_endpoint_utils_extended.py +0 -0
  283. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_get_endpoint_return_types.py +0 -0
  284. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_named_resolver.py +0 -0
  285. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_named_type_resolver.py +0 -0
  286. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_object_resolver.py +0 -0
  287. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_put_endpoint_return_types.py +0 -0
  288. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_type_cleaner.py +0 -0
  289. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_type_helper.py +0 -0
  290. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_url_utils.py +0 -0
  291. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/helpers/test_utils_helpers.py +0 -0
  292. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/integration/test_generated_code_structure.py +0 -0
  293. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/integrations/integrations_analysis.md +0 -0
  294. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/integrations/test_business_swagger_message_type.py +0 -0
  295. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/integrations/test_end_to_end_business_swagger.py +0 -0
  296. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/integrations/test_end_to_end_petstore.py +0 -0
  297. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/integrations/test_name_collisions.py +0 -0
  298. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/specs/response_unwrapping_spec.yaml +0 -0
  299. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/test_analysis_overview.md +0 -0
  300. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/test_init.py +0 -0
  301. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/__init__.py +0 -0
  302. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_business_swagger_integration.py +0 -0
  303. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_contracts_types.py +0 -0
  304. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_reference_resolver.py +0 -0
  305. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_response_resolver.py +0 -0
  306. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_response_strategy.py +0 -0
  307. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_response_strategy_simplified.py +0 -0
  308. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_schema_resolver.py +0 -0
  309. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_schema_resolver_enums.py +0 -0
  310. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/types/test_type_service.py +0 -0
  311. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/__init__.py +0 -0
  312. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/__init__.py +0 -0
  313. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/__init__.py +0 -0
  314. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/generators_analysis.md +0 -0
  315. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_dataclass_integration.py +0 -0
  316. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_docstring_generator.py +0 -0
  317. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_endpoint_method_generator.py +0 -0
  318. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_request_generator.py +0 -0
  319. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_signature_generator.py +0 -0
  320. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_url_args_generator.py +0 -0
  321. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/__init__.py +0 -0
  322. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/test_import_analyzer.py +0 -0
  323. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/test_import_analyzer.py.bak +0 -0
  324. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/test_parameter_processor.py +0 -0
  325. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/test_endpoint_visitor.py +0 -0
  326. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/model/__init__.py +0 -0
  327. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/model/test_alias_generator.py +0 -0
  328. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/model/test_dataclass_generator.py +0 -0
  329. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/model/test_dataclass_generator_json_wizard.py +0 -0
  330. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/model/test_enum_generator.py +0 -0
  331. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/test_client_visitor.py +0 -0
  332. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/test_model_visitor.py +0 -0
  333. {pyopenapi_gen-0.12.1 → pyopenapi_gen-0.14.0}/tests/visit/test_visitor.py +0 -0
@@ -1,6 +1,174 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v0.14.0 (2025-10-06)
5
+
6
+ ### Documentation
7
+
8
+ - Remove legacy commands from development guide
9
+ ([`396680e`](https://github.com/mindhiveoy/pyopenapi_gen/commit/396680e93f15cabc638af0a1170853cfa3d6e5de))
10
+
11
+ Removed outdated "Legacy Commands" section from CLAUDE.md development guide as modern commands are
12
+ already documented in "Essential Commands" section.
13
+
14
+ Technical Details: - Removed 5 lines of legacy command documentation - Deleted commands that are
15
+ superseded by Makefile targets: * pytest --cov=src --cov-report=html (use: make test-cov) * ruff
16
+ check --fix src/ (use: make lint-fix) * mypy src/ --strict (use: make typecheck) - Modern
17
+ equivalents already documented with better descriptions - Simplified development workflow
18
+ documentation
19
+
20
+ Impact: - No functional changes - Documentation now clearer with single source of truth for commands
21
+ - Developers directed to use consistent Makefile targets
22
+
23
+ ### Features
24
+
25
+ - **exceptions**: Implement human-readable exception names and shared core registry
26
+ ([`6983037`](https://github.com/mindhiveoy/pyopenapi_gen/commit/69830375a5a8e93b14c6cf2cf7b289093b57a346))
27
+
28
+ Replaces generic numeric exception names with semantic, human-readable names and adds registry
29
+ system for multi-client shared core scenarios.
30
+
31
+ Technical Details: - Created http_status_codes.py with comprehensive HTTP status code mapping (400 →
32
+ BadRequestError, 404 → NotFoundError, 500 → InternalServerError) - Exception classes now include
33
+ human-readable status names in docstrings - Filters out 2xx success codes from exception
34
+ generation (no error classes for successful responses using is_error_code() helper) - Implements
35
+ .exception_registry.json to track exceptions needed by each client in shared core scenarios -
36
+ Registry prevents last client from overwriting exceptions needed by earlier clients when multiple
37
+ clients share a core package - Generated exception_aliases.py is Ruff-compliant from generation
38
+ (proper import ordering with third-party before local, correct spacing)
39
+
40
+ Breaking Changes: - Generated exception class names changed from Error{code} to semantic names
41
+ (Error404 → NotFoundError, Error401 → UnauthorisedError, etc.) - Affects generated client code but
42
+ not runtime behavior - ExceptionsEmitter.emit() now accepts optional client_package_name parameter
43
+ - ExceptionVisitor.visit() returns tuple of (code, names, status_codes) instead of (code, names)
44
+
45
+ Migration Notes: - Regenerate all clients to get new human-readable exception names - No code
46
+ changes required for clients using exception handling - Registry file (.exception_registry.json)
47
+ automatically managed - Clients continue to catch exceptions the same way, just with better names
48
+
49
+ Implementation: - HTTP_EXCEPTION_NAMES maps status codes to semantic class names -
50
+ get_exception_class_name() provides consistent name resolution - get_status_name() provides
51
+ human-readable descriptions - is_error_code() filters to only 4xx/5xx codes - Registry system uses
52
+ JSON to track multi-client exception requirements
53
+
54
+ ### Performance Improvements
55
+
56
+ - **postprocess**: Optimize Ruff execution with bulk operations (25x faster)
57
+ ([`eed3c34`](https://github.com/mindhiveoy/pyopenapi_gen/commit/eed3c346da9ddbb9daa1d745e8bc8f8f46c6e9b6))
58
+
59
+ Changed from per-file Ruff subprocess calls to bulk operations on all files, reducing generation
60
+ time from 120+ seconds to 5.4 seconds for large specs.
61
+
62
+ Technical Details: - Added remove_unused_imports_bulk(), sort_imports_bulk(), format_code_bulk()
63
+ methods that process all files in a single subprocess call - Changed from 2,331 individual
64
+ subprocess calls to 3 bulk calls for 777 files - Performance improvement: 120+ seconds → 5.4
65
+ seconds (25x speedup) - Temporarily disabled mypy type checking for faster iteration
66
+ (configurable, can be re-enabled when full validation needed) - Fixed docstring empty line
67
+ handling in PythonConstructRenderer to avoid trailing whitespace (Ruff W293 compliance)
68
+
69
+ Implementation Approach: - Subprocess.run() executes ruff with list of all file paths as arguments
70
+ instead of individual calls per file - Maintained existing error handling and output filtering
71
+ logic - Preserved per-file methods for backward compatibility - Empty lines in class body_lines
72
+ now use writer.newline() instead of write_line("") to prevent indentation on blank lines
73
+
74
+ Performance Impact: - Large spec generation (777 files): 120s → 5.4s - No change to generated code
75
+ quality or Ruff compliance - All formatting, linting, and import organization still applied - Mypy
76
+ still available but disabled by default for speed
77
+
78
+ Non-breaking Change: - Generated code quality unchanged - All existing functionality preserved -
79
+ Mypy can be re-enabled by uncommenting lines 63-68 in postprocess_manager.py
80
+
81
+ ### Testing
82
+
83
+ - Update exception tests for human-readable names
84
+ ([`26e2aef`](https://github.com/mindhiveoy/pyopenapi_gen/commit/26e2aef9df2e713a1d4098608f7c191bcd5992ab))
85
+
86
+ Updated all exception-related tests to expect new human-readable exception names instead of generic
87
+ numeric names (NotFoundError vs Error404).
88
+
89
+ Technical Details: - Updated test_exceptions_emitter.py assertions: * Now expects NotFoundError
90
+ instead of Error404 * Now expects InternalServerError instead of Error500 * Added validation for
91
+ human-readable status descriptions in docstrings * Removed HTTPError import assertion (no longer
92
+ used in exception_aliases.py) - Updated test_response_handler_generator.py: * Changed Error404
93
+ assertions to NotFoundError * Updated test docstrings to reflect human-readable names - Updated
94
+ test_match_case_response.py: * Changed Error400/401/404/500 to BadRequestError/UnauthorisedError/
95
+ NotFoundError/InternalServerError - Updated test_response_handler_generator_strategy.py: * Changed
96
+ Error404/500 assertions to NotFoundError/InternalServerError
97
+
98
+ Test Results: - All 1,280 tests passing (100% success rate) - Coverage maintained at 85%+ - All
99
+ exception-related assertions updated and verified - No test failures or regressions
100
+
101
+ Changes Tested: - Exception class name generation - Exception docstring content - Import statements
102
+ in generated code - Response handler error raising - Match-case statement error handling
103
+
104
+
105
+ ## v0.13.0 (2025-09-08)
106
+
107
+ ### Bug Fixes
108
+
109
+ - **parser**: Handle non-standard schema types automatically
110
+ ([`b9a82bd`](https://github.com/mindhiveoy/pyopenapi_gen/commit/b9a82bd1fe5b1cde73c48a2c8e3148506fb5d029))
111
+
112
+ - Convert 'Any' type to 'object' with helpful warning messages - Convert 'None' type to nullable
113
+ object with guidance - Default schemas without explicit type to 'object' per OpenAPI spec - Use
114
+ 'object' instead of 'Any' for arrays without items specification - Infer type from enum values
115
+ when type is missing - Fix empty composition handling (anyOf/allOf/oneOf with empty arrays) -
116
+ Update tests to match improved type handling behavior
117
+
118
+ These changes eliminate the 'Unknown schema type' errors for 'Any' and 'None' that were appearing
119
+ during client generation, making the generator more robust when handling non-standard or
120
+ incomplete OpenAPI specifications.
121
+
122
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
123
+
124
+ Co-Authored-By: Claude <noreply@anthropic.com>
125
+
126
+ ### Code Style
127
+
128
+ - Apply Black formatting to fix CI
129
+ ([`7a89d96`](https://github.com/mindhiveoy/pyopenapi_gen/commit/7a89d96c7eeddaa80cb624ae394c70f574c419bb))
130
+
131
+ Applied Black formatting to schema_parser.py and schema_resolver.py to pass the CI quality checks.
132
+
133
+ 🤖 Generated with [Claude Code](https://claude.ai/code)
134
+
135
+ Co-Authored-By: Claude <noreply@anthropic.com>
136
+
137
+ - Remove unused import to fix CI
138
+ ([`82334e9`](https://github.com/mindhiveoy/pyopenapi_gen/commit/82334e99d1aa196d316f71d7a36085bc5f6c35fb))
139
+
140
+ Removed unused Optional import from schema_resolver.py that was causing ruff linting to fail in CI.
141
+
142
+ ### Documentation
143
+
144
+ - Add comprehensive release automation documentation
145
+ ([`46f6f37`](https://github.com/mindhiveoy/pyopenapi_gen/commit/46f6f37d5b933db620f57627d48d4e785f63f6b9))
146
+
147
+ - Document how semantic-release automation works - Explain conventional commit triggers for version
148
+ bumps - Show real example of v0.12.1 hotfix release - Include configuration details and best
149
+ practices - Add troubleshooting guide for common issues
150
+
151
+ This ensures team members understand how to trigger automatic releases and why fixes are immediately
152
+ available to users.
153
+
154
+ ### Features
155
+
156
+ - **errors**: Enhance error reporting for unknown schema types
157
+ ([`0f199e5`](https://github.com/mindhiveoy/pyopenapi_gen/commit/0f199e511a0d3c2d3bac0db439411dfceab5e8d4))
158
+
159
+ - Add detailed error messages with full schema context - Include actionable guidance for common
160
+ issues - Provide specific suggestions based on the unknown type - Help users identify and fix
161
+ OpenAPI spec issues quickly
162
+
163
+ Examples of improved messages: - Unknown type 'Any' → Suggests using specific types - Unknown type
164
+ 'None' → Explains optional field mapping - Custom types → Lists common causes and solutions -
165
+ Missing items in arrays → Shows correct syntax - Missing final_module_stem → Explains processing
166
+ issues
167
+
168
+ This makes debugging OpenAPI spec issues much easier by providing clear, actionable error messages
169
+ instead of generic warnings.
170
+
171
+
4
172
  ## v0.12.1 (2025-09-07)
5
173
 
6
174
  ### Bug Fixes
@@ -94,11 +94,6 @@ make test-fast # Run tests, stop on first failure
94
94
  make test-cov # Run tests in parallel with coverage report (85% required)
95
95
  pytest -n auto # Run tests in parallel (faster, use with --timeout=300 if needed)
96
96
 
97
- # Legacy Commands (still work)
98
- pytest --cov=src --cov-report=html # Generate coverage report
99
- ruff check --fix src/ # Auto-fix linting issues
100
- mypy src/ --strict # Strict type checking
101
-
102
97
  # Development
103
98
  make build # Build package
104
99
  make clean # Clean build artifacts
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyopenapi-gen
3
- Version: 0.12.1
3
+ Version: 0.14.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