metaobjects 0.19.1__tar.gz → 0.19.2__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.1 → metaobjects-0.19.2}/PKG-INFO +1 -1
- {metaobjects-0.19.1 → metaobjects-0.19.2}/pyproject.toml +1 -1
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/entity_model.py +29 -12
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/field.json +1 -1
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/validator.json +2 -2
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_cli_staleness_nudge.py +4 -4
- {metaobjects-0.19.1 → metaobjects-0.19.2}/.gitignore +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/LICENSE +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/README.md +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/hatch_build.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/errors.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_source_escapes.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validation_passes.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/ui-web.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_origin_nullability.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/codegen/test_write_through.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/normalization.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_generated_router_uuid_pk.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_verify.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/__init__.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_object_manager_write_through.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_source_escapes.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_validation_origin_195.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/tests/unit/test_yaml_desugar.py +0 -0
- {metaobjects-0.19.1 → metaobjects-0.19.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 0.19.
|
|
3
|
+
Version: 0.19.2
|
|
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.19.
|
|
3
|
+
version = "0.19.2"
|
|
4
4
|
description = "Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
@@ -99,7 +99,7 @@ def _first_attr(field: MetaField, sub_type: str, attr_name: str) -> object | Non
|
|
|
99
99
|
return None
|
|
100
100
|
|
|
101
101
|
|
|
102
|
-
def _validator_constraints(field: MetaField, wire: bool
|
|
102
|
+
def _validator_constraints(field: MetaField, *, wire: bool) -> dict[str, object]:
|
|
103
103
|
"""Map the field's ``validator.*`` children + field attrs to Pydantic ``Field``
|
|
104
104
|
kwargs. Cross-port-canonical semantics (TS is the reference):
|
|
105
105
|
|
|
@@ -114,8 +114,13 @@ def _validator_constraints(field: MetaField, wire: bool = False) -> dict[str, ob
|
|
|
114
114
|
every OTHER constraint above unconditionally but must not self-validate Pin 1
|
|
115
115
|
at construction (that broke a downstream adopter's in-process prompt-payload
|
|
116
116
|
``object.value`` models on legitimately-empty slots). Callers building a read
|
|
117
|
-
model (``_field_line``) pass
|
|
118
|
-
|
|
117
|
+
model (``_field_line``) pass ``wire=False``; callers building a wire model
|
|
118
|
+
(``_create_field_line``/``_patch_field_line``) pass ``wire=True``.
|
|
119
|
+
|
|
120
|
+
*wire* is keyword-only and REQUIRED (no default, item 5 of the #224
|
|
121
|
+
cleanup): a forgotten flag at a future wire call site must fail loudly
|
|
122
|
+
(``TypeError``) at generation time rather than silently falling back to a
|
|
123
|
+
permissive read-model tier.
|
|
119
124
|
"""
|
|
120
125
|
kwargs: dict[str, object] = {}
|
|
121
126
|
|
|
@@ -171,17 +176,26 @@ def _validator_constraints(field: MetaField, wire: bool = False) -> dict[str, ob
|
|
|
171
176
|
kwargs["pattern"] = _HOSTNAME_REGEX
|
|
172
177
|
|
|
173
178
|
# FR-036 Pin 1 (#224 — WIRE TIER ONLY) — a @required non-array string is
|
|
174
|
-
# non-empty: reject null / "" but ACCEPT whitespace-only. Emit an
|
|
175
|
-
# min_length of 1
|
|
176
|
-
#
|
|
179
|
+
# non-empty by default: reject null / "" but ACCEPT whitespace-only. Emit an
|
|
180
|
+
# implicit min_length of 1 ONLY when no validator.length @min was authored.
|
|
181
|
+
# Never applied to the in-process read model (wire=False).
|
|
182
|
+
#
|
|
183
|
+
# An explicitly authored @min is always AUTHORITATIVE over the implicit floor
|
|
184
|
+
# (ADR-0044 ruling on #224) — @min: 0 restores "must be provided, may be
|
|
185
|
+
# empty" by opting out of the non-empty floor entirely. Per the cross-port
|
|
186
|
+
# emission pin, an authored @min: 0 emits NO minimum constraint at all
|
|
187
|
+
# (cleanest, deterministic output across ports), so it is popped rather than
|
|
188
|
+
# kept as min_length=0.
|
|
177
189
|
if (
|
|
178
190
|
wire
|
|
179
191
|
and field.sub_type == fc.FIELD_SUBTYPE_STRING
|
|
180
192
|
and not field_is_array(field)
|
|
181
193
|
and field.attrs().get(fc.FIELD_ATTR_REQUIRED) is True
|
|
182
194
|
):
|
|
183
|
-
|
|
184
|
-
|
|
195
|
+
if min_len is None:
|
|
196
|
+
kwargs["min_length"] = 1
|
|
197
|
+
elif min_len == 0:
|
|
198
|
+
kwargs.pop("min_length", None)
|
|
185
199
|
|
|
186
200
|
return kwargs
|
|
187
201
|
|
|
@@ -196,7 +210,7 @@ def _constraint_parts(constraints: dict[str, object]) -> list[str]:
|
|
|
196
210
|
|
|
197
211
|
|
|
198
212
|
def _type_expr_for_field(
|
|
199
|
-
field: MetaField, imports: set[str], config: GenConfig, wire: bool
|
|
213
|
+
field: MetaField, imports: set[str], config: GenConfig, *, wire: bool
|
|
200
214
|
) -> tuple[str, str | None]:
|
|
201
215
|
"""The Python annotation text for *field* (arrays wrapped in ``list[...]``) plus the
|
|
202
216
|
shared-enum class name when the field resolves to one (used to render an enum
|
|
@@ -211,7 +225,10 @@ def _type_expr_for_field(
|
|
|
211
225
|
``@objectRef`` annotates with the referenced VO's own WIRE model (``<Ref>Create``)
|
|
212
226
|
rather than its read model, so a required-string Pin 1 violation nested inside the
|
|
213
227
|
VO still validates on the wire (api-contract jsonb r10). A VO's own Create lines
|
|
214
|
-
are emitted through this same wire path, so nested-VO-in-VO recurses naturally.
|
|
228
|
+
are emitted through this same wire path, so nested-VO-in-VO recurses naturally.
|
|
229
|
+
|
|
230
|
+
*wire* is keyword-only and REQUIRED (no default, item 5 of the #224 cleanup)
|
|
231
|
+
— see ``_validator_constraints`` for the rationale."""
|
|
215
232
|
shared = (
|
|
216
233
|
fr019.shared_enum_for_field(field)
|
|
217
234
|
if field.sub_type == fc.FIELD_SUBTYPE_ENUM
|
|
@@ -275,7 +292,7 @@ def origin_guaranteed_non_null(field: MetaField) -> bool:
|
|
|
275
292
|
|
|
276
293
|
def _field_line(field: MetaField, imports: set[str], config: GenConfig) -> tuple[str, bool]:
|
|
277
294
|
"""Return (source line, uses_field). Collects required imports into *imports*."""
|
|
278
|
-
type_expr, enum_type_name = _type_expr_for_field(field, imports, config)
|
|
295
|
+
type_expr, enum_type_name = _type_expr_for_field(field, imports, config, wire=False)
|
|
279
296
|
required = field.attrs().get(fc.FIELD_ATTR_REQUIRED) is True
|
|
280
297
|
default_raw = field.attrs().get(fc.FIELD_ATTR_DEFAULT)
|
|
281
298
|
# A server-side expression default (now(), gen_random_uuid(), CURRENT_TIMESTAMP)
|
|
@@ -283,7 +300,7 @@ def _field_line(field: MetaField, imports: set[str], config: GenConfig) -> tuple
|
|
|
283
300
|
# its required/optional shape). Only literal defaults become Pydantic defaults.
|
|
284
301
|
has_default = default_raw is not None and not _is_sql_expr_default(default_raw)
|
|
285
302
|
|
|
286
|
-
parts = _constraint_parts(_validator_constraints(field))
|
|
303
|
+
parts = _constraint_parts(_validator_constraints(field, wire=False))
|
|
287
304
|
uses_field = bool(parts)
|
|
288
305
|
|
|
289
306
|
# @default — render an enum member (Type.MEMBER, UPPER_CASE) or a Python literal.
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{ "type": "validator", "subType": "*", "name": "*", "min": 0, "max": null },
|
|
11
11
|
{ "type": "view", "subType": "*", "name": "*", "min": 0, "max": null },
|
|
12
12
|
{ "type": "origin", "subType": "*", "name": "*", "min": 0, "max": null },
|
|
13
|
-
{ "type": "attr", "subType": "boolean", "name": "required", "min": 0, "max": 1, "description": "When true, the field is NOT NULL. Equivalent to attaching a validator.required child." },
|
|
13
|
+
{ "type": "attr", "subType": "boolean", "name": "required", "min": 0, "max": 1, "description": "When true, the field is NOT NULL. Equivalent to attaching a validator.required child. On a non-array string, generated wire-tier input validation (create/patch) additionally rejects the empty string by default — whitespace is accepted — unless an explicit validator.length @min: 0 opts back to presence-only. In-process read models never enforce this at construction." },
|
|
14
14
|
{ "type": "attr", "subType": "boolean", "name": "readOnly", "min": 0, "max": 1, "description": "FR-013: when true, the field is read-only — codegen emits no setter / writable property, the persistence layer skips the column on INSERT/UPDATE, and Zod/Pydantic/class-validator schemas mark it read-only on input variants. The value is populated by the database (computed column, default expression, trigger), by replication, or by another external owner." },
|
|
15
15
|
{ "type": "attr", "name": "default", "min": 0, "max": 1, "description": "Default value applied to the column when no value is supplied. Its type follows the field's own subtype (string / boolean / number / ...). Converted at consumption time via MetaField.defaultValue()." },
|
|
16
16
|
{ "type": "attr", "subType": "boolean", "name": "unique", "min": 0, "max": 1, "description": "When true, the field gets a column-level UNIQUE constraint." }
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
{
|
|
14
14
|
"type": "validator",
|
|
15
15
|
"subType": "required",
|
|
16
|
-
"description": "Fails when the value is null
|
|
17
|
-
"whenToUse": "A field must be present (NOT NULL). Declare it instead of hand-writing a
|
|
16
|
+
"description": "Fails when the value is null (NOT NULL). Equivalent to @required on the owning field: on a non-array string, generated wire-tier input validation also rejects the empty string by default unless an explicit validator.length @min: 0 opts back to presence-only.",
|
|
17
|
+
"whenToUse": "A field must be present (NOT NULL). Declare it instead of hand-writing a presence check."
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
"type": "validator",
|
|
@@ -47,7 +47,7 @@ def test_gen_nudges_on_stale_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
|
47
47
|
assert rc == 0 # advisory: never changes the exit code
|
|
48
48
|
err = capsys.readouterr().err
|
|
49
49
|
assert "0.0.1-old" in err
|
|
50
|
-
assert "
|
|
50
|
+
assert "npx meta agent-docs" in err
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
def test_verify_nudges_on_stale_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
@@ -65,7 +65,7 @@ def test_verify_nudges_on_stale_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
|
65
65
|
assert rc == 0
|
|
66
66
|
err = capsys.readouterr().err
|
|
67
67
|
assert "0.0.1-old" in err
|
|
68
|
-
assert "
|
|
68
|
+
assert "npx meta agent-docs" in err
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
def test_gen_silent_when_no_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
@@ -76,7 +76,7 @@ def test_gen_silent_when_no_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
|
76
76
|
rc = main(["gen", meta_dir, "--out", str(out)])
|
|
77
77
|
assert rc == 0
|
|
78
78
|
err = capsys.readouterr().err
|
|
79
|
-
assert "
|
|
79
|
+
assert "npx meta agent-docs" not in err
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
def test_gen_silent_on_corrupt_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
@@ -90,4 +90,4 @@ def test_gen_silent_on_corrupt_manifest(tmp_path, capsys, monkeypatch) -> None:
|
|
|
90
90
|
rc = main(["gen", meta_dir, "--out", str(out)])
|
|
91
91
|
assert rc == 0
|
|
92
92
|
err = capsys.readouterr().err
|
|
93
|
-
assert "
|
|
93
|
+
assert "npx meta agent-docs" not in err
|
|
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.1 → metaobjects-0.19.2}/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.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/payload_vo_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/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.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/codegen/template_codegen/template_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/sources/meta_data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/loader/validate_source_physical_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/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.19.1 → metaobjects-0.19.2}/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.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/layout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/layout/meta_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/ui/ui_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/view/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/meta/presentation/view/meta_view.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/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.1 → metaobjects-0.19.2}/src/metaobjects/meta/template/template_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/json_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/extract/xml_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/output_format_renderer.py
RENAMED
|
File without changes
|
{metaobjects-0.19.1 → metaobjects-0.19.2}/src/metaobjects/render/prompt/output_format_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|