metaobjects 0.22.0__tar.gz → 0.22.1__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 (407) hide show
  1. {metaobjects-0.22.0 → metaobjects-0.22.1}/PKG-INFO +1 -1
  2. {metaobjects-0.22.0 → metaobjects-0.22.1}/pyproject.toml +1 -1
  3. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/entity_model.py +25 -3
  4. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_validation_conformance.py +21 -14
  5. {metaobjects-0.22.0 → metaobjects-0.22.1}/uv.lock +1 -1
  6. {metaobjects-0.22.0 → metaobjects-0.22.1}/.gitignore +0 -0
  7. {metaobjects-0.22.0 → metaobjects-0.22.1}/LICENSE +0 -0
  8. {metaobjects-0.22.0 → metaobjects-0.22.1}/README.md +0 -0
  9. {metaobjects-0.22.0 → metaobjects-0.22.1}/hatch_build.py +0 -0
  10. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/__init__.py +0 -0
  11. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/agent_context/__init__.py +0 -0
  12. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/agent_context/scaffold.py +0 -0
  13. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/__init__.py +0 -0
  14. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/api_model.py +0 -0
  15. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/builder.py +0 -0
  16. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/naming.py +0 -0
  17. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/paths.py +0 -0
  18. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/renderer.py +0 -0
  19. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/attr_class_map.py +0 -0
  20. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/cli.py +0 -0
  21. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
  22. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/__init__.py +0 -0
  23. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/collision_names.py +0 -0
  24. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/config.py +0 -0
  25. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/constants.py +0 -0
  26. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
  27. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
  28. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/format.py +0 -0
  29. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
  30. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generator.py +0 -0
  31. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generator_registry.py +0 -0
  32. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/__init__.py +0 -0
  33. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
  34. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
  35. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
  36. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
  37. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
  38. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
  39. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
  40. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
  41. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/router_generator.py +0 -0
  42. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/template_generator.py +0 -0
  43. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
  44. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
  45. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/instance_artifacts.py +0 -0
  46. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/metaobjects-config.schema.json +0 -0
  47. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
  48. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/overwrite_policy.py +0 -0
  49. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/project_config.py +0 -0
  50. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/runner.py +0 -0
  51. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/runtime/__init__.py +0 -0
  52. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
  53. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
  54. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
  55. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
  56. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
  57. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/type_map.py +0 -0
  58. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/core_types.py +0 -0
  59. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/datatype.py +0 -0
  60. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/__init__.py +0 -0
  61. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/doc_constants.py +0 -0
  62. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/doc_provider.py +0 -0
  63. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/doc_schema.py +0 -0
  64. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/errors.py +0 -0
  65. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/__init__.py +0 -0
  66. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/merge.py +0 -0
  67. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/meta_data_loader.py +0 -0
  68. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/registered_validation.py +0 -0
  69. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/__init__.py +0 -0
  70. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/directory_source.py +0 -0
  71. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/file_source.py +0 -0
  72. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
  73. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/uri_source.py +0 -0
  74. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_discriminator.py +0 -0
  75. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_enum_normalize_ambiguity.py +0 -0
  76. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_field_readonly.py +0 -0
  77. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_escapes.py +0 -0
  78. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
  79. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
  80. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validation_passes.py +0 -0
  81. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/__init__.py +0 -0
  82. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/__init__.py +0 -0
  83. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/attr/__init__.py +0 -0
  84. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
  85. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
  86. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/__init__.py +0 -0
  87. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/field_constants.py +0 -0
  88. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/meta_field.py +0 -0
  89. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/__init__.py +0 -0
  90. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
  91. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
  92. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/__init__.py +0 -0
  93. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/index_constants.py +0 -0
  94. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/meta_index.py +0 -0
  95. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/__init__.py +0 -0
  96. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/meta_object.py +0 -0
  97. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
  98. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
  99. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_constants.py +0 -0
  100. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_extract.py +0 -0
  101. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/value_object.py +0 -0
  102. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
  103. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
  104. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
  105. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
  106. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/__init__.py +0 -0
  107. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/meta_requirement.py +0 -0
  108. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/requirement_constants.py +0 -0
  109. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/validator/__init__.py +0 -0
  110. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
  111. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/meta_data.py +0 -0
  112. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/meta_root.py +0 -0
  113. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/__init__.py +0 -0
  114. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
  115. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
  116. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
  117. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
  118. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
  119. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
  120. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
  121. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
  122. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
  123. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/__init__.py +0 -0
  124. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
  125. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
  126. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
  127. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
  128. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
  129. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
  130. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
  131. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
  132. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/provider_extends.py +0 -0
  133. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/__init__.py +0 -0
  134. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/meta_template.py +0 -0
  135. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/prompt_provider.py +0 -0
  136. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/template_constants.py +0 -0
  137. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/naming_refs.py +0 -0
  138. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/parser.py +0 -0
  139. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/parser_yaml.py +0 -0
  140. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/provider.py +0 -0
  141. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/py.typed +0 -0
  142. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/registry.py +0 -0
  143. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/registry_manifest.py +0 -0
  144. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/__init__.py +0 -0
  145. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/email_document.py +0 -0
  146. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/escapers.py +0 -0
  147. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
  148. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/__init__.py +0 -0
  149. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/coerce.py +0 -0
  150. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/extract.py +0 -0
  151. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/extract_map.py +0 -0
  152. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
  153. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/locate.py +0 -0
  154. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/normalize.py +0 -0
  155. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/strip.py +0 -0
  156. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/types.py +0 -0
  157. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
  158. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/filesystem_provider.py +0 -0
  159. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/__init__.py +0 -0
  160. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
  161. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
  162. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/prompt_field.py +0 -0
  163. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
  164. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/prompt_style.py +0 -0
  165. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/renderer.py +0 -0
  166. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/verify.py +0 -0
  167. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/__init__.py +0 -0
  168. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/llm_recorder.py +0 -0
  169. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/n2m_resolver.py +0 -0
  170. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/object_manager.py +0 -0
  171. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/tph.py +0 -0
  172. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/serializer_json.py +0 -0
  173. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/__init__.py +0 -0
  174. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/base_types.py +0 -0
  175. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/separators.py +0 -0
  176. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/structural.py +0 -0
  177. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/__init__.py +0 -0
  178. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/error_source.py +0 -0
  179. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/json_path.py +0 -0
  180. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/semantic_diff.py +0 -0
  181. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/yaml_positions.py +0 -0
  182. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/__init__.py +0 -0
  183. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/attr.json +0 -0
  184. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/db.json +0 -0
  185. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/documentation.json +0 -0
  186. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/field.json +0 -0
  187. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/identity.json +0 -0
  188. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/index.json +0 -0
  189. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/layout.json +0 -0
  190. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/object.json +0 -0
  191. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/origin.json +0 -0
  192. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/prompt.json +0 -0
  193. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/relationship.json +0 -0
  194. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/requirement.json +0 -0
  195. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/source.json +0 -0
  196. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/template.json +0 -0
  197. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/ui-web.json +0 -0
  198. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/ui.json +0 -0
  199. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/validator.json +0 -0
  200. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/view.json +0 -0
  201. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/super_resolve.py +0 -0
  202. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/validation_types.py +0 -0
  203. {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/yaml_desugar.py +0 -0
  204. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/__init__.py +0 -0
  205. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/__init__.py +0 -0
  206. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
  207. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/extends/expected/Program.py +0 -0
  208. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/extends/meta.json +0 -0
  209. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
  210. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
  211. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/nested-array/meta.json +0 -0
  212. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
  213. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/scalars/expected/Report.py +0 -0
  214. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/scalars/meta.json +0 -0
  215. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
  216. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/vanilla/meta.json +0 -0
  217. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_abstract_conformance.py +0 -0
  218. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_api_docs_builder.py +0 -0
  219. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_api_docs_paths.py +0 -0
  220. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli.py +0 -0
  221. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_config_gen.py +0 -0
  222. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_config_verify.py +0 -0
  223. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_providers.py +0 -0
  224. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_registry.py +0 -0
  225. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_staleness_nudge.py +0 -0
  226. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_verify_strict.py +0 -0
  227. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_verify_subverbs.py +0 -0
  228. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_constants_config.py +0 -0
  229. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_entity_model.py +0 -0
  230. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_enum_conformance.py +0 -0
  231. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
  232. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_extract_tier_collision.py +0 -0
  233. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_extractor_generator.py +0 -0
  234. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_filter_allowlist_generator.py +0 -0
  235. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_format.py +0 -0
  236. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
  237. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_fr010_output_codegen.py +0 -0
  238. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
  239. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_generator.py +0 -0
  240. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_generator_extension_seams.py +0 -0
  241. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_golden.py +0 -0
  242. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
  243. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_inheritance_conformance.py +0 -0
  244. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_instance_artifacts.py +0 -0
  245. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_m2m_codegen.py +0 -0
  246. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_origin_nullability.py +0 -0
  247. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_output_parser_generator.py +0 -0
  248. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_overwrite_policy.py +0 -0
  249. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_payload_vo_generator.py +0 -0
  250. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_project_config.py +0 -0
  251. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_projection_compile.py +0 -0
  252. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_render_helper_conformance.py +0 -0
  253. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_render_helper_generator.py +0 -0
  254. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_reverse_finders.py +0 -0
  255. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_router_autoset.py +0 -0
  256. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_router_generator.py +0 -0
  257. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_runner.py +0 -0
  258. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_sourceless_projection.py +0 -0
  259. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_data.py +0 -0
  260. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_generator.py +0 -0
  261. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_output_pattern.py +0 -0
  262. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_scope_helpers.py +0 -0
  263. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_scope_walk.py +0 -0
  264. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_spec.py +0 -0
  265. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_tph_codegen.py +0 -0
  266. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_trace_helper_generator.py +0 -0
  267. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_type_map.py +0 -0
  268. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_write_through.py +0 -0
  269. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/__init__.py +0 -0
  270. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/capabilities.py +0 -0
  271. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/conformance-expected-failures.json +0 -0
  272. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/conformance_adapter.py +0 -0
  273. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/corpus.py +0 -0
  274. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/expected_failures.py +0 -0
  275. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/fixture_discovery.py +0 -0
  276. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/navigator.py +0 -0
  277. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
  278. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_conformance.py +0 -0
  279. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_extract_conformance.py +0 -0
  280. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_extract_object_verdict.py +0 -0
  281. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_fr010_loader_attrs.py +0 -0
  282. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_fr011_attrs.py +0 -0
  283. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_generator_registry_conformance.py +0 -0
  284. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_object_model_conformance.py +0 -0
  285. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_provider_composition_conformance.py +0 -0
  286. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_registry_conformance.py +0 -0
  287. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_runner_hardfail.py +0 -0
  288. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_spec_metamodel_embed.py +0 -0
  289. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_strict_attr_load.py +0 -0
  290. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_template_codegen_conformance.py +0 -0
  291. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_template_generator_conformance.py +0 -0
  292. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_yaml_conformance.py +0 -0
  293. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
  294. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/__init__.py +0 -0
  295. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_assertions.py +0 -0
  296. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_jsonb_server.py +0 -0
  297. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_m2m_server.py +0 -0
  298. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_server.py +0 -0
  299. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_jsonb_app.py +0 -0
  300. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_m2m_app.py +0 -0
  301. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_router_app.py +0 -0
  302. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_tph_app.py +0 -0
  303. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/meta_ai_trace.yaml +0 -0
  304. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/normalization.py +0 -0
  305. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/postgres_container.py +0 -0
  306. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/query_runner.py +0 -0
  307. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/scenarios.py +0 -0
  308. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract.py +0 -0
  309. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_generated.py +0 -0
  310. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_jsonb.py +0 -0
  311. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_m2m.py +0 -0
  312. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_m2m_generated.py +0 -0
  313. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_tph_generated.py +0 -0
  314. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_generated_router_uuid_pk.py +0 -0
  315. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_llm_call_trace.py +0 -0
  316. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_normalization.py +0 -0
  317. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_query_scenarios.py +0 -0
  318. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_runtime_return_types.py +0 -0
  319. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/loader/__init__.py +0 -0
  320. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/loader/test_enum_extends_values_conflict.py +0 -0
  321. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/loader/test_template_payload_target_210.py +0 -0
  322. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/open_closed_proof_test.py +0 -0
  323. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/__init__.py +0 -0
  324. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/__init__.py +0 -0
  325. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_coerce.py +0 -0
  326. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_extract.py +0 -0
  327. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_extract_map.py +0 -0
  328. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_json_forgiving_reader.py +0 -0
  329. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_locate.py +0 -0
  330. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_model.py +0 -0
  331. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_normalize.py +0 -0
  332. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_strip.py +0 -0
  333. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
  334. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/prompt/__init__.py +0 -0
  335. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/prompt/test_output_format_renderer.py +0 -0
  336. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_email_document.py +0 -0
  337. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_filesystem_provider.py +0 -0
  338. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_output_format_renderer_nested.py +0 -0
  339. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_output_prompt_conformance.py +0 -0
  340. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_render_conformance.py +0 -0
  341. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_render_max_chars.py +0 -0
  342. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_verify.py +0 -0
  343. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_verify_conformance.py +0 -0
  344. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/__init__.py +0 -0
  345. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_fr5c_merge_attribution.py +0 -0
  346. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_fr5d_reference_resolution.py +0 -0
  347. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_fr5e_database_source_shape.py +0 -0
  348. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_json_path.py +0 -0
  349. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_semantic_diff.py +0 -0
  350. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_source_on_node.py +0 -0
  351. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_yaml_positions.py +0 -0
  352. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/test_api_docs_accuracy.py +0 -0
  353. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/__init__.py +0 -0
  354. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_agent_context_staleness.py +0 -0
  355. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_capabilities.py +0 -0
  356. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_common_attrs.py +0 -0
  357. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_core_types.py +0 -0
  358. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_effective_package.py +0 -0
  359. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_errors.py +0 -0
  360. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_field_enum.py +0 -0
  361. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_field_map_validation.py +0 -0
  362. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
  363. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
  364. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_index_lookup.py +0 -0
  365. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_llm_recorder.py +0 -0
  366. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_loader.py +0 -0
  367. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_loader_bom.py +0 -0
  368. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_loader_class.py +0 -0
  369. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_merge.py +0 -0
  370. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_meta_attr.py +0 -0
  371. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_meta_data.py +0 -0
  372. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_meta_source.py +0 -0
  373. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_module_shortcuts.py +0 -0
  374. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_n2m_resolver.py +0 -0
  375. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_n2m_resolver_inherited.py +0 -0
  376. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
  377. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
  378. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_object_manager_write_through.py +0 -0
  379. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_one_primary_source.py +0 -0
  380. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_parser.py +0 -0
  381. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_parser_yaml.py +0 -0
  382. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_provider.py +0 -0
  383. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_provider_extension.py +0 -0
  384. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry.py +0 -0
  385. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry_completeness.py +0 -0
  386. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry_extend.py +0 -0
  387. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry_sealed.py +0 -0
  388. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_relationship_referential_actions.py +0 -0
  389. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_resolution_key.py +0 -0
  390. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
  391. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_serializer.py +0 -0
  392. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_shared_constants.py +0 -0
  393. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_smoke.py +0 -0
  394. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_source_escapes.py +0 -0
  395. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_sources.py +0 -0
  396. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_strict_child_placement.py +0 -0
  397. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_super_resolve.py +0 -0
  398. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_template_toolcall.py +0 -0
  399. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
  400. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_attr_schema.py +0 -0
  401. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_filter_values.py +0 -0
  402. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_origin_195.py +0 -0
  403. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_origin_paths.py +0 -0
  404. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_sort_field.py +0 -0
  405. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_warnings.py +0 -0
  406. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_write_coercion_arrays.py +0 -0
  407. {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_yaml_desugar.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: metaobjects
3
- Version: 0.22.0
3
+ Version: 0.22.1
4
4
  Summary: Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port.
5
5
  Project-URL: Homepage, https://metaobjects.dev
6
6
  Project-URL: Repository, https://github.com/metaobjectsdev/metaobjects
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "metaobjects"
3
- version = "0.22.0"
3
+ version = "0.22.1"
4
4
  description = "Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -372,8 +372,25 @@ def _auto_gen_pk_field_names(entity: MetaObject) -> set[str]:
372
372
  return set(_primary_identity_field_names(entity))
373
373
 
374
374
 
375
+ def _assigned_pk_field_names(entity: MetaObject) -> set[str]:
376
+ """Primary-key field names the CALLER must supply on create: an ASSIGNED primary key
377
+ — a natural key or an externally-issued id, i.e. an ``identity.primary`` carrying no
378
+ ``@generation`` (or an explicit ``assigned``).
379
+
380
+ These are create-REQUIRED regardless of ``@required``: nothing else can produce the
381
+ value, so a create body omitting one can only fail at the database. Excludes the
382
+ ``increment|uuid`` keys, which ``_auto_gen_pk_field_names`` already drops from the
383
+ create shape entirely. A PK carrying a ``@default`` stays optional (the column has
384
+ that default) — handled at the call site, which knows the field.
385
+
386
+ Mirrors the TS ``assignedPkFieldNames``; gated cross-port by the
387
+ ``assigned-pk-missing`` case in ``fixtures/validation-conformance``."""
388
+ auto_gen = _auto_gen_pk_field_names(entity)
389
+ return {n for n in _primary_identity_field_names(entity) if n not in auto_gen}
390
+
391
+
375
392
  def _create_field_line(
376
- field: MetaField, imports: set[str], config: GenConfig
393
+ field: MetaField, imports: set[str], config: GenConfig, *, force_required: bool = False
377
394
  ) -> tuple[str, bool]:
378
395
  """A CREATE-model field line (FR-036): keyed by the WIRE name (``field.name``) and
379
396
  carrying the WIRE-TIER per-field constraints (#224 — includes FR-036 Pin 1
@@ -397,7 +414,9 @@ def _create_field_line(
397
414
  # ANY @default (literal or SQL-expr) or @autoSet means the DB fills it, so the wire
398
415
  # body may omit it (the FR-036 #1 regression fix).
399
416
  server_filled = default_raw is not None or is_auto_set
400
- create_required = required and not server_filled
417
+ # An assigned PK is create-REQUIRED whatever @required says (see
418
+ # _assigned_pk_field_names) — unless it is server-filled by a @default.
419
+ create_required = (required or force_required) and not server_filled
401
420
 
402
421
  parts = _constraint_parts(_validator_constraints(field, wire=True))
403
422
  uses_field = bool(parts)
@@ -534,6 +553,7 @@ class EntityModelGenerator:
534
553
  add/transform create-model lines."""
535
554
  cfg = config if config is not None else GenConfig(out_dir="")
536
555
  auto_gen_pk = _auto_gen_pk_field_names(entity)
556
+ assigned_pk = _assigned_pk_field_names(entity)
537
557
  binding = tph_subtype_binding(entity)
538
558
  disc_field = binding[0] if binding is not None else None
539
559
  uses_field = False
@@ -550,7 +570,9 @@ class EntityModelGenerator:
550
570
  continue # FR-013 — a read-only column is DB/owner-written, not create input
551
571
  if f.is_derived():
552
572
  continue # FR-024 §7 (#214) — a derived (origin.*) field is view-computed, not create input
553
- line, used = _create_field_line(f, imports, cfg)
573
+ line, used = _create_field_line(
574
+ f, imports, cfg, force_required=f.name in assigned_pk
575
+ )
554
576
  uses_field = uses_field or used
555
577
  lines.append(line)
556
578
  # FR-017 TPH: pin the inherited discriminator to this subtype's value (with a
@@ -38,23 +38,29 @@ def _corpus_dir() -> Path:
38
38
  return repo_root / "fixtures" / "validation-conformance"
39
39
 
40
40
 
41
- def _load_account_entity() -> MetaObject:
41
+ DEFAULT_ENTITY = "Account"
42
+
43
+
44
+ def _load_entity(name: str) -> MetaObject:
42
45
  meta = (_corpus_dir() / "meta.json").read_text()
43
46
  result = MetaDataLoader.from_string(meta)
44
47
  assert not result.errors, [str(e) for e in result.errors]
45
48
  for child in result.root.children():
46
- if child.type == TYPE_OBJECT and getattr(child, "name", None) == "Account":
49
+ if child.type == TYPE_OBJECT and getattr(child, "name", None) == name:
47
50
  assert isinstance(child, MetaObject)
48
51
  return child
49
- raise AssertionError("Account entity not found in corpus meta.json")
52
+ raise AssertionError(f"{name} entity not found in corpus meta.json")
53
+
50
54
 
55
+ def _build_generated_model(entity_name: str = DEFAULT_ENTITY) -> type[BaseModel]:
56
+ """Generate the ``<Entity>Create`` Pydantic wire-validation model source and exec it
57
+ into a module namespace. #224 — the CREATE model (the generated input-validation
58
+ artifact), not the plain read model: FR-036 Pin 1 lives on the wire tier only.
51
59
 
52
- def _build_generated_model() -> type[BaseModel]:
53
- """Generate the Account Pydantic wire-validation model source and exec it into a
54
- module namespace. #224 — ``AccountCreate`` (the generated input-validation
55
- artifact), not the plain ``Account`` read model: FR-036 Pin 1 lives on the wire
56
- tier only."""
57
- source = render_entity_model(_load_account_entity())
60
+ A case may name a different corpus entity (``Ledger`` — an ASSIGNED primary key,
61
+ a shape ``Account``'s ``@generation``-backed key cannot express).
62
+ """
63
+ source = render_entity_model(_load_entity(entity_name))
58
64
  # Import the generated source as a REAL module rather than exec'ing it into a
59
65
  # bare dict: under ``from __future__ import annotations`` Pydantic resolves
60
66
  # type annotations lazily via the class's module globals, so a non-builtin
@@ -63,14 +69,15 @@ def _build_generated_model() -> type[BaseModel]:
63
69
  # exec namespace has no ``__name__`` (forward refs fall back to builtins and
64
70
  # fail — #234); a proper module import mirrors the TS runner's temp-module.
65
71
  tmp_dir = tempfile.mkdtemp()
66
- mod_path = Path(tmp_dir) / "generated_account.py"
72
+ mod_name = f"generated_{entity_name.lower()}"
73
+ mod_path = Path(tmp_dir) / f"{mod_name}.py"
67
74
  mod_path.write_text(source)
68
- spec = importlib.util.spec_from_file_location("generated_account", mod_path)
75
+ spec = importlib.util.spec_from_file_location(mod_name, mod_path)
69
76
  assert spec and spec.loader
70
77
  module = importlib.util.module_from_spec(spec)
71
- sys.modules["generated_account"] = module
78
+ sys.modules[mod_name] = module
72
79
  spec.loader.exec_module(module)
73
- model = module.AccountCreate
80
+ model = getattr(module, f"{entity_name}Create")
74
81
  assert isinstance(model, type) and issubclass(model, BaseModel)
75
82
  return model
76
83
 
@@ -81,7 +88,7 @@ def _load_cases() -> list[dict]:
81
88
 
82
89
  @pytest.mark.parametrize("case", _load_cases(), ids=lambda c: c["name"])
83
90
  def test_validation_conformance(case: dict) -> None:
84
- model = _build_generated_model()
91
+ model = _build_generated_model(case.get("entity", DEFAULT_ENTITY))
85
92
  try:
86
93
  model(**case["payload"])
87
94
  valid = True
@@ -250,7 +250,7 @@ wheels = [
250
250
 
251
251
  [[package]]
252
252
  name = "metaobjects"
253
- version = "0.22.0"
253
+ version = "0.22.1"
254
254
  source = { editable = "." }
255
255
  dependencies = [
256
256
  { name = "pyyaml" },
File without changes
File without changes
File without changes