metaobjects 0.15.7__tar.gz → 0.15.9__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.15.7 → metaobjects-0.15.9}/PKG-INFO +1 -1
- {metaobjects-0.15.7 → metaobjects-0.15.9}/pyproject.toml +1 -1
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/render_helper_generator.py +22 -14
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/errors.py +11 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/validation_passes.py +65 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/naming_refs.py +67 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_render_helper_conformance.py +39 -1
- {metaobjects-0.15.7 → metaobjects-0.15.9}/.gitignore +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/LICENSE +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/README.md +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/hatch_build.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/entity_model.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/normalization.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_verify.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/__init__.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/tests/unit/test_yaml_desugar.py +0 -0
- {metaobjects-0.15.7 → metaobjects-0.15.9}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.9
|
|
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.15.
|
|
3
|
+
version = "0.15.9"
|
|
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"
|
|
@@ -26,10 +26,10 @@ build fail when a mustache references a field the payload VO doesn't declare.
|
|
|
26
26
|
Reuse, not reimplementation: ``render`` (the emitted runtime call), ``verify`` (the
|
|
27
27
|
build-time gate), ``FilesystemProvider`` (build-time ref resolution), and
|
|
28
28
|
``EmailDocument`` (email return type). The payload field tree is walked from the VO
|
|
29
|
-
the same way the other generators walk it —
|
|
30
|
-
|
|
31
|
-
TS ``
|
|
32
|
-
only recursing into ``object.value`` targets, cycle-guarded.
|
|
29
|
+
the same way the other generators walk it — a nested ``field.object``'s ``@objectRef``
|
|
30
|
+
is resolved FQN-exact when fully-qualified (ADR-0041) else by short name (cross-port
|
|
31
|
+
render-helper consensus: TS ``refMatchesObject`` / Java+Kotlin ``resolveNestedObjectRef``
|
|
32
|
+
/ C# ``ResolveNestedObjectRef``), only recursing into ``object.value`` targets, cycle-guarded.
|
|
33
33
|
|
|
34
34
|
Python divergence vs TS / Java / C#: Python's ``RenderRequest`` has NO ``verify``
|
|
35
35
|
field — the Python render engine does not run a runtime drift pass — so the emitted
|
|
@@ -75,19 +75,24 @@ def _py_str(s: str) -> str:
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
# ---------------------------------------------------------------------------
|
|
78
|
-
# Payload field-tree walk — nested @objectRef resolved
|
|
79
|
-
#
|
|
80
|
-
#
|
|
78
|
+
# Payload field-tree walk — nested @objectRef resolved FQN-exact (ADR-0041).
|
|
79
|
+
# Object-ref fields recurse into their target object.value (SUBTYPE_VALUE only);
|
|
80
|
+
# a `seen` set guards reference cycles.
|
|
81
81
|
# ---------------------------------------------------------------------------
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
def _resolve_nested_object_ref(root: MetaData, reference: str) -> MetaObject | None:
|
|
85
|
-
"""Resolve a ``field.object``'s ``@objectRef`` to its target ``object.value
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
85
|
+
"""Resolve a ``field.object``'s ``@objectRef`` to its target ``object.value``.
|
|
86
|
+
|
|
87
|
+
ADR-0041: a FULLY-QUALIFIED ref (contains ``::``) resolves EXACTLY on the
|
|
88
|
+
package-qualified name (``resolution_key()``/``fqn()``) — never a bare-tail
|
|
89
|
+
fallback that would bind a same-named ``object.value`` in the WRONG package on a
|
|
90
|
+
cross-package short-name collision. A bare ref still matches by short name
|
|
91
|
+
(first-wins). Mirrors the Java/Kotlin ``resolveNestedObjectRef`` + TS
|
|
92
|
+
``refMatchesObject``."""
|
|
89
93
|
if not reference:
|
|
90
94
|
return None
|
|
95
|
+
fqn = PACKAGE_SEP in reference
|
|
91
96
|
ref_short = reference.rsplit(PACKAGE_SEP, 1)[-1]
|
|
92
97
|
# ADR-0039 sanctioned own: top-level scan on the loader ROOT (never extended, own == effective)
|
|
93
98
|
for child in root.own_children():
|
|
@@ -95,7 +100,10 @@ def _resolve_nested_object_ref(root: MetaData, reference: str) -> MetaObject | N
|
|
|
95
100
|
continue
|
|
96
101
|
if child.sub_type != OBJECT_SUBTYPE_VALUE:
|
|
97
102
|
continue
|
|
98
|
-
if
|
|
103
|
+
if fqn:
|
|
104
|
+
if child.resolution_key() == reference or child.fqn() == reference:
|
|
105
|
+
return child
|
|
106
|
+
elif child.name.rsplit(PACKAGE_SEP, 1)[-1] == ref_short:
|
|
99
107
|
return child
|
|
100
108
|
return None
|
|
101
109
|
|
|
@@ -107,9 +115,9 @@ def _derive_payload_field_tree(
|
|
|
107
115
|
resolvable ``@objectRef`` to an ``object.value`` becomes a context-pushing node whose
|
|
108
116
|
children are the target VO's tree (recursed, cycle-guarded). Every other field is a
|
|
109
117
|
leaf."""
|
|
110
|
-
if vo is None or vo.
|
|
118
|
+
if vo is None or vo.resolution_key() in seen:
|
|
111
119
|
return []
|
|
112
|
-
next_seen = seen | {vo.
|
|
120
|
+
next_seen = seen | {vo.resolution_key()}
|
|
113
121
|
fields: list[PayloadField] = []
|
|
114
122
|
for f in vo.children():
|
|
115
123
|
if f.type != TYPE_FIELD or not isinstance(f, MetaField):
|
|
@@ -132,6 +132,17 @@ class ErrorCode(str, Enum):
|
|
|
132
132
|
# emit this yet (the T6 guard is deferred — like TS, it belongs in the parser);
|
|
133
133
|
# the enum tracks the shared corpus code so resolution/desugar stay aligned.
|
|
134
134
|
ERR_RELATIVE_REF_IN_CANONICAL = "ERR_RELATIVE_REF_IN_CANONICAL"
|
|
135
|
+
# ADR-0041 — cross-package reference resolution contract. A BARE object
|
|
136
|
+
# reference (no ``::``) that names an object present in MORE THAN ONE package,
|
|
137
|
+
# with NO match in the referrer's own package, is ambiguous — the author must
|
|
138
|
+
# qualify it with the package (FQN). Applies to every object-ref-bearing attr
|
|
139
|
+
# (@objectRef / @references / @from / @of / @via heads / @parameterRef /
|
|
140
|
+
# @payloadRef / @responseRef). An FQN ref resolves exactly and is never
|
|
141
|
+
# ambiguous; a bare ref that matches the referrer's own package, or exactly one
|
|
142
|
+
# package anywhere, resolves fine. ``extends`` is intentionally NOT covered
|
|
143
|
+
# (its same-package/root-strict super-resolver yields ERR_UNRESOLVED_SUPER on a
|
|
144
|
+
# bare cross-package miss, not ambiguity).
|
|
145
|
+
ERR_AMBIGUOUS_REF = "ERR_AMBIGUOUS_REF"
|
|
135
146
|
# FR-033 — strict structural-placement vocabulary. ERR_CHILD_NOT_ALLOWED: a
|
|
136
147
|
# structural child (field/identity/source/validator/… — not an attr) is placed
|
|
137
148
|
# under a parent whose registered childRules do not admit it (the structural
|
|
@@ -107,6 +107,7 @@ from ..meta.core.object.object_constants import (
|
|
|
107
107
|
from ..meta.core.identity.identity_constants import IDENTITY_ATTR_FIELDS
|
|
108
108
|
from ..meta.core.index.index_constants import INDEX_ATTR_FIELDS, INDEX_SUBTYPE_LOOKUP
|
|
109
109
|
from ..source import resolved_source
|
|
110
|
+
from ..naming_refs import CHILD_REF_SEP, REF_BEARING_ATTR_NAMES, resolve_object_ref
|
|
110
111
|
|
|
111
112
|
# A subtype-specific template attr is valid ONLY on the subtype it is registered
|
|
112
113
|
# for. The metamodel registers these per-subtype (see the core_types template block),
|
|
@@ -179,6 +180,8 @@ def run_validations(
|
|
|
179
180
|
# @valueType (when set) must name a known scalar subtype.
|
|
180
181
|
_validate_field_map(root, errors)
|
|
181
182
|
_validate_templates(root, errors)
|
|
183
|
+
# ADR-0041 — cross-package bare-reference ambiguity (the object-ref contract).
|
|
184
|
+
_validate_cross_package_refs(root, errors)
|
|
182
185
|
_validate_subtype_rules(root, errors, warnings)
|
|
183
186
|
# FR-024 B3 — projection identity pass-through + key correspondence.
|
|
184
187
|
_validate_identity_passthrough(root, errors)
|
|
@@ -208,6 +211,68 @@ def _walk(root: MetaData) -> list[MetaData]:
|
|
|
208
211
|
return result
|
|
209
212
|
|
|
210
213
|
|
|
214
|
+
# ---------------------------------------------------------------------------
|
|
215
|
+
# Pass: cross-package reference ambiguity (the object-ref contract, ADR-0041)
|
|
216
|
+
# ---------------------------------------------------------------------------
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
def _validate_cross_package_refs(root: MetaData, errors: list[MetaError]) -> None:
|
|
220
|
+
"""ADR-0041 — a BARE object reference (no ``::``) that names an object present
|
|
221
|
+
in MORE THAN ONE package, with NO match in the referrer's own package, is
|
|
222
|
+
ambiguous → ERR_AMBIGUOUS_REF (the author must qualify it with the package).
|
|
223
|
+
|
|
224
|
+
An FQN ref is exact (never ambiguous); a bare ref matching the referrer's own
|
|
225
|
+
package, or exactly one package anywhere, resolves fine. Covers every
|
|
226
|
+
object-ref-bearing attr in ``REF_BEARING_ATTR_NAMES`` (@objectRef / @references
|
|
227
|
+
/ @from / @of / @via / @parameterRef / @payloadRef / @responseRef) — the dotted
|
|
228
|
+
``.child`` tail of the origin heads is stripped to the entity OWNER. ``extends``
|
|
229
|
+
is intentionally NOT covered: its same-package/root-strict super-resolver never
|
|
230
|
+
matches a packaged object by bare name, so a bare cross-package ``extends`` is
|
|
231
|
+
unresolved (ERR_UNRESOLVED_SUPER), not ambiguous. Mirrors the TS reference
|
|
232
|
+
``validateCrossPackageRefs``.
|
|
233
|
+
"""
|
|
234
|
+
|
|
235
|
+
def _visit(node: MetaData, obj: MetaData, referrer_pkg: str) -> None:
|
|
236
|
+
for attr_name in REF_BEARING_ATTR_NAMES:
|
|
237
|
+
# ADR-0039 sanctioned own: judge the ref AUTHORED on THIS node; an
|
|
238
|
+
# inherited ref was judged on its declaring node. Mirrors the TS
|
|
239
|
+
# `node.ownAttr(attrName)`.
|
|
240
|
+
raw = node.attr(attr_name)
|
|
241
|
+
if not isinstance(raw, str):
|
|
242
|
+
continue
|
|
243
|
+
# Owner = the object part; strip any FR-024 dotted `.child` tail. An FQN
|
|
244
|
+
# owner (has `::`) is resolved exactly and can never be ambiguous.
|
|
245
|
+
dot = raw.find(CHILD_REF_SEP)
|
|
246
|
+
owner = raw if dot == -1 else raw[:dot]
|
|
247
|
+
if PACKAGE_SEP in owner or owner == "":
|
|
248
|
+
continue
|
|
249
|
+
if not resolve_object_ref(root, owner, referrer_pkg).ambiguous:
|
|
250
|
+
continue
|
|
251
|
+
pkgs = [
|
|
252
|
+
c.resolution_key()
|
|
253
|
+
for c in root.children()
|
|
254
|
+
if c.type == TYPE_OBJECT and c.name == owner
|
|
255
|
+
]
|
|
256
|
+
errors.append(
|
|
257
|
+
MetaError(
|
|
258
|
+
f'@{attr_name} "{raw}" on {obj.fqn()}: bare reference "{owner}" '
|
|
259
|
+
f"is ambiguous — it names an object in multiple packages "
|
|
260
|
+
f"({', '.join(pkgs)}) and none is in the referrer's package "
|
|
261
|
+
f'"{referrer_pkg}". Qualify it with the package (FQN).',
|
|
262
|
+
ErrorCode.ERR_AMBIGUOUS_REF,
|
|
263
|
+
envelope=resolved_source(node.source, obj.fqn(), owner),
|
|
264
|
+
)
|
|
265
|
+
)
|
|
266
|
+
for c in node.own_children():
|
|
267
|
+
_visit(c, obj, referrer_pkg)
|
|
268
|
+
|
|
269
|
+
for obj in root.children():
|
|
270
|
+
if obj.type != TYPE_OBJECT:
|
|
271
|
+
continue
|
|
272
|
+
referrer_pkg = obj.package or obj.file_default_package or ""
|
|
273
|
+
_visit(obj, obj, referrer_pkg)
|
|
274
|
+
|
|
275
|
+
|
|
211
276
|
# ---------------------------------------------------------------------------
|
|
212
277
|
# Pass: attr-schema validation
|
|
213
278
|
# ---------------------------------------------------------------------------
|
|
@@ -29,6 +29,8 @@ NEVER expanded — it is the node's identity.
|
|
|
29
29
|
"""
|
|
30
30
|
from __future__ import annotations
|
|
31
31
|
|
|
32
|
+
from typing import TYPE_CHECKING, NamedTuple, Optional
|
|
33
|
+
|
|
32
34
|
from .meta.core.field.field_constants import FIELD_ATTR_OBJECT_REF
|
|
33
35
|
from .meta.core.identity.identity_constants import IDENTITY_REFERENCE_ATTR_REFERENCES
|
|
34
36
|
from .meta.core.relationship.relationship_constants import RELATIONSHIP_ATTR_OBJECT_REF
|
|
@@ -42,8 +44,12 @@ from .meta.template.template_constants import (
|
|
|
42
44
|
TEMPLATE_ATTR_PAYLOAD_REF,
|
|
43
45
|
TEMPLATE_ATTR_RESPONSE_REF,
|
|
44
46
|
)
|
|
47
|
+
from .shared.base_types import TYPE_OBJECT
|
|
45
48
|
from .shared.separators import PACKAGE_SEP
|
|
46
49
|
|
|
50
|
+
if TYPE_CHECKING:
|
|
51
|
+
from .meta.meta_data import MetaData
|
|
52
|
+
|
|
47
53
|
# Structural separator literals (Python has no PACKAGE_PARENT / CHILD_REF_SEPARATOR
|
|
48
54
|
# constant module; the TS values are "::" / "." / ".." — PACKAGE_SEP already
|
|
49
55
|
# carries "::"). Defined here to mirror TS naming-refs.ts.
|
|
@@ -139,3 +145,64 @@ def expand_ref(raw: str, package_context: str) -> str:
|
|
|
139
145
|
"""
|
|
140
146
|
owner, tail = _split_child_tail(raw)
|
|
141
147
|
return _expand_owner(owner, package_context) + tail
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
# ---------------------------------------------------------------------------
|
|
151
|
+
# ADR-0041 — cross-package OBJECT reference resolution contract
|
|
152
|
+
# ---------------------------------------------------------------------------
|
|
153
|
+
# The SINGLE resolver every object-ref site shares so the same-package-preference
|
|
154
|
+
# contract is uniform. Mirrors the TS reference ``resolveObjectRef`` /
|
|
155
|
+
# ``objectPackage`` in naming-refs.ts.
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
class ObjectRefResolution(NamedTuple):
|
|
159
|
+
"""Result of :func:`resolve_object_ref` — mirrors the TS ``{ node?, ambiguous? }``.
|
|
160
|
+
|
|
161
|
+
* ``node`` — the uniquely-resolved object (``None`` when nothing matched, or
|
|
162
|
+
when a bare ref is cross-package-ambiguous).
|
|
163
|
+
* ``ambiguous`` — True ONLY for a BARE ref that names an object in more than
|
|
164
|
+
one OTHER package with none in the referrer's own package.
|
|
165
|
+
"""
|
|
166
|
+
|
|
167
|
+
node: Optional["MetaData"]
|
|
168
|
+
ambiguous: bool
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
def _object_package(node: "MetaData") -> str:
|
|
172
|
+
"""The effective package of a root-level object — its ``resolution_key()`` minus
|
|
173
|
+
the trailing ``::<name>`` ("" for a root-level/empty-package object). Mirrors
|
|
174
|
+
the TS ``objectPackage``.
|
|
175
|
+
"""
|
|
176
|
+
key = node.resolution_key()
|
|
177
|
+
i = key.rfind(PACKAGE_SEP)
|
|
178
|
+
return "" if i == -1 else key[:i]
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def resolve_object_ref(
|
|
182
|
+
root: "MetaData", ref: str, referrer_pkg: str
|
|
183
|
+
) -> ObjectRefResolution:
|
|
184
|
+
"""Resolve a metadata OBJECT reference under the ADR-0041 cross-package contract.
|
|
185
|
+
|
|
186
|
+
* **FQN** (``ref`` contains ``::``) → EXACT match on ``resolution_key()``/
|
|
187
|
+
``fqn()``. Never a bare-tail fallback, so an FQN pointing at one package never
|
|
188
|
+
binds a same-named object in another (the cross-port bug ADR-0041 closes).
|
|
189
|
+
* **bare** (no ``::``) → prefer an object of that name in the REFERRER's own
|
|
190
|
+
package; else a UNIQUE object of that name across all packages; else (>1
|
|
191
|
+
across OTHER packages, none in the referrer's) → ``ambiguous``.
|
|
192
|
+
|
|
193
|
+
*referrer_pkg* is the effective package of the node carrying the ref. Returns an
|
|
194
|
+
:class:`ObjectRefResolution`. Mirrors the TS ``resolveObjectRef``.
|
|
195
|
+
"""
|
|
196
|
+
objects = [c for c in root.children() if c.type == TYPE_OBJECT]
|
|
197
|
+
if PACKAGE_SEP in ref:
|
|
198
|
+
for c in objects:
|
|
199
|
+
if c.resolution_key() == ref or c.fqn() == ref:
|
|
200
|
+
return ObjectRefResolution(c, False)
|
|
201
|
+
return ObjectRefResolution(None, False)
|
|
202
|
+
matches = [c for c in objects if c.name == ref]
|
|
203
|
+
if len(matches) <= 1:
|
|
204
|
+
return ObjectRefResolution(matches[0] if matches else None, False)
|
|
205
|
+
for c in matches:
|
|
206
|
+
if _object_package(c) == referrer_pkg:
|
|
207
|
+
return ObjectRefResolution(c, False)
|
|
208
|
+
return ObjectRefResolution(None, True)
|
|
@@ -27,7 +27,7 @@ from pathlib import Path
|
|
|
27
27
|
import pytest
|
|
28
28
|
|
|
29
29
|
import metaobjects.core_types # noqa: F401 — side-effect: registers attr classes
|
|
30
|
-
from metaobjects import MetaDataLoader
|
|
30
|
+
from metaobjects import InMemoryStringSource, MetaDataLoader
|
|
31
31
|
from metaobjects.codegen.config import GenConfig
|
|
32
32
|
from metaobjects.codegen.generator import GenContext
|
|
33
33
|
from metaobjects.codegen.generators.render_helper_generator import RenderHelperGenerator
|
|
@@ -45,6 +45,15 @@ def _load_root(meta_json: Path):
|
|
|
45
45
|
return res.root
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
def _load_root_from_files(*meta_jsons: Path):
|
|
49
|
+
# Multi-file (multi-package) load — one InMemoryStringSource per file, merged into a
|
|
50
|
+
# single root (mirrors fixtures/conformance/loader-same-name-distinct-packages).
|
|
51
|
+
sources = [InMemoryStringSource(p.read_text()) for p in meta_jsons]
|
|
52
|
+
res = MetaDataLoader().load(sources)
|
|
53
|
+
assert res.errors == [], res.errors
|
|
54
|
+
return res.root
|
|
55
|
+
|
|
56
|
+
|
|
48
57
|
def _ctx(root) -> GenContext:
|
|
49
58
|
return GenContext(
|
|
50
59
|
entities=[],
|
|
@@ -156,6 +165,35 @@ def test_email_order_email_renders_nested_array_loop_and_partial(tmp_path) -> No
|
|
|
156
165
|
assert "<hr/>Sent by Acme" in doc.html_body
|
|
157
166
|
|
|
158
167
|
|
|
168
|
+
# ---------------------------------------------------------------------------
|
|
169
|
+
# xpkg-collision/ — cross-package short-name collision (ADR-0041). Two packages
|
|
170
|
+
# each declare an object.value `Note` (alpha: alphaText, beta: betaText); the
|
|
171
|
+
# payload `Digest` references BOTH by FULLY-QUALIFIED @objectRef. A bare-tail
|
|
172
|
+
# resolver binds both refs to whichever Note loads first → one field lands on the
|
|
173
|
+
# wrong element type → the drift gate raises. FQN-exact resolution renders both.
|
|
174
|
+
# ---------------------------------------------------------------------------
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
def test_document_digest_doc_resolves_fqn_nested_object_ref_across_collision(tmp_path) -> None:
|
|
178
|
+
dir_root = CORPUS / "xpkg-collision"
|
|
179
|
+
root = _load_root_from_files(
|
|
180
|
+
dir_root / "meta.alpha.json",
|
|
181
|
+
dir_root / "meta.beta.json",
|
|
182
|
+
dir_root / "meta.app.json",
|
|
183
|
+
)
|
|
184
|
+
templates = str(CORPUS / "templates")
|
|
185
|
+
# Must NOT raise: the FQN refs resolve to their own package's Note.
|
|
186
|
+
files = [f for f in RenderHelperGenerator(templates).generate(_ctx(root))
|
|
187
|
+
if f.path == "digest_doc_render_helper.py"]
|
|
188
|
+
assert len(files) == 1
|
|
189
|
+
_materialize_and_import(files, tmp_path)
|
|
190
|
+
helper = import_module("_rh_conf_pkg.digest_doc_render_helper")
|
|
191
|
+
|
|
192
|
+
payload = {"fromAlpha": {"alphaText": "AA"}, "fromBeta": {"betaText": "BB"}}
|
|
193
|
+
out = helper.render_digest_doc(payload, FilesystemProvider(templates))
|
|
194
|
+
assert out == "Alpha=AA Beta=BB"
|
|
195
|
+
|
|
196
|
+
|
|
159
197
|
# ---------------------------------------------------------------------------
|
|
160
198
|
# drift/ → codegen FAILS (ValueError) with ERR_VAR_NOT_ON_PAYLOAD.
|
|
161
199
|
# ---------------------------------------------------------------------------
|
|
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.15.7 → metaobjects-0.15.9}/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.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/payload_vo_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/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.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/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.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/sources/meta_data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/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.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/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.15.7 → metaobjects-0.15.9}/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.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.7 → metaobjects-0.15.9}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|