pyopenapi-gen 0.13.0__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.13.0 → pyopenapi_gen-0.14.0}/CHANGELOG.md +101 -0
  2. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/CLAUDE.md +0 -5
  3. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/PKG-INFO +1 -1
  4. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/coverage.xml +372 -271
  5. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/pyproject.toml +2 -2
  6. pyopenapi_gen-0.14.0/src/pyopenapi_gen/core/http_status_codes.py +220 -0
  7. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/postprocess_manager.py +85 -12
  8. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/python_construct_renderer.py +5 -1
  9. pyopenapi_gen-0.14.0/src/pyopenapi_gen/emitters/exceptions_emitter.py +186 -0
  10. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/generator/client_generator.py +4 -2
  11. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/response_handler_generator.py +3 -2
  12. pyopenapi_gen-0.14.0/src/pyopenapi_gen/visit/exception_visitor.py +90 -0
  13. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_exceptions_emitter.py +9 -5
  14. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_match_case_response.py +5 -5
  15. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_response_handler_generator.py +5 -3
  16. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_response_handler_generator_strategy.py +3 -2
  17. pyopenapi_gen-0.13.0/src/pyopenapi_gen/emitters/exceptions_emitter.py +0 -52
  18. pyopenapi_gen-0.13.0/src/pyopenapi_gen/visit/exception_visitor.py +0 -52
  19. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.bandit +0 -0
  20. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.cursor/mcp.json +0 -0
  21. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.cursor/rules/architecture.mdc +0 -0
  22. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.cursor/rules/coding-conventions.mdc +0 -0
  23. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.cursor/rules/project-goal.mdc +0 -0
  24. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.cursor/rules/testing.mdc +0 -0
  25. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/BRANCH_PROTECTION.md +0 -0
  26. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/CLAUDE_CONFIGURATION.md +0 -0
  27. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/CODEOWNERS +0 -0
  28. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  29. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  30. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/dependabot.yml +0 -0
  31. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/ci.yml +0 -0
  32. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/claude-auto-approve.yml +0 -0
  33. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/claude-review-trigger.yml +0 -0
  34. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/claude.yml +0 -0
  35. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/pr-checks.yml +0 -0
  36. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/production-release.yml.backup +0 -0
  37. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/promote-to-staging.yml +0 -0
  38. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/semantic-release.yml +0 -0
  39. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/staging-publish.yml +0 -0
  40. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.github/workflows/testpypi-publish.yml +0 -0
  41. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.gitignore +0 -0
  42. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.python-version +0 -0
  43. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/.vscode/settings.json +0 -0
  44. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/CONTRIBUTING.md +0 -0
  45. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/LICENSE +0 -0
  46. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/Makefile +0 -0
  47. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/README.md +0 -0
  48. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/README.md +0 -0
  49. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/architecture.md +0 -0
  50. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/endpoint_visitor.md +0 -0
  51. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/helpers.md +0 -0
  52. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/ir_models.md +0 -0
  53. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/line_writer.md +0 -0
  54. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/loader.md +0 -0
  55. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/model_visitor.md +0 -0
  56. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/release-automation.md +0 -0
  57. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/render_context.md +0 -0
  58. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/docs/unified_type_resolution.md +0 -0
  59. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/input/business_swagger.json +0 -0
  60. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/input/minimal_swagger.json +0 -0
  61. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/input/minimal_syntax_test.json +0 -0
  62. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/input/test_name_collision_spec.json +0 -0
  63. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/mkdocs.yml +0 -0
  64. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/poetry.lock +0 -0
  65. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/__init__.py +0 -0
  66. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/__main__.py +0 -0
  67. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/cli.py +0 -0
  68. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/CLAUDE.md +0 -0
  69. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/file_manager.py +0 -0
  70. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/import_collector.py +0 -0
  71. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/context/render_context.py +0 -0
  72. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/CLAUDE.md +0 -0
  73. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/__init__.py +0 -0
  74. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/auth/base.py +0 -0
  75. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/auth/plugins.py +0 -0
  76. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/exceptions.py +0 -0
  77. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/http_transport.py +0 -0
  78. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/__init__.py +0 -0
  79. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/loader.py +0 -0
  80. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/__init__.py +0 -0
  81. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/parser.py +0 -0
  82. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/post_processor.py +0 -0
  83. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/operations/request_body.py +0 -0
  84. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/parameters/__init__.py +0 -0
  85. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/parameters/parser.py +0 -0
  86. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/responses/__init__.py +0 -0
  87. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/responses/parser.py +0 -0
  88. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/schemas/__init__.py +0 -0
  89. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/loader/schemas/extractor.py +0 -0
  90. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/pagination.py +0 -0
  91. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/__init__.py +0 -0
  92. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/__init__.py +0 -0
  93. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/__init__.py +0 -0
  94. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/__init__.py +0 -0
  95. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/cyclic_properties.py +0 -0
  96. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/direct_cycle.py +0 -0
  97. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/existing_schema.py +0 -0
  98. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/list_response.py +0 -0
  99. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/missing_ref.py +0 -0
  100. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/new_schema.py +0 -0
  101. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/helpers/stripped_suffix.py +0 -0
  102. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/ref_resolution/resolve_schema_ref.py +0 -0
  103. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/common/type_parser.py +0 -0
  104. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/context.py +0 -0
  105. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/cycle_helpers.py +0 -0
  106. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/__init__.py +0 -0
  107. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/all_of_parser.py +0 -0
  108. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/any_of_parser.py +0 -0
  109. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/array_items_parser.py +0 -0
  110. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/one_of_parser.py +0 -0
  111. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/keywords/properties_parser.py +0 -0
  112. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/schema_finalizer.py +0 -0
  113. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/schema_parser.py +0 -0
  114. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/transformers/__init__.py +0 -0
  115. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/transformers/inline_enum_extractor.py +0 -0
  116. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/transformers/inline_object_promoter.py +0 -0
  117. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/parsing/unified_cycle_detection.py +0 -0
  118. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/schemas.py +0 -0
  119. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/streaming_helpers.py +0 -0
  120. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/telemetry.py +0 -0
  121. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/utils.py +0 -0
  122. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/warning_collector.py +0 -0
  123. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/code_writer.py +0 -0
  124. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/documentation_writer.py +0 -0
  125. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core/writers/line_writer.py +0 -0
  126. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/core_package_template/README.md +0 -0
  127. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emit/models_emitter.py +0 -0
  128. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/CLAUDE.md +0 -0
  129. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/client_emitter.py +0 -0
  130. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/core_emitter.py +0 -0
  131. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/docs_emitter.py +0 -0
  132. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/endpoints_emitter.py +0 -0
  133. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/emitters/models_emitter.py +0 -0
  134. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/generator/CLAUDE.md +0 -0
  135. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/CLAUDE.md +0 -0
  136. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/__init__.py +0 -0
  137. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/endpoint_utils.py +0 -0
  138. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_cleaner.py +0 -0
  139. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_helper.py +0 -0
  140. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/__init__.py +0 -0
  141. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/array_resolver.py +0 -0
  142. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/composition_resolver.py +0 -0
  143. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/finalizer.py +0 -0
  144. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/named_resolver.py +0 -0
  145. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/object_resolver.py +0 -0
  146. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/primitive_resolver.py +0 -0
  147. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/type_resolution/resolver.py +0 -0
  148. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/helpers/url_utils.py +0 -0
  149. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/http_types.py +0 -0
  150. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/ir.py +0 -0
  151. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/py.typed +0 -0
  152. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/CLAUDE.md +0 -0
  153. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/__init__.py +0 -0
  154. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/contracts/__init__.py +0 -0
  155. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/contracts/protocols.py +0 -0
  156. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/contracts/types.py +0 -0
  157. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/__init__.py +0 -0
  158. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/reference_resolver.py +0 -0
  159. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/response_resolver.py +0 -0
  160. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/resolvers/schema_resolver.py +0 -0
  161. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/services/__init__.py +0 -0
  162. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/services/type_service.py +0 -0
  163. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/strategies/__init__.py +0 -0
  164. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/types/strategies/response_strategy.py +0 -0
  165. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/CLAUDE.md +0 -0
  166. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/client_visitor.py +0 -0
  167. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/docs_visitor.py +0 -0
  168. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/__init__.py +0 -0
  169. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/endpoint_visitor.py +0 -0
  170. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/__init__.py +0 -0
  171. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/docstring_generator.py +0 -0
  172. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/endpoint_method_generator.py +0 -0
  173. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/request_generator.py +0 -0
  174. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/signature_generator.py +0 -0
  175. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/generators/url_args_generator.py +0 -0
  176. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/processors/__init__.py +0 -0
  177. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/processors/import_analyzer.py +0 -0
  178. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/endpoint/processors/parameter_processor.py +0 -0
  179. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/__init__.py +0 -0
  180. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/alias_generator.py +0 -0
  181. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/dataclass_generator.py +0 -0
  182. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/enum_generator.py +0 -0
  183. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/model/model_visitor.py +0 -0
  184. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/src/pyopenapi_gen/visit/visitor.py +0 -0
  185. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/__init__.py +0 -0
  186. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/auth/auth_analysis.md +0 -0
  187. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/auth/test_auth_base.py +0 -0
  188. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/auth/test_auth_plugins.py +0 -0
  189. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/cli/cli_analysis.md +0 -0
  190. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_backup_diff.py +0 -0
  191. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_edge_cases.py +0 -0
  192. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_edge_cases_comprehensive.py +0 -0
  193. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/cli/test_cli_internal_utils.py +0 -0
  194. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/cli/test_http_pagination_cli.py +0 -0
  195. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/context/context_analysis.md +0 -0
  196. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/context/test_file_manager.py +0 -0
  197. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/context/test_import_collector.py +0 -0
  198. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/context/test_render_context.py +0 -0
  199. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/context/test_render_context_imports.py +0 -0
  200. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/context/test_render_context_relative_paths.py +0 -0
  201. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/core_analysis.md +0 -0
  202. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/loader/parameters/test_inline_enum_array_params.py +0 -0
  203. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/loader/test_extractor.py +0 -0
  204. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/loader/test_top_level_enum_extraction.py +0 -0
  205. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/helpers_analysis.md +0 -0
  206. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_cyclic_properties.py +0 -0
  207. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_direct_cycle.py +0 -0
  208. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_existing_schema.py +0 -0
  209. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_list_response.py +0 -0
  210. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_missing_ref.py +0 -0
  211. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_new_schema.py +0 -0
  212. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/common/ref_resolution/helpers/test_stripped_suffix.py +0 -0
  213. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/__init__.py +0 -0
  214. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/keywords_analysis.md +0 -0
  215. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_all_of_parser.py +0 -0
  216. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_any_of_parser.py +0 -0
  217. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_array_items_parser.py +0 -0
  218. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_one_of_parser.py +0 -0
  219. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/keywords/test_properties_parser.py +0 -0
  220. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/parsing_analysis.md +0 -0
  221. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_context.py +0 -0
  222. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_cycle_detection.py +0 -0
  223. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_cycle_helpers.py +0 -0
  224. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_improved_schema_naming.py +0 -0
  225. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_inline_enum_extractor.py +0 -0
  226. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_inline_object_promoter.py +0 -0
  227. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_logging.py +0 -0
  228. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_ref_resolver.py +0 -0
  229. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_schema_finalizer.py +0 -0
  230. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_schema_parser.py +0 -0
  231. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_schema_parser_list_response.py +0 -0
  232. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/parsing/test_type_parser.py +0 -0
  233. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_dataclass_serialization.py +0 -0
  234. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_detect_circular_imports.py +0 -0
  235. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_edge_cases_integration.py +0 -0
  236. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_edge_cases_systematic.py +0 -0
  237. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_exceptions_module.py +0 -0
  238. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_forward_references.py +0 -0
  239. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_http_transport.py +0 -0
  240. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_import_resolution.py +0 -0
  241. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_ir.py +0 -0
  242. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_ir_schema.py +0 -0
  243. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_loader.py +0 -0
  244. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_loader_extensive.py +0 -0
  245. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_loader_invalid_refs.py +0 -0
  246. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_loader_malformed.py +0 -0
  247. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_loader_media_types.py +0 -0
  248. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_pagination.py +0 -0
  249. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_parsing_context.py +0 -0
  250. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_protocol_defaults.py +0 -0
  251. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_schema_parser_specific_case.py +0 -0
  252. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_schemas.py +0 -0
  253. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_simple_self_ref_check.py +0 -0
  254. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_streaming_helpers.py +0 -0
  255. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_telemetry.py +0 -0
  256. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_telemetry_client.py +0 -0
  257. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_utils.py +0 -0
  258. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/test_warning_collector.py +0 -0
  259. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/writers/test_code_writer.py +0 -0
  260. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/writers/test_documentation_writer.py +0 -0
  261. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/writers/test_line_writer.py +0 -0
  262. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/writers/test_python_construct_renderer_json_wizard.py +0 -0
  263. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/core/writers/writers_analysis.md +0 -0
  264. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/emitters_analysis.md +0 -0
  265. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_client_emitter.py +0 -0
  266. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_docs_emitter.py +0 -0
  267. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_duplicate_operations.py +0 -0
  268. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_endpoints_emitter.py +0 -0
  269. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_list_response_generation.py +0 -0
  270. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/emitters/test_models_emitter.py +0 -0
  271. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/end_to_end/test_dataclass_serialization_e2e.py +0 -0
  272. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/examples/test_developer_experience_demo.py +0 -0
  273. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/generation/generation_analysis.md +0 -0
  274. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/generation/test_external_core_package.py +0 -0
  275. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/generation_issues/specs/minimal_addmessage_like.json +0 -0
  276. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/generation_issues/test_addmessage_like_issues.py +0 -0
  277. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/generation_issues/test_agent_include_parameter_typing.py +0 -0
  278. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/generation_issues/test_message_batch_response_issue.py +0 -0
  279. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/helpers_analysis.md +0 -0
  280. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_array_resolver.py +0 -0
  281. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_endpoint_utils.py +0 -0
  282. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_endpoint_utils_extended.py +0 -0
  283. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_get_endpoint_return_types.py +0 -0
  284. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_named_resolver.py +0 -0
  285. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_named_type_resolver.py +0 -0
  286. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_object_resolver.py +0 -0
  287. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_put_endpoint_return_types.py +0 -0
  288. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_type_cleaner.py +0 -0
  289. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_type_helper.py +0 -0
  290. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_url_utils.py +0 -0
  291. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/helpers/test_utils_helpers.py +0 -0
  292. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/integration/test_generated_code_structure.py +0 -0
  293. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/integrations/integrations_analysis.md +0 -0
  294. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/integrations/test_business_swagger_message_type.py +0 -0
  295. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/integrations/test_end_to_end_business_swagger.py +0 -0
  296. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/integrations/test_end_to_end_petstore.py +0 -0
  297. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/integrations/test_name_collisions.py +0 -0
  298. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/specs/response_unwrapping_spec.yaml +0 -0
  299. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/test_analysis_overview.md +0 -0
  300. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/test_init.py +0 -0
  301. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/__init__.py +0 -0
  302. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_business_swagger_integration.py +0 -0
  303. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_contracts_types.py +0 -0
  304. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_reference_resolver.py +0 -0
  305. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_response_resolver.py +0 -0
  306. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_response_strategy.py +0 -0
  307. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_response_strategy_simplified.py +0 -0
  308. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_schema_resolver.py +0 -0
  309. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_schema_resolver_enums.py +0 -0
  310. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/types/test_type_service.py +0 -0
  311. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/__init__.py +0 -0
  312. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/__init__.py +0 -0
  313. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/__init__.py +0 -0
  314. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/generators_analysis.md +0 -0
  315. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_dataclass_integration.py +0 -0
  316. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_docstring_generator.py +0 -0
  317. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_endpoint_method_generator.py +0 -0
  318. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_request_generator.py +0 -0
  319. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_signature_generator.py +0 -0
  320. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/generators/test_url_args_generator.py +0 -0
  321. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/__init__.py +0 -0
  322. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/test_import_analyzer.py +0 -0
  323. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/test_import_analyzer.py.bak +0 -0
  324. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/processors/test_parameter_processor.py +0 -0
  325. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/endpoint/test_endpoint_visitor.py +0 -0
  326. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/model/__init__.py +0 -0
  327. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/model/test_alias_generator.py +0 -0
  328. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/model/test_dataclass_generator.py +0 -0
  329. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/model/test_dataclass_generator_json_wizard.py +0 -0
  330. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/model/test_enum_generator.py +0 -0
  331. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/test_client_visitor.py +0 -0
  332. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/test_model_visitor.py +0 -0
  333. {pyopenapi_gen-0.13.0 → pyopenapi_gen-0.14.0}/tests/visit/test_visitor.py +0 -0
@@ -1,6 +1,107 @@
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
+
4
105
  ## v0.13.0 (2025-09-08)
5
106
 
6
107
  ### 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.13.0
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