metaobjects 1.1.3__tar.gz → 1.1.4__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-1.1.3 → metaobjects-1.1.4}/PKG-INFO +1 -1
- {metaobjects-1.1.3 → metaobjects-1.1.4}/pyproject.toml +1 -1
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_reporting.py +13 -3
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/reporting_constants.py +7 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/registry_manifest.py +1 -1
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/dialect.py +11 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/object_manager.py +1 -2
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_object_manager_dialects.py +13 -2
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_object_manager_report.py +1 -1
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_reporting_accessors.py +1 -1
- {metaobjects-1.1.3 → metaobjects-1.1.4}/uv.lock +1 -1
- {metaobjects-1.1.3 → metaobjects-1.1.4}/.gitignore +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/LICENSE +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/README.md +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/hatch_build.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/scripts/generate_embedded_library.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/cli.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/_moved.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/collection_name_collision.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/collision_names.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/eject.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/api_docs_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/entity_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/find_inbound.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/names_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/requirement_tests_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/metaobjects-config.schema.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/model_walk.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/orphan_sweep.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/output_format_spec_emitter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/project_config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/project_import.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/requirement_hooks.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/requirement_walk.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/api_docs_builder.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/api_docs_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/api_docs_paths.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/api_docs_renderer.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/constraint_errors.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/decimal_wire.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/extract_delegate_emitter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/extract_schema_emitter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/fr010_field_mapping.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/fr019_shared_enum.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/m2m_codegen.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/output_format_spec_emitter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/shared_predicates.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/value_objects.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/config/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/config/dependencies.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/config/neutral_config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/config/source_resolver.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/core_types.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/datatype.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/errors.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/field_lint.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/fmt.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/library/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/library/embedded_library.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/library/library_sources.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/resolve_references.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_enum_normalize_ambiguity.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_field_mutability.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_source_escapes.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validation_passes.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/relationship_references.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/meta_dimension.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/meta_measure.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/meta_segment.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/report_accessors.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/report_read_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/report_shape.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/requirement/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/requirement/meta_requirement.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/requirement/requirement_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/requirement/resolve_claim.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta_endpoint.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/naming.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/parser.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/py.typed +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/registry.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/payload_accessors.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/requirement_check.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/drivers.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/runtime/validator_runner.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/scope.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/source_resolution.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/reporting.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/requirement.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/ui-web.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/wire.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/config_helpers.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/gen_suite.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_config_gen.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_config_verify.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_dependencies.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_fmt.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_gen_unknown_attr.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_help_removed_flags.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_providers.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_render_helper_template_root.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_surface.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_verify_field_lint.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_verify_requirements.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_codegen_compile_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_collection_name_collision.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_config_run_settings.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_cross_package_binding_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_docs_generators.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_eject.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_eject_alone.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_eject_independence.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_eject_runtime.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_extract_tier_collision.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_fmt_format_file.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_format.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_fr010_nested_object_prompt.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_gen_state_keying.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_golden.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_hand_edits.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_moved_modules.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_names_extends_chain.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_names_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_no_magic_physical_names.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_one_generator_list.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_origin_nullability.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_orphan_sweep.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_overwrite_policy_hash.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_project_config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_project_import.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_projection_docs_routes.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_recipe_generators.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_report_router.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_requirement_tests_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_route_path_naming.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_router_autoset.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_router_generator_m2m_target_tph.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_router_generator_tph_m2m.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_router_generator_tph_m2m_shadowed.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_runner.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_source_resolution.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_sourceless_entity_surface.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_sourceless_projection.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_value_objects.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/codegen/test_write_through.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/config/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/config/test_dependencies.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/config/test_library_package_guard.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/config/test_neutral_config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/config/test_neutral_config_unknown_key.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/config/test_source_resolver.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/capabilities.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/corpus.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/eject_contract.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/navigator.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_conformance_twin_roundtrip.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_dependency_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_eject_contract.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_extract_object_array_bounds.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_field_lint_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_fmt_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_naming_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_provider_composition_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_requirement_check_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_requirement_test_identity_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_scope_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_source_resolution_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_wire_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/conftest.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/corpus_config.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/engines.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/generated_projection_app.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/generated_report_app.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/mysql_container.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/normalization.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/postgres_container.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/query_runner.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/report_lane.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/scenarios.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_decimal.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_projection.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_report.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_generated_decimal_wire.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_generated_router_uuid_pk.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_m2m_target_tph_generated.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_normalization.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_tph_m2m_generated.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/integration/test_tph_m2m_shadowed_generated.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_abstract_subtype_authored.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_child_wrapper_body_shape.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_enum_extends_values_conflict.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_field_mutability_order.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_library_packages.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_naming_discovery.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_relative_package_multi_root.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_shipped_library_ai.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/loader/test_template_payload_target_210.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_email_document.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_render_model_payload.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_verify.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_constraint_errors.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_decimal_wire.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_literal_naming_sqlite.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_object_manager_currency_read.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_object_manager_enum_intvaluemap.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_object_manager_table_name.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_validation_conformance_runtime.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/runtime/test_validator_runner.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_json_path.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/test_api_docs_packages.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/test_meta_endpoint.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/test_report_read_model.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/test_report_shape.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/test_reporting_inert.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/__init__.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_column_naming_strategy.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_core_types.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_derive_m2m_declaring_entity.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_effective_children_sibling_shadowing.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_errors.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_field_enum_intvaluemap.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_file_source_id.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_inherited_reference_binding.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_loader.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_merge.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_no_dead_config_fields.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_object_manager_autoset_stamping.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_object_manager_write_through.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_parser.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_provider.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_registry.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_relationship_m2m_validation.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_relationship_references.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_reporting_validation_spine_default.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_resolve_claim.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_serializer.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_serializer_shared_document.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_smoke.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_source_escapes.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_sources.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_validation_origin_195.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-1.1.3 → metaobjects-1.1.4}/tests/unit/test_yaml_desugar.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.4
|
|
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 = "1.1.
|
|
3
|
+
version = "1.1.4"
|
|
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"
|
|
@@ -96,6 +96,8 @@ from ..meta.core.reporting.reporting_constants import (
|
|
|
96
96
|
AGG_MIN,
|
|
97
97
|
AGG_SUM,
|
|
98
98
|
FILTER_RELATIVE_NOW,
|
|
99
|
+
FILTER_RELATIVE_START_OF,
|
|
100
|
+
RELATIVE_START_OF_UNITS,
|
|
99
101
|
GRAIN_HOUR,
|
|
100
102
|
ISO_DURATION_RE,
|
|
101
103
|
MEASURE_SUBTYPE_AGGREGATE,
|
|
@@ -310,7 +312,7 @@ def _is_document_field(field: MetaData) -> bool:
|
|
|
310
312
|
|
|
311
313
|
def _is_relative_value(v: object) -> TypeGuard[dict[str, object]]:
|
|
312
314
|
"""An object operand carrying a ``now`` key — a relative-date value, well-formed
|
|
313
|
-
(
|
|
315
|
+
(``{ now }`` plus an optional ``startOf``) or not. A malformed one is refused, never read as data."""
|
|
314
316
|
return isinstance(v, dict) and FILTER_RELATIVE_NOW in v
|
|
315
317
|
|
|
316
318
|
|
|
@@ -861,10 +863,10 @@ def _check_filter(
|
|
|
861
863
|
relative = _relative_operand(operand)
|
|
862
864
|
if relative is None:
|
|
863
865
|
continue
|
|
864
|
-
if
|
|
866
|
+
if not set(relative) <= {FILTER_RELATIVE_NOW, FILTER_RELATIVE_START_OF}:
|
|
865
867
|
err(
|
|
866
868
|
f"@filter on '{key}' has a malformed relative date {_js_json(relative)}; a relative date is "
|
|
867
|
-
f'
|
|
869
|
+
f'{{ now: "<ISO-8601 duration>" }} with an optional startOf, and no other keys.'
|
|
868
870
|
)
|
|
869
871
|
continue
|
|
870
872
|
if field.sub_type not in _TEMPORAL_FIELD_SUBTYPES:
|
|
@@ -885,6 +887,14 @@ def _check_filter(
|
|
|
885
887
|
f"@filter on '{key}' has relative date '{_quote_value(duration)}', which is not an ISO-8601 "
|
|
886
888
|
f"duration (e.g. '-P7D', '-PT12H')."
|
|
887
889
|
)
|
|
890
|
+
continue
|
|
891
|
+
if FILTER_RELATIVE_START_OF in relative:
|
|
892
|
+
start_of = relative[FILTER_RELATIVE_START_OF]
|
|
893
|
+
if not isinstance(start_of, str) or start_of not in RELATIVE_START_OF_UNITS:
|
|
894
|
+
err(
|
|
895
|
+
f"@filter on '{key}' has startOf '{_quote_value(start_of)}'; startOf is one of "
|
|
896
|
+
f"{', '.join(RELATIVE_START_OF_UNITS)}."
|
|
897
|
+
)
|
|
888
898
|
|
|
889
899
|
|
|
890
900
|
# ---------------------------------------------------------------------------
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/reporting_constants.py
RENAMED
|
@@ -107,6 +107,13 @@ REPORT_DIMENSION_GRAIN_SEPARATOR = ":"
|
|
|
107
107
|
#: Legal only in the ``@filter`` of a ``segment``, ``measure.aggregate`` or ``object.report``.
|
|
108
108
|
FILTER_RELATIVE_NOW = "now"
|
|
109
109
|
|
|
110
|
+
#: The optional second key of a relative-date value: ``{ "now": "-P90D", "startOf": "day" }``
|
|
111
|
+
#: truncates the instant (after the duration is applied) to the start of that UTC calendar unit.
|
|
112
|
+
FILTER_RELATIVE_START_OF = "startOf"
|
|
113
|
+
|
|
114
|
+
#: The calendar units ``startOf`` accepts. A week is the ISO week, Monday start.
|
|
115
|
+
RELATIVE_START_OF_UNITS: tuple[str, ...] = ("day", "week", "month")
|
|
116
|
+
|
|
110
117
|
#: A signed ISO-8601 duration (``-P7D``, ``P1Y2M``, ``-PT12H``). The lookaheads refuse
|
|
111
118
|
#: the degenerate ``P`` and ``PT`` forms (a designator with no component). The pattern
|
|
112
119
|
#: is the rule table's verbatim; ``\Z`` stands in for JS ``$`` (Python ``$`` would also
|
|
@@ -255,7 +255,7 @@ def _sorted_children(definition: TypeDefinition) -> list[dict[str, object]]:
|
|
|
255
255
|
return children
|
|
256
256
|
|
|
257
257
|
|
|
258
|
-
METAMODEL_VERSION = "1.
|
|
258
|
+
METAMODEL_VERSION = "1.2"
|
|
259
259
|
"""Rolled-up spec-version for the cross-port registry manifest.
|
|
260
260
|
|
|
261
261
|
``"0"`` = pre-1.0 / unstable (semver major-0). Flips to ``"1.0"`` at the
|
|
@@ -68,6 +68,12 @@ class Dialect:
|
|
|
68
68
|
"""``col LIKE pattern`` with the pattern verbatim and the match case-SENSITIVE."""
|
|
69
69
|
return f"{quoted_column} LIKE {self.placeholder}", [pattern]
|
|
70
70
|
|
|
71
|
+
def order_term(self, quoted_column: str, descending: bool) -> str:
|
|
72
|
+
"""One ``ORDER BY`` term with nulls LARGER than any value: ASC puts them last, DESC
|
|
73
|
+
first, on every engine. That is Postgres's own default, so this is its native form;
|
|
74
|
+
SQLite and MySQL would put nulls first on ASC."""
|
|
75
|
+
return f"{quoted_column} {'DESC NULLS FIRST' if descending else 'ASC NULLS LAST'}"
|
|
76
|
+
|
|
71
77
|
def false_predicate(self) -> str:
|
|
72
78
|
return "FALSE"
|
|
73
79
|
|
|
@@ -270,6 +276,11 @@ class MySqlDialect(Dialect):
|
|
|
270
276
|
default_values = "() VALUES ()"
|
|
271
277
|
unbounded_limit = "18446744073709551615"
|
|
272
278
|
|
|
279
|
+
def order_term(self, quoted_column: str, descending: bool) -> str:
|
|
280
|
+
# No NULLS FIRST/LAST on MySQL: a leading `col IS NULL` key (0 for a value, 1 for null).
|
|
281
|
+
d = "DESC" if descending else "ASC"
|
|
282
|
+
return f"({quoted_column} IS NULL) {d}, {quoted_column} {d}"
|
|
283
|
+
|
|
273
284
|
def quote(self, ident: str) -> str:
|
|
274
285
|
if "`" in ident:
|
|
275
286
|
raise ValueError(f"unsafe identifier: {ident}")
|
|
@@ -634,8 +634,7 @@ class ObjectManager:
|
|
|
634
634
|
for field_name, direction in sort:
|
|
635
635
|
f = entity.find_field(field_name)
|
|
636
636
|
col = _column_of(f, self._column_naming) if f is not None else field_name
|
|
637
|
-
|
|
638
|
-
order_parts.append(f"{self._d.quote(col)} {d}")
|
|
637
|
+
order_parts.append(self._d.order_term(self._d.quote(col), direction.lower() == "desc"))
|
|
639
638
|
if order_parts:
|
|
640
639
|
sql += " ORDER BY " + ", ".join(order_parts)
|
|
641
640
|
if limit is not None:
|
|
@@ -113,7 +113,7 @@ def test_sqlite_read_uses_qmark_placeholders_and_double_quotes() -> None:
|
|
|
113
113
|
sql, params = rec.sql[-1]
|
|
114
114
|
assert sql == (
|
|
115
115
|
'SELECT "id", "label", "qty", "active", "price", "ref", "madeOn", "seenAt" FROM "items" '
|
|
116
|
-
'WHERE "qty" >= ? AND "label" = ? ORDER BY "qty" DESC LIMIT 5 OFFSET 10'
|
|
116
|
+
'WHERE "qty" >= ? AND "label" = ? ORDER BY "qty" DESC NULLS FIRST LIMIT 5 OFFSET 10'
|
|
117
117
|
)
|
|
118
118
|
assert params == (2, "a")
|
|
119
119
|
|
|
@@ -264,7 +264,7 @@ def test_mysql_read_uses_backticks_and_percent_placeholders() -> None:
|
|
|
264
264
|
sql, params = conn.sql[-1]
|
|
265
265
|
assert sql == (
|
|
266
266
|
"SELECT `id`, `label`, `qty`, `active`, `price`, `ref`, `madeOn`, `seenAt` FROM `items` "
|
|
267
|
-
"WHERE `qty` >= %s AND `label` LIKE BINARY %s ORDER BY `qty` ASC "
|
|
267
|
+
"WHERE `qty` >= %s AND `label` LIKE BINARY %s ORDER BY (`qty` IS NULL) ASC, `qty` ASC "
|
|
268
268
|
"LIMIT 18446744073709551615 OFFSET 4"
|
|
269
269
|
)
|
|
270
270
|
assert params == (2, "A%")
|
|
@@ -415,3 +415,14 @@ def test_a_mysql_decimal_operand_is_cast_to_a_decimal() -> None:
|
|
|
415
415
|
sql, _ = _op_clause("amount", "in", [Decimal("1"), Decimal("2")], f, MYSQL)
|
|
416
416
|
assert sql.count("CAST(%s AS DECIMAL(65,30))") == 2
|
|
417
417
|
assert _op_clause("amount", "eq", Decimal("1.5"), f, POSTGRES)[0] == '"amount" = %s'
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
def test_order_term_puts_nulls_largest_on_every_dialect() -> None:
|
|
421
|
+
from metaobjects.runtime.dialect import MySqlDialect, PostgresDialect, SqliteDialect
|
|
422
|
+
|
|
423
|
+
for d in (PostgresDialect(), SqliteDialect()):
|
|
424
|
+
assert d.order_term('"c"', False) == '"c" ASC NULLS LAST'
|
|
425
|
+
assert d.order_term('"c"', True) == '"c" DESC NULLS FIRST'
|
|
426
|
+
my = MySqlDialect()
|
|
427
|
+
assert my.order_term("`c`", False) == "(`c` IS NULL) ASC, `c` ASC"
|
|
428
|
+
assert my.order_term("`c`", True) == "(`c` IS NULL) DESC, `c` DESC"
|
|
@@ -152,7 +152,7 @@ def test_filter_sort_limit_on_derived_fields() -> None:
|
|
|
152
152
|
"ProgramMinutes", {"weeks": {"gte": 2}}, sort=[("totalMinutes", "desc")], limit=1
|
|
153
153
|
)
|
|
154
154
|
sql = drv.sql[0]
|
|
155
|
-
assert sql.endswith('FROM "v_program_minutes" WHERE "weeks" >= %s ORDER BY "totalMinutes" DESC LIMIT 1')
|
|
155
|
+
assert sql.endswith('FROM "v_program_minutes" WHERE "weeks" >= %s ORDER BY "totalMinutes" DESC NULLS FIRST LIMIT 1')
|
|
156
156
|
assert drv.params[0] == (2,)
|
|
157
157
|
|
|
158
158
|
|
|
@@ -333,7 +333,7 @@ def test_malformed_relative_value_is_refused() -> None:
|
|
|
333
333
|
(
|
|
334
334
|
ErrorCode.ERR_BAD_ATTR_FILTER,
|
|
335
335
|
"report 'acme::shop::DailyRevenue': @filter on 'purchasedAt' has a malformed relative date "
|
|
336
|
-
'{"now":"-P7D","x":1}; a relative date is
|
|
336
|
+
'{"now":"-P7D","x":1}; a relative date is { now: "<ISO-8601 duration>" } with an optional startOf, and no other keys.',
|
|
337
337
|
)
|
|
338
338
|
]
|
|
339
339
|
|
|
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-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/collection_name_collision.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
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/api_docs_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/names_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/template_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/generators/trace_helper_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/metaobjects-config.schema.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/output_format_spec_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/api_docs_renderer.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/constraint_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/extract_delegate_emitter.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/extract_schema_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/fr010_field_mapping.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/runtime/shared_predicates.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/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
|
|
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-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_enum_normalize_ambiguity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/relationship/meta_relationship.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/meta_dimension.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/report_accessors.py
RENAMED
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/reporting/report_read_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/requirement/meta_requirement.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/requirement/resolve_claim.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-1.1.3 → metaobjects-1.1.4}/src/metaobjects/meta/core/validator/validator_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|