metaobjects 0.17.0__tar.gz → 0.19.0__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.17.0 → metaobjects-0.19.0}/PKG-INFO +1 -1
- {metaobjects-0.17.0 → metaobjects-0.19.0}/pyproject.toml +1 -1
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/__init__.py +1 -0
- metaobjects-0.19.0/src/metaobjects/spec_metamodel/ui-web.json +21 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/ui.json +2 -1
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/view.json +2 -1
- metaobjects-0.19.0/tests/codegen/test_origin_nullability.py +129 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/.gitignore +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/LICENSE +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/README.md +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/hatch_build.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/entity_model.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/errors.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validate_source_escapes.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validation_passes.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/codegen/test_write_through.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/normalization.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_generated_router_uuid_pk.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_verify.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/__init__.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_object_manager_write_through.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_source_escapes.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_validation_origin_195.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/tests/unit/test_yaml_desugar.py +0 -0
- {metaobjects-0.17.0 → metaobjects-0.19.0}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.19.0
|
|
4
4
|
Summary: Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port.
|
|
5
5
|
Project-URL: Homepage, https://metaobjects.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/metaobjectsdev/metaobjects
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "metaobjects"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.19.0"
|
|
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"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"provider": "metaobjects-ui-web",
|
|
3
|
+
"extends": [
|
|
4
|
+
{
|
|
5
|
+
"type": "view", "subType": "textarea",
|
|
6
|
+
"children": [
|
|
7
|
+
{ "type": "attr", "subType": "int", "name": "rows", "min": 0, "max": 1, "description": "Visible row count for the generated <textarea>; the form generator defaults to 4 when absent." }
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type": "view", "subType": "image",
|
|
12
|
+
"children": [
|
|
13
|
+
{ "type": "attr", "subType": "double", "name": "aspectRatio", "min": 0, "max": 1, "description": "Crop aspect ratio (width / height). Omit for freeform." },
|
|
14
|
+
{ "type": "attr", "subType": "int", "name": "maxEdge", "min": 0, "max": 1, "description": "Longest-edge bound in px for the re-encoded output." },
|
|
15
|
+
{ "type": "attr", "subType": "string", "name": "store", "min": 0, "max": 1, "description": "Opaque storage-namespace hint passed to the upload adapter (not infrastructure)." },
|
|
16
|
+
{ "type": "attr", "subType": "string", "name": "accept", "isArray": true, "min": 0, "max": 1, "description": "Accepted MIME types (client guard; the server re-enforces)." },
|
|
17
|
+
{ "type": "attr", "subType": "int", "name": "maxBytes", "min": 0, "max": 1, "description": "Client-side size ceiling in bytes." }
|
|
18
|
+
]
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
"children": [
|
|
8
8
|
{ "type": "attr", "subType": "boolean", "name": "filterable", "min": 0, "max": 1, "description": "When true, the field is exposed in generated CRUD filter allowlists (Project D filter layer)." },
|
|
9
9
|
{ "type": "attr", "subType": "boolean", "name": "sortable", "min": 0, "max": 1, "description": "When true, the field is exposed in generated CRUD sort allowlists. Inherits from @filterable by default; set false to opt out." },
|
|
10
|
-
{ "type": "attr", "subType": "string", "name": "sortableDefaultOrder", "min": 0, "max": 1, "allowedValues": ["asc", "desc"], "description": "Default sort direction applied when this field is the default sort field." }
|
|
10
|
+
{ "type": "attr", "subType": "string", "name": "sortableDefaultOrder", "min": 0, "max": 1, "allowedValues": ["asc", "desc"], "description": "Default sort direction applied when this field is the default sort field." },
|
|
11
|
+
{ "type": "attr", "subType": "boolean", "name": "formExclude", "min": 0, "max": 1, "description": "When true, the field is omitted from generated forms. Inert on fields for which no form is generated (e.g. projection/derived fields)." }
|
|
11
12
|
]
|
|
12
13
|
},
|
|
13
14
|
{
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"type": "view",
|
|
71
71
|
"subType": "currency",
|
|
72
72
|
"description": "Currency display formatting (locale-aware via @locale)."
|
|
73
|
-
}
|
|
73
|
+
},
|
|
74
|
+
{ "type": "view", "subType": "image", "description": "Image upload/display control; the field stores an opaque storage key (field.string)." }
|
|
74
75
|
]
|
|
75
76
|
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"""#195 — the ``origin_guaranteed_non_null`` contract drives read-model nullability.
|
|
2
|
+
|
|
3
|
+
A projection field derived by ``origin.aggregate @agg:any|all|collect`` is
|
|
4
|
+
COALESCE-guaranteed non-null in the synthesized view (any→false, all→true,
|
|
5
|
+
collect→[]), so the generated Pydantic read model types it as MANDATORY even when
|
|
6
|
+
the field is not ``@required``. ``origin.first`` (an empty related set selects no
|
|
7
|
+
row → null) and ``origin.computed`` (nullability is expression-dependent) stay the
|
|
8
|
+
conservative nullable default.
|
|
9
|
+
|
|
10
|
+
Mirrors the TS ``codegen-ts`` ``projection-decl.test.ts`` "#195 projection
|
|
11
|
+
read-schema nullability" block — the Python port had the ``origin_guaranteed_non_null``
|
|
12
|
+
logic (``entity_model.py``) but no test pinning it.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import metaobjects.core_types # noqa: F401 — side-effect: registers attr classes
|
|
16
|
+
from metaobjects.codegen.generators.entity_model import (
|
|
17
|
+
origin_guaranteed_non_null,
|
|
18
|
+
render_entity_model,
|
|
19
|
+
)
|
|
20
|
+
from metaobjects.meta.core.field import field_constants as fc
|
|
21
|
+
from metaobjects.meta.core.field.meta_field import MetaField
|
|
22
|
+
from metaobjects.meta.core.object.meta_object import MetaObject
|
|
23
|
+
from metaobjects.meta.persistence.origin.meta_origin import MetaOrigin
|
|
24
|
+
from metaobjects.meta.persistence.origin.origin_constants import (
|
|
25
|
+
AGG_ALL,
|
|
26
|
+
AGG_ANY,
|
|
27
|
+
AGG_COLLECT,
|
|
28
|
+
ORIGIN_ATTR_AGG,
|
|
29
|
+
ORIGIN_SUBTYPE_AGGREGATE,
|
|
30
|
+
ORIGIN_SUBTYPE_COMPUTED,
|
|
31
|
+
ORIGIN_SUBTYPE_FIRST,
|
|
32
|
+
)
|
|
33
|
+
from metaobjects.meta.persistence.source.meta_source import MetaSource
|
|
34
|
+
from metaobjects.meta.persistence.source.source_constants import (
|
|
35
|
+
SOURCE_ATTR_KIND,
|
|
36
|
+
SOURCE_KIND_VIEW,
|
|
37
|
+
SOURCE_SUBTYPE_RDB,
|
|
38
|
+
)
|
|
39
|
+
from metaobjects.shared.base_types import (
|
|
40
|
+
TYPE_FIELD,
|
|
41
|
+
TYPE_OBJECT,
|
|
42
|
+
TYPE_ORIGIN,
|
|
43
|
+
TYPE_SOURCE,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def _aggregate(agg: str) -> MetaOrigin:
|
|
48
|
+
o = MetaOrigin(TYPE_ORIGIN, ORIGIN_SUBTYPE_AGGREGATE, agg)
|
|
49
|
+
o.set_attr(ORIGIN_ATTR_AGG, agg)
|
|
50
|
+
return o
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def _origin(sub_type: str) -> MetaOrigin:
|
|
54
|
+
return MetaOrigin(TYPE_ORIGIN, sub_type, "")
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def _field(
|
|
58
|
+
name: str, sub: str, origin: MetaOrigin, *, is_array: bool = False
|
|
59
|
+
) -> MetaField:
|
|
60
|
+
f = MetaField(TYPE_FIELD, sub, name)
|
|
61
|
+
f.is_array = is_array
|
|
62
|
+
f.add_child(origin)
|
|
63
|
+
return f
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# ── origin_guaranteed_non_null (the function under test) ─────────────────────
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def test_guaranteed_non_null_true_for_any_all_collect() -> None:
|
|
70
|
+
for agg in (AGG_ANY, AGG_ALL, AGG_COLLECT):
|
|
71
|
+
f = _field("x", fc.FIELD_SUBTYPE_BOOLEAN, _aggregate(agg))
|
|
72
|
+
assert origin_guaranteed_non_null(f) is True, agg
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def test_guaranteed_non_null_false_for_first_and_computed() -> None:
|
|
76
|
+
for sub in (ORIGIN_SUBTYPE_FIRST, ORIGIN_SUBTYPE_COMPUTED):
|
|
77
|
+
f = _field("x", fc.FIELD_SUBTYPE_STRING, _origin(sub))
|
|
78
|
+
assert origin_guaranteed_non_null(f) is False, sub
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def test_guaranteed_non_null_false_without_origin() -> None:
|
|
82
|
+
plain = MetaField(TYPE_FIELD, fc.FIELD_SUBTYPE_STRING, "x")
|
|
83
|
+
assert origin_guaranteed_non_null(plain) is False
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# ── end-to-end read-model typing ─────────────────────────────────────────────
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def _projection() -> MetaObject:
|
|
90
|
+
"""A view-backed read projection carrying one field per #195 origin kind — all
|
|
91
|
+
NON-required, so nullability is decided purely by origin_guaranteed_non_null."""
|
|
92
|
+
o = MetaObject(TYPE_OBJECT, "entity", "OrderInsights")
|
|
93
|
+
o.package = "acme::test"
|
|
94
|
+
src = MetaSource(TYPE_SOURCE, SOURCE_SUBTYPE_RDB, "")
|
|
95
|
+
src.set_attr(SOURCE_ATTR_KIND, SOURCE_KIND_VIEW, sub_type="string")
|
|
96
|
+
o.add_child(src)
|
|
97
|
+
o.add_child(MetaField(TYPE_FIELD, fc.FIELD_SUBTYPE_INT, "id"))
|
|
98
|
+
o.add_child(_field("hasLong", fc.FIELD_SUBTYPE_BOOLEAN, _aggregate(AGG_ANY)))
|
|
99
|
+
o.add_child(_field("allLong", fc.FIELD_SUBTYPE_BOOLEAN, _aggregate(AGG_ALL)))
|
|
100
|
+
o.add_child(
|
|
101
|
+
_field(
|
|
102
|
+
"labels", fc.FIELD_SUBTYPE_STRING, _aggregate(AGG_COLLECT), is_array=True
|
|
103
|
+
)
|
|
104
|
+
)
|
|
105
|
+
o.add_child(
|
|
106
|
+
_field("latest", fc.FIELD_SUBTYPE_STRING, _origin(ORIGIN_SUBTYPE_FIRST))
|
|
107
|
+
)
|
|
108
|
+
o.add_child(
|
|
109
|
+
_field("flag", fc.FIELD_SUBTYPE_BOOLEAN, _origin(ORIGIN_SUBTYPE_COMPUTED))
|
|
110
|
+
)
|
|
111
|
+
return o
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def test_read_model_typing_any_all_collect_mandatory_first_computed_optional() -> None:
|
|
115
|
+
# A view-backed projection is read-only (no Create/Patch model), so the whole
|
|
116
|
+
# rendered module is the read model.
|
|
117
|
+
read_model = render_entity_model(_projection())
|
|
118
|
+
|
|
119
|
+
# any / all / collect → COALESCE-guaranteed → mandatory, NO ``| None``.
|
|
120
|
+
assert "hasLong: bool" in read_model
|
|
121
|
+
assert "hasLong: bool | None" not in read_model
|
|
122
|
+
assert "allLong: bool" in read_model
|
|
123
|
+
assert "allLong: bool | None" not in read_model
|
|
124
|
+
assert "labels: list[str]" in read_model
|
|
125
|
+
assert "labels: list[str] | None" not in read_model
|
|
126
|
+
|
|
127
|
+
# first / computed → conservative nullable.
|
|
128
|
+
assert "latest: str | None" in read_model
|
|
129
|
+
assert "flag: bool | None" in read_model
|
|
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.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/payload_vo_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/layout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/layout/meta_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/ui/ui_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/view/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/meta/presentation/view/meta_view.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/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.17.0 → metaobjects-0.19.0}/src/metaobjects/render/extract/xml_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/output_format_renderer.py
RENAMED
|
File without changes
|
{metaobjects-0.17.0 → metaobjects-0.19.0}/src/metaobjects/render/prompt/output_format_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|