metaobjects 0.15.1__tar.gz → 0.15.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {metaobjects-0.15.1 → metaobjects-0.15.2}/PKG-INFO +1 -1
- {metaobjects-0.15.1 → metaobjects-0.15.2}/pyproject.toml +1 -1
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/output_format_spec_emitter.py +8 -4
- metaobjects-0.15.2/tests/codegen/test_fr010_nested_object_prompt.py +59 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/.gitignore +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/LICENSE +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/README.md +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/hatch_build.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/agent_context/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/agent_context/scaffold.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/apidocs/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/apidocs/api_model.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/apidocs/builder.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/apidocs/naming.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/apidocs/paths.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/apidocs/renderer.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/attr_class_map.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/cli.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/KNOWN_GAPS.md +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/config.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/extract_delegate_emitter.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/extract_schema_emitter.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/format.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/fr010_field_mapping.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generator_registry.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/entity_model.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/extractor_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/filter_allowlist_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/fr019_shared_enum.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/m2m_codegen.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/output_parser_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/output_prompt_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/payload_vo_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/render_helper_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/router_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/template_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/tph_plan.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/trace_helper_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/instance_artifacts.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/overwrite_policy.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/runner.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/runtime/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/runtime/filter_parser.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/output_pattern.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/template_data.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/template_spec.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/type_map.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/core_types.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/datatype.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/documentation/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/documentation/doc_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/documentation/doc_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/documentation/doc_schema.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/errors.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/merge.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/meta_data_loader.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/registered_validation.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/directory_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/file_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/meta_data_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/uri_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validate_discriminator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validate_field_readonly.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validate_source_parameter_ref.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validate_source_physical_names.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validation_passes.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/attr/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/attr/attr_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/attr/meta_attr.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/field/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/field/field_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/field/meta_field.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/identity/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/identity/identity_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/identity/meta_identity.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/index/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/index/index_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/index/meta_index.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/meta_object.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/meta_object_aware.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/object_class_registry.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/object_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/object_extract.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/value_object.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/relationship/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/relationship/derive_m2m_fields.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/relationship/meta_relationship.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/relationship/relationship_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/validator/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/validator/validator_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/meta_data.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/meta_root.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/db/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/db/db_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/db/db_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/origin/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/origin/meta_origin.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/origin/origin_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/source/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/source/meta_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/source/source_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/layout/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/layout/layout_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/layout/meta_layout.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/ui/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/ui/ui_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/view/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/view/meta_view.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/view/view_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/provider_extends.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/template/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/template/meta_template.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/template/prompt_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/template/template_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/naming_refs.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/parser.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/parser_yaml.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/py.typed +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/registry.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/registry_manifest.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/email_document.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/escapers.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/KNOWN_GAPS.md +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/coerce.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/extract.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/extract_map.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/json_forgiving_reader.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/locate.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/normalize.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/strip.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/types.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/xml_forgiving_reader.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/filesystem_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/output_format_renderer.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/output_format_spec.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/prompt_field.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/prompt_overrides.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/prompt_style.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/renderer.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/verify.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/runtime/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/runtime/llm_recorder.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/runtime/n2m_resolver.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/runtime/object_manager.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/runtime/tph.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/serializer_json.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/shared/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/shared/base_types.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/shared/separators.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/shared/structural.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/source/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/source/error_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/source/json_path.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/source/semantic_diff.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/source/yaml_positions.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/attr.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/db.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/documentation.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/field.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/identity.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/index.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/layout.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/object.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/origin.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/prompt.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/relationship.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/source.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/template.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/ui.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/validator.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/spec_metamodel/view.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/super_resolve.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/validation_types.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/yaml_desugar.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/extends/expected/BaseEntity.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/extends/expected/Program.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/extends/meta.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/nested-array/expected/AuthorBrief.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/nested-array/expected/PostBrief.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/nested-array/meta.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/scalars/expected/Metric.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/scalars/expected/Report.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/scalars/meta.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/vanilla/expected/Subscriber.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/golden/vanilla/meta.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_abstract_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_api_docs_builder.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_api_docs_paths.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_cli.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_cli_registry.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_cli_staleness_nudge.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_cli_verify_strict.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_cli_verify_subverbs.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_constants_config.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_entity_model.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_enum_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_extends_abstract_field_inheritance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_extractor_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_filter_allowlist_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_format.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_fr010_output_codegen.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_fr019_shared_provided_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_generator_extension_seams.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_golden.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_inherit_without_restate_gate.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_inheritance_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_instance_artifacts.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_m2m_codegen.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_output_parser_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_overwrite_policy.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_payload_vo_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_projection_compile.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_render_helper_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_render_helper_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_reverse_finders.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_router_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_runner.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_template_data.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_template_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_template_output_pattern.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_template_scope_helpers.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_template_scope_walk.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_template_spec.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_tph_codegen.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_trace_helper_generator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_type_map.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/codegen/test_validation_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/capabilities.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/conformance-expected-failures.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/conformance_adapter.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/corpus.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/expected_failures.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/fixture_discovery.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/navigator.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_api_docs_cross_port_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_extract_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_extract_object_verdict.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_fr010_loader_attrs.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_fr011_attrs.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_generator_registry_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_object_model_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_registry_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_runner_hardfail.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_spec_metamodel_embed.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_strict_attr_load.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_template_codegen_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_template_generator_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/test_yaml_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/conformance/yaml-conformance-expected-failures.json +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/api_contract_assertions.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/api_contract_jsonb_server.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/api_contract_m2m_server.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/api_contract_server.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/generated_jsonb_app.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/generated_m2m_app.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/generated_router_app.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/generated_tph_app.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/meta_ai_trace.yaml +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/normalization.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/postgres_container.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/query_runner.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/scenarios.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_api_contract.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_api_contract_generated.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_api_contract_jsonb.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_api_contract_m2m.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_api_contract_m2m_generated.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_api_contract_tph_generated.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_llm_call_trace.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_normalization.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_query_scenarios.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/integration/test_runtime_return_types.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/open_closed_proof_test.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_coerce.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_extract.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_extract_map.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_json_forgiving_reader.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_locate.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_model.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_normalize.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_strip.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/extract/test_xml_forgiving_reader.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/prompt/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/prompt/test_output_format_renderer.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_email_document.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_filesystem_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_output_format_renderer_nested.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_output_prompt_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_render_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_render_max_chars.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_verify.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/render/test_verify_conformance.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_fr5c_merge_attribution.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_fr5d_reference_resolution.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_fr5e_database_source_shape.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_json_path.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_semantic_diff.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_source_on_node.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/source/test_yaml_positions.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/test_api_docs_accuracy.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/__init__.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_agent_context_staleness.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_capabilities.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_common_attrs.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_core_types.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_effective_package.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_errors.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_field_enum.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_field_map_validation.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_field_uuid_dbcolumntype.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_fr016_source_name_and_kind_aliases.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_index_lookup.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_llm_recorder.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_loader.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_loader_bom.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_loader_class.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_merge.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_meta_attr.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_meta_data.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_meta_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_module_shortcuts.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_n2m_resolver.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_n2m_resolver_inherited.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_object_manager_uuid_coercion.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_one_primary_source.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_parser.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_parser_yaml.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_provider.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_provider_extension.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_registry.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_registry_completeness.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_registry_extend.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_registry_sealed.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_relationship_referential_actions.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_resolution_key.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_runtime_resolution_key_binding.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_serializer.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_shared_constants.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_smoke.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_sources.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_strict_child_placement.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_super_resolve.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_template_toolcall.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_template_wrong_subtype_attrs.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_validation_attr_schema.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_validation_filter_values.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_validation_origin_paths.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_validation_sort_field.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_validation_warnings.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_write_coercion_arrays.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/tests/unit/test_yaml_desugar.py +0 -0
- {metaobjects-0.15.1 → metaobjects-0.15.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: metaobjects
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.2
|
|
4
4
|
Summary: Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port.
|
|
5
5
|
Project-URL: Homepage, https://metaobjects.dev
|
|
6
6
|
Project-URL: Repository, https://github.com/metaobjectsdev/metaobjects
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "metaobjects"
|
|
3
|
-
version = "0.15.
|
|
3
|
+
version = "0.15.2"
|
|
4
4
|
description = "Cross-language metadata standard: declare typed entities once, generate idiomatic drift-checked code across languages — Python port."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/output_format_spec_emitter.py
RENAMED
|
@@ -44,10 +44,14 @@ def _prompt_field_literal(field: MetaData) -> str:
|
|
|
44
44
|
array = "True" if fm.is_array(field) else "False"
|
|
45
45
|
|
|
46
46
|
if field.sub_type == fc.FIELD_SUBTYPE_OBJECT:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
)
|
|
47
|
+
# FR-010: nested prompt deferred — emit a FieldKind.OBJECT placeholder (nested
|
|
48
|
+
# defaults to None on PromptField). The note lives HERE, not in the returned
|
|
49
|
+
# literal: spec_literal joins every field onto ONE line, and a Python '#' inline
|
|
50
|
+
# comment would swallow the rest of that line — including the closing `])` — so a
|
|
51
|
+
# nested-object payload emitted invalid Python (unterminated list) and crashed
|
|
52
|
+
# `gen` + `verify --codegen`. The other ports use `/* */` block comments, which
|
|
53
|
+
# are inline-safe; Python has none, so the literal must carry no comment.
|
|
54
|
+
return f'PromptField("{name}", FieldKind.OBJECT, {req}, array={array})'
|
|
51
55
|
|
|
52
56
|
example = _opt_string_attr(field, fc.FIELD_ATTR_EXAMPLE)
|
|
53
57
|
instruction = _opt_string_attr(field, fc.FIELD_ATTR_INSTRUCTION)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"""Regression: a ``template.output`` payload with a NESTED ``field.object`` must emit
|
|
2
|
+
VALID Python from the output-prompt spec emitter (a ``FieldKind.OBJECT`` placeholder),
|
|
3
|
+
NOT crash ``gen`` / ``verify --codegen``.
|
|
4
|
+
|
|
5
|
+
The bug (0.15.0): the nested-object branch appended an inline ``# FR-010: nested prompt
|
|
6
|
+
deferred`` comment to the emitted literal. ``spec_literal`` joins every field onto ONE
|
|
7
|
+
line, so the Python ``#`` swallowed the rest of the line — including the closing ``])`` —
|
|
8
|
+
producing an unterminated list (``SyntaxError: '[' was never closed``). The other four
|
|
9
|
+
ports use ``/* */`` block comments, which are inline-safe; Python has none, so the literal
|
|
10
|
+
must carry no comment.
|
|
11
|
+
"""
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import ast
|
|
15
|
+
|
|
16
|
+
import metaobjects.core_types # noqa: F401 — side-effect: registers attr classes
|
|
17
|
+
from metaobjects.codegen import output_format_spec_emitter as ofs
|
|
18
|
+
from metaobjects.meta.core.field import field_constants as fc
|
|
19
|
+
from metaobjects.meta.core.field.meta_field import MetaField
|
|
20
|
+
from metaobjects.meta.core.object.meta_object import MetaObject
|
|
21
|
+
from metaobjects.meta.template import template_constants as tc
|
|
22
|
+
from metaobjects.meta.template.meta_template import MetaTemplate
|
|
23
|
+
from metaobjects.shared.base_types import TYPE_FIELD, TYPE_OBJECT, TYPE_TEMPLATE
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _envelope() -> tuple[MetaObject, MetaTemplate]:
|
|
27
|
+
before = MetaField(TYPE_FIELD, fc.FIELD_SUBTYPE_STRING, "before")
|
|
28
|
+
before.set_attr(fc.FIELD_ATTR_REQUIRED, True)
|
|
29
|
+
# the nested object sits BETWEEN two scalars, so a swallowed line would eat both the
|
|
30
|
+
# trailing field and the closing bracket.
|
|
31
|
+
inner = MetaField(TYPE_FIELD, fc.FIELD_SUBTYPE_OBJECT, "inner")
|
|
32
|
+
inner.set_attr(fc.FIELD_ATTR_REQUIRED, True)
|
|
33
|
+
after = MetaField(TYPE_FIELD, fc.FIELD_SUBTYPE_STRING, "after")
|
|
34
|
+
|
|
35
|
+
vo = MetaObject(TYPE_OBJECT, "value", "Envelope")
|
|
36
|
+
vo.package = "acme::ai"
|
|
37
|
+
for f in (before, inner, after):
|
|
38
|
+
vo.add_child(f)
|
|
39
|
+
|
|
40
|
+
tmpl = MetaTemplate(TYPE_TEMPLATE, tc.TEMPLATE_SUBTYPE_OUTPUT, "EnvOutput")
|
|
41
|
+
tmpl.set_attr(tc.TEMPLATE_ATTR_PAYLOAD_REF, "Envelope")
|
|
42
|
+
tmpl.set_attr(tc.TEMPLATE_ATTR_FORMAT, "xml")
|
|
43
|
+
tmpl.set_attr(tc.TEMPLATE_ATTR_PROMPT_STYLE, "guide")
|
|
44
|
+
return vo, tmpl
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def test_nested_object_payload_emits_parseable_python() -> None:
|
|
48
|
+
vo, tmpl = _envelope()
|
|
49
|
+
lit = ofs.spec_literal(vo, tmpl, "Envelope")
|
|
50
|
+
|
|
51
|
+
# 1) the whole OutputFormatSpec(...) literal must be valid Python — the core bug.
|
|
52
|
+
ast.parse(lit) # raised "SyntaxError: '[' was never closed" on the broken output
|
|
53
|
+
|
|
54
|
+
# 2) the nested field is a FieldKind.OBJECT placeholder …
|
|
55
|
+
assert "FieldKind.OBJECT" in lit
|
|
56
|
+
# 3) … with NO inline comment in the emitted literal (that was the swallow) …
|
|
57
|
+
assert "#" not in lit
|
|
58
|
+
# 4) … and the field AFTER the nested one survived (was not commented out).
|
|
59
|
+
assert '"after"' in lit
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/extract_delegate_emitter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/entity_model.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/extractor_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/fr019_shared_enum.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/payload_vo_generator.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/router_generator.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/generators/template_generator.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.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/output_pattern.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/template_data.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/codegen/template_codegen/template_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/directory_source.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/sources/meta_data_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validate_source_parameter_ref.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/loader/validate_source_physical_names.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/field/field_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/identity/identity_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/identity/meta_identity.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/index/index_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/meta_object_aware.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/object_class_registry.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/object_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/object/object_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/relationship/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/core/validator/validator_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/db/db_constants.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/db/db_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/origin/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/origin/meta_origin.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/source/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/persistence/source/meta_source.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/layout/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/layout/meta_layout.py
RENAMED
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/ui/ui_provider.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/view/__init__.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/view/meta_view.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/presentation/view/view_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/meta/template/template_constants.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/json_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/extract/xml_forgiving_reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/output_format_renderer.py
RENAMED
|
File without changes
|
{metaobjects-0.15.1 → metaobjects-0.15.2}/src/metaobjects/render/prompt/output_format_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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
|