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.
- {metaobjects-0.22.0 → metaobjects-0.22.1}/PKG-INFO +1 -1
- {metaobjects-0.22.0 → metaobjects-0.22.1}/pyproject.toml +1 -1
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/entity_model.py +25 -3
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_validation_conformance.py +21 -14
- {metaobjects-0.22.0 → metaobjects-0.22.1}/uv.lock +1 -1
- {metaobjects-0.22.0 → metaobjects-0.22.1}/.gitignore +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/LICENSE +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/README.md +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/hatch_build.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/collision_names.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/metaobjects-config.schema.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/project_config.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/errors.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_enum_normalize_ambiguity.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_escapes.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validation_passes.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/meta_requirement.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/requirement_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/requirement.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/ui-web.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_config_gen.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_config_verify.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_extract_tier_collision.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_origin_nullability.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_project_config.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_router_autoset.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_sourceless_projection.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/codegen/test_write_through.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/normalization.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_generated_router_uuid_pk.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/loader/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/loader/test_enum_extends_values_conflict.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/loader/test_template_payload_target_210.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_verify.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/__init__.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_object_manager_write_through.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_source_escapes.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_origin_195.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.22.0 → metaobjects-0.22.1}/tests/unit/test_write_coercion_arrays.py +0 -0
- {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.
|
|
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.
|
|
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"
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
@@ -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
|
-
|
|
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(
|
|
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
|
-
|
|
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) ==
|
|
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("
|
|
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
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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(
|
|
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[
|
|
78
|
+
sys.modules[mod_name] = module
|
|
72
79
|
spec.loader.exec_module(module)
|
|
73
|
-
model = module
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/extract_delegate_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/payload_vo_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/metaobjects-config.schema.json
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/output_format_spec_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/codegen/template_codegen/template_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/sources/meta_data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/loader/validate_source_physical_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/relationship/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/requirement/meta_requirement.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/core/validator/validator_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/layout/meta_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/ui/ui_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/meta_view.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/presentation/view/view_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/meta/template/template_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/json_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/extract/xml_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/output_format_renderer.py
RENAMED
|
File without changes
|
{metaobjects-0.22.0 → metaobjects-0.22.1}/src/metaobjects/render/prompt/output_format_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|