metaobjects 0.19.9__tar.gz → 0.20.11__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.19.9 → metaobjects-0.20.11}/PKG-INFO +1 -1
- {metaobjects-0.19.9 → metaobjects-0.20.11}/pyproject.toml +1 -1
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/errors.py +5 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validation_passes.py +28 -0
- metaobjects-0.20.11/tests/loader/test_enum_extends_values_conflict.py +167 -0
- metaobjects-0.20.11/tests/unit/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/uv.lock +1 -1
- {metaobjects-0.19.9 → metaobjects-0.20.11}/.gitignore +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/LICENSE +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/README.md +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/hatch_build.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/collision_names.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/entity_model.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_source_escapes.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/ui-web.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_extract_tier_collision.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_origin_nullability.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_router_autoset.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/codegen/test_write_through.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/normalization.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_generated_router_uuid_pk.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.19.9/tests/render → metaobjects-0.20.11/tests/loader}/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.19.9/tests/render/extract → metaobjects-0.20.11/tests/render}/__init__.py +0 -0
- {metaobjects-0.19.9/tests/render/prompt → metaobjects-0.20.11/tests/render/extract}/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.19.9/tests/source → metaobjects-0.20.11/tests/render/prompt}/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_verify.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.19.9/tests/unit → metaobjects-0.20.11/tests/source}/__init__.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_object_manager_write_through.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_source_escapes.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_validation_origin_195.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-0.19.9 → metaobjects-0.20.11}/tests/unit/test_yaml_desugar.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.11
|
|
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.
|
|
3
|
+
version = "0.20.11"
|
|
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"
|
|
@@ -180,6 +180,11 @@ class ErrorCode(str, Enum):
|
|
|
180
180
|
ERR_SQL_BODY_WITH_UNMANAGED = "ERR_SQL_BODY_WITH_UNMANAGED"
|
|
181
181
|
ERR_SQL_BODY_ON_WRITABLE_KIND = "ERR_SQL_BODY_ON_WRITABLE_KIND"
|
|
182
182
|
ERR_ORIGIN_UNDER_SQL_BODY = "ERR_ORIGIN_UNDER_SQL_BODY"
|
|
183
|
+
# #246 — a field.enum both extends a shared package-level abstract enum and
|
|
184
|
+
# declares its own @values. One shared enum type has one member set — the
|
|
185
|
+
# own @values would be silently dropped in codegen. Remove the own @values
|
|
186
|
+
# to inherit the shared set, or extend a concrete (non-shared) enum instead.
|
|
187
|
+
ERR_ENUM_EXTENDS_VALUES_CONFLICT = "ERR_ENUM_EXTENDS_VALUES_CONFLICT"
|
|
183
188
|
ERR_UNKNOWN = "ERR_UNKNOWN"
|
|
184
189
|
|
|
185
190
|
|
|
@@ -68,6 +68,7 @@ from ..shared.base_types import (
|
|
|
68
68
|
TYPE_IDENTITY,
|
|
69
69
|
TYPE_INDEX,
|
|
70
70
|
TYPE_LAYOUT,
|
|
71
|
+
TYPE_METADATA,
|
|
71
72
|
TYPE_OBJECT,
|
|
72
73
|
TYPE_ORIGIN,
|
|
73
74
|
TYPE_RELATIONSHIP,
|
|
@@ -599,6 +600,33 @@ def _validate_enum_values(
|
|
|
599
600
|
)
|
|
600
601
|
)
|
|
601
602
|
|
|
603
|
+
# #246: own @values AND extends a shared package-level abstract enum —
|
|
604
|
+
# one shared enum type has one member set, so the own @values would be
|
|
605
|
+
# silently dropped by the shared-enum codegen collapse. "Shared" means
|
|
606
|
+
# the resolved super is abstract AND declared at metadata-root (its
|
|
607
|
+
# parent is the metadata.root node, not nested inside an object) — a
|
|
608
|
+
# concrete super, or a non-root abstract super (e.g. nested inside an
|
|
609
|
+
# object), is legal and not flagged. Mirrors the TS reference
|
|
610
|
+
# (attr-schema-validate.ts).
|
|
611
|
+
sup = node.super_data
|
|
612
|
+
if (
|
|
613
|
+
sup is not None
|
|
614
|
+
and sup.is_abstract
|
|
615
|
+
and sup.parent is not None
|
|
616
|
+
and sup.parent.type == TYPE_METADATA
|
|
617
|
+
):
|
|
618
|
+
errors.append(
|
|
619
|
+
MetaError(
|
|
620
|
+
f"{label} declares its own '@{FIELD_ATTR_VALUES}' but extends "
|
|
621
|
+
f"a shared package-level abstract enum — one shared enum type "
|
|
622
|
+
f"has one member set. Remove the own '@{FIELD_ATTR_VALUES}' to "
|
|
623
|
+
f"inherit the shared set, or extend a concrete (non-shared) "
|
|
624
|
+
f"enum instead",
|
|
625
|
+
ErrorCode.ERR_ENUM_EXTENDS_VALUES_CONFLICT,
|
|
626
|
+
envelope=node.source,
|
|
627
|
+
)
|
|
628
|
+
)
|
|
629
|
+
|
|
602
630
|
|
|
603
631
|
def _effective_enum_values(node: MetaData) -> list[str]:
|
|
604
632
|
"""The effective ``@values`` members of an enum node (own or inherited via
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"""#246 — field.enum extends-a-shared-enum-AND-declares-own-@values conflict.
|
|
2
|
+
|
|
3
|
+
Mirrors the TS reference test
|
|
4
|
+
(server/typescript/packages/metadata/test/enum-extends-values-conflict.test.ts):
|
|
5
|
+
a field.enum that both `extends` a shared PACKAGE-LEVEL abstract enum AND
|
|
6
|
+
declares its own `@values` must fail to load with
|
|
7
|
+
ERR_ENUM_EXTENDS_VALUES_CONFLICT — one shared enum type has one member set, so
|
|
8
|
+
the own `@values` would be silently dropped by the shared-enum codegen
|
|
9
|
+
collapse.
|
|
10
|
+
|
|
11
|
+
Three cases (the third pins the "root-level" clause of the predicate — Task 3's
|
|
12
|
+
review required it: dropping `sup.parent.type == TYPE_METADATA` would let a
|
|
13
|
+
non-root abstract super go unrejected):
|
|
14
|
+
|
|
15
|
+
1. CONFLICT — extends a root-level (metadata.root child) abstract enum, and
|
|
16
|
+
also declares its own @values.
|
|
17
|
+
2. LEGAL — extends a CONCRETE (non-abstract) enum, and also declares its own
|
|
18
|
+
@values.
|
|
19
|
+
3. LEGAL — extends an ABSTRACT but NON-ROOT enum (declared as a child of an
|
|
20
|
+
object.entity, not the shared package level), and also declares its own
|
|
21
|
+
@values.
|
|
22
|
+
"""
|
|
23
|
+
from __future__ import annotations
|
|
24
|
+
|
|
25
|
+
import json
|
|
26
|
+
import os
|
|
27
|
+
import tempfile
|
|
28
|
+
from pathlib import Path
|
|
29
|
+
|
|
30
|
+
from metaobjects import MetaDataLoader
|
|
31
|
+
from metaobjects.core_types import core_provider
|
|
32
|
+
from metaobjects.errors import ErrorCode
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def _load_codes(doc: dict) -> list[ErrorCode]:
|
|
36
|
+
"""Load a doc dict via a temp file; return the loader's error codes."""
|
|
37
|
+
with tempfile.TemporaryDirectory() as tmpdir:
|
|
38
|
+
path = os.path.join(tmpdir, "meta.test.json")
|
|
39
|
+
Path(path).write_text(json.dumps(doc))
|
|
40
|
+
result = MetaDataLoader.from_directory(tmpdir, providers=[core_provider])
|
|
41
|
+
return [e.code for e in result.errors]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_conflict_extends_root_level_abstract_enum_with_own_values() -> None:
|
|
45
|
+
"""Extending a root-level (shared, package-level) abstract enum while also
|
|
46
|
+
declaring own @values must fail with ERR_ENUM_EXTENDS_VALUES_CONFLICT."""
|
|
47
|
+
doc = {
|
|
48
|
+
"metadata.root": {
|
|
49
|
+
"package": "acme",
|
|
50
|
+
"children": [
|
|
51
|
+
{
|
|
52
|
+
"field.enum": {
|
|
53
|
+
"name": "Status",
|
|
54
|
+
"abstract": True,
|
|
55
|
+
"@values": ["A", "B"],
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"object.entity": {
|
|
60
|
+
"name": "Order",
|
|
61
|
+
"children": [
|
|
62
|
+
{"field.long": {"name": "id"}},
|
|
63
|
+
{
|
|
64
|
+
"field.enum": {
|
|
65
|
+
"name": "status",
|
|
66
|
+
"extends": "acme::Status",
|
|
67
|
+
"@values": ["A", "B", "C"],
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{"identity.primary": {"@fields": "id"}},
|
|
71
|
+
],
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
codes = _load_codes(doc)
|
|
78
|
+
assert codes.count(ErrorCode.ERR_ENUM_EXTENDS_VALUES_CONFLICT) == 1, (
|
|
79
|
+
f"Expected exactly one ERR_ENUM_EXTENDS_VALUES_CONFLICT; got {codes}"
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def test_legal_extends_concrete_enum_with_own_values() -> None:
|
|
84
|
+
"""Extending a CONCRETE (non-abstract) enum while also declaring own
|
|
85
|
+
@values is legal — no ERR_ENUM_EXTENDS_VALUES_CONFLICT."""
|
|
86
|
+
doc = {
|
|
87
|
+
"metadata.root": {
|
|
88
|
+
"package": "acme",
|
|
89
|
+
"children": [
|
|
90
|
+
{
|
|
91
|
+
"field.enum": {
|
|
92
|
+
"name": "Status",
|
|
93
|
+
"@values": ["A", "B"],
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"object.entity": {
|
|
98
|
+
"name": "Order",
|
|
99
|
+
"children": [
|
|
100
|
+
{"field.long": {"name": "id"}},
|
|
101
|
+
{
|
|
102
|
+
"field.enum": {
|
|
103
|
+
"name": "status",
|
|
104
|
+
"extends": "acme::Status",
|
|
105
|
+
"@values": ["A", "B", "C"],
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{"identity.primary": {"@fields": "id"}},
|
|
109
|
+
],
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
codes = _load_codes(doc)
|
|
116
|
+
assert ErrorCode.ERR_ENUM_EXTENDS_VALUES_CONFLICT not in codes, (
|
|
117
|
+
f"Did not expect ERR_ENUM_EXTENDS_VALUES_CONFLICT; got {codes}"
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_legal_extends_non_root_abstract_enum_with_own_values() -> None:
|
|
122
|
+
"""Extending an ABSTRACT but NON-ROOT enum (nested inside an object, not
|
|
123
|
+
declared at the shared package level) while also declaring own @values is
|
|
124
|
+
legal — no ERR_ENUM_EXTENDS_VALUES_CONFLICT. Pins the `sup.parent.type ==
|
|
125
|
+
TYPE_METADATA` clause of the predicate."""
|
|
126
|
+
doc = {
|
|
127
|
+
"metadata.root": {
|
|
128
|
+
"package": "acme",
|
|
129
|
+
"children": [
|
|
130
|
+
{
|
|
131
|
+
"object.entity": {
|
|
132
|
+
"name": "Container",
|
|
133
|
+
"abstract": True,
|
|
134
|
+
"children": [
|
|
135
|
+
{
|
|
136
|
+
"field.enum": {
|
|
137
|
+
"name": "kind",
|
|
138
|
+
"abstract": True,
|
|
139
|
+
"@values": ["X", "Y"],
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"object.entity": {
|
|
147
|
+
"name": "Order",
|
|
148
|
+
"children": [
|
|
149
|
+
{"field.long": {"name": "id"}},
|
|
150
|
+
{
|
|
151
|
+
"field.enum": {
|
|
152
|
+
"name": "status",
|
|
153
|
+
"extends": "acme::Container.kind",
|
|
154
|
+
"@values": ["X", "Y", "Z"],
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
{"identity.primary": {"@fields": "id"}},
|
|
158
|
+
],
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
codes = _load_codes(doc)
|
|
165
|
+
assert ErrorCode.ERR_ENUM_EXTENDS_VALUES_CONFLICT not in codes, (
|
|
166
|
+
f"Did not expect ERR_ENUM_EXTENDS_VALUES_CONFLICT; got {codes}"
|
|
167
|
+
)
|
|
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
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/extract_delegate_emitter.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/extract_schema_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/m2m_codegen.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/output_format_spec_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/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
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/sources/meta_data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_field_readonly.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_source_escapes.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/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
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/core/relationship/__init__.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
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/layout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/layout/meta_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/ui/ui_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/view/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/src/metaobjects/meta/presentation/view/meta_view.py
RENAMED
|
File without changes
|
{metaobjects-0.19.9 → metaobjects-0.20.11}/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.19.9 → metaobjects-0.20.11}/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
|