pyegeria 5.4.7.9__tar.gz → 5.4.8__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.
- {pyegeria-5.4.7.9/pyegeria.egg-info → pyegeria-5.4.8}/PKG-INFO +33 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/README.md +28 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/dr_egeria_command_help.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_collections.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/run_report.py +12 -12
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/list_archives.py +1 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/GeoSpatial Products Example.py +11 -11
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets/all_format_sets.json +18 -18
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets/custom_format_sets.json +6 -6
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets/subset_format_sets.json +4 -4
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets_save_load_example.py +18 -18
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/output_formats_example.py +20 -20
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/generated_format_sets.json +43 -43
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/data_designer_commands.py +10 -10
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/ext_ref_commands.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/glossary_commands.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/governance_officer_commands.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/product_manager_commands.py +8 -8
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/project_commands.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/solution_architect_commands.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/view_commands.py +7 -7
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/common_md_proc_utils.py +8 -8
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/gen_format_sets.py +12 -12
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/generate_dr_help.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/__init__.py +3 -3
 - pyegeria-5.4.8/pyegeria/_client_new.py +4886 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_output_format_models.py +41 -16
 - pyegeria-5.4.8/pyegeria/_output_formats.py +14 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/automated_curation.py +90 -81
 - pyegeria-5.4.7.9/pyegeria/_output_formats.py → pyegeria-5.4.8/pyegeria/base_report_formats.py +351 -163
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/classification_manager.py +184 -199
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/classification_manager_omvs.py +45 -69
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/collection_manager.py +56 -56
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/data_designer.py +110 -110
 - pyegeria-5.4.8/pyegeria/egeria_cat_client.py +49 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/egeria_client.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/egeria_tech_client.py +2 -2
 - pyegeria-5.4.7.9/pyegeria/external_references.py → pyegeria-5.4.8/pyegeria/external_links.py +33 -34
 - pyegeria-5.4.8/pyegeria/feedback_manager.py +833 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/feedback_manager_omvs.py +104 -306
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/format_set_executor.py +16 -16
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/glossary_manager.py +30 -30
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/governance_officer.py +22 -22
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/mcp_adapter.py +6 -6
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/output_formatter.py +59 -43
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/platform_services.py +2 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/project_manager.py +45 -45
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/reference_data.py +28 -28
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/solution_architect.py +73 -73
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8/pyegeria.egg-info}/PKG-INFO +33 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/SOURCES.txt +5 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/requires.txt +5 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyproject.toml +6 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_automated_curation_omvs.py +4 -4
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_classification_manager_omvs.py +8 -10
 - pyegeria-5.4.8/tests/test_client_new.py +36 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_collection_manager_omvs.py +23 -22
 - pyegeria-5.4.8/tests/test_comments.py +194 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_data_designer.py +23 -17
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_egeria_my_client.py +1 -1
 - pyegeria-5.4.7.9/tests/test_external_references.py → pyegeria-5.4.8/tests/test_external_links.py +7 -8
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_feedback_manager_omvs.py +138 -86
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_glossary_manager_omvs.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_governance_officer_omvs.py +11 -9
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_mcp_adapter.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_output_format_sets_unit.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_output_formats.py +39 -39
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_project_manager_omvs.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_reference_data.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_registered_info.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_runtime_manager.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_solution_architect_omvs.py +3 -3
 - pyegeria-5.4.7.9/pyegeria/_client_new.py +0 -2458
 - pyegeria-5.4.7.9/pyegeria/egeria_cat_client.py +0 -93
 - pyegeria-5.4.7.9/pyegeria/egeria_my_client.py +0 -91
 - pyegeria-5.4.7.9/pyegeria/feedback_manager.py +0 -4510
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/LICENSE +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/MANIFEST.in +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/Dr-Egeria_md-orig.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/dr_egeria_jupyter.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/dr_egeria_md.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/exp_list_glossaries.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_asset_graph.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_collection.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_project_dependencies.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_project_structure.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_tech_type_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/glossary_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_assets.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_cert_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_data_designer.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_data_structures_full.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_catalogs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_database_schemas.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_databases.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_servers.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_glossaries.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_projects.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_tech_type_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_tech_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_terms.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_todos.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_user_ids.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_cat.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_login_tui.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_my.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_ops.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_tech.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/ops_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/list_my_profile.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/list_my_roles.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/monitor_my_todos.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/monitor_open_todos.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/todo_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/gov_server_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/list_catalog_targets.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/load_archive.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_asset_events.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_engine_activity.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_engine_activity_c.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_gov_eng_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_integ_daemon_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_platform_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_server_startup.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_server_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/orig_monitor_server_list.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/orig_monitor_server_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/refresh_integration_daemon.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/restart_integration_daemon.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/table_integ_daemon_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/x_engine_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/generic_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_element_info.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_guid_info.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_tech_details.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_tech_type_template.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_all_om_type_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_all_om_type_elements_x.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_all_related_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_anchored_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_asset_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_by_classification_by_property_value.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_by_property_value.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_by_property_value_x.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_for_classification.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_gov_action_processes.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_information_supply_chains.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_registered_services.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_related_elements_with_prop_value.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_related_specification.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_relationship_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_relationships.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_solution_blueprints.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_solution_components.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_solution_roles.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_tech_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_valid_metadata_values.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/table_tech_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/x_list_related_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/README.md +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS1.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS2.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS3.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS4.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS5.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS6.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDSx.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoView1.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_coco_core.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_coco_datalake.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_exchangeDL01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_governDL01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_monitorDev01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_monitorGov01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/P-egeria-server-config.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/README.md +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/P-environment-check.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/common-functions.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/environment-check.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/globals.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/orig_globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/commands-working.json +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/commands.json +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/generated_format_sets.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/dr_egeria.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/common_md_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/determine_width.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/extraction_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/generate_md_cmd_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/generate_md_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/md_processing_constants.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/message_constants.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_base_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_deprecated_gov_engine.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_exceptions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_exceptions_new.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_validators.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/asset_catalog_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/collection_models.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/core_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/create_tech_guid_lists.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/egeria_config_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/full_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/load_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/logging_configuration.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/mcp_server.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/md_processing_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/md_processing_utils_orig.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/mermaid_utilities.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/metadata_explorer_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/models.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/my_profile_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/registered_info.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/runtime_manager_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/server_operations.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/template_manager_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/valid_metadata_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/x_action_author_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/dependency_links.txt +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/entry_points.txt +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/top_level.txt +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/setup.cfg +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_asset_catalog_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_config_unit.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_core_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_dr_egeria_command_help_modes.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_egeria_cat_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_egeria_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_env_settings.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_format_set_dict.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_full_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_load_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_metadata_explorer_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_my_profile_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_output_format_models_unit.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_platform_services.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_root_path.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_server_operations.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_valid_metadata_omvs.py +0 -0
 
| 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            Metadata-Version: 2.4
         
     | 
| 
       2 
2 
     | 
    
         
             
            Name: pyegeria
         
     | 
| 
       3 
     | 
    
         
            -
            Version: 5.4. 
     | 
| 
      
 3 
     | 
    
         
            +
            Version: 5.4.8
         
     | 
| 
       4 
4 
     | 
    
         
             
            Summary: A python client for Egeria
         
     | 
| 
       5 
5 
     | 
    
         
             
            Author-email: Dan Wolfson <dan.wolfson@pdr-associates.com>
         
     | 
| 
       6 
6 
     | 
    
         
             
            License-Expression: Apache-2.0
         
     | 
| 
         @@ -19,7 +19,7 @@ Requires-Dist: jupyter 
     | 
|
| 
       19 
19 
     | 
    
         
             
            Requires-Dist: click
         
     | 
| 
       20 
20 
     | 
    
         
             
            Requires-Dist: trogon
         
     | 
| 
       21 
21 
     | 
    
         
             
            Requires-Dist: mermaid-py
         
     | 
| 
       22 
     | 
    
         
            -
            Requires-Dist: psycopg2-binary
         
     | 
| 
      
 22 
     | 
    
         
            +
            Requires-Dist: psycopg2-binary>=2.9.11
         
     | 
| 
       23 
23 
     | 
    
         
             
            Requires-Dist: jupyter-notebook-parser
         
     | 
| 
       24 
24 
     | 
    
         
             
            Requires-Dist: loguru
         
     | 
| 
       25 
25 
     | 
    
         
             
            Requires-Dist: inflect
         
     | 
| 
         @@ -30,6 +30,9 @@ Requires-Dist: wcwidth 
     | 
|
| 
       30 
30 
     | 
    
         
             
            Requires-Dist: altair
         
     | 
| 
       31 
31 
     | 
    
         
             
            Requires-Dist: modelcontextprotocol
         
     | 
| 
       32 
32 
     | 
    
         
             
            Requires-Dist: mcp>=1.15.0
         
     | 
| 
      
 33 
     | 
    
         
            +
            Requires-Dist: markers>=0.3.0
         
     | 
| 
      
 34 
     | 
    
         
            +
            Provides-Extra: test
         
     | 
| 
      
 35 
     | 
    
         
            +
            Requires-Dist: pytest; extra == "test"
         
     | 
| 
       33 
36 
     | 
    
         
             
            Dynamic: license-file
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
38 
     | 
    
         
             
            <!-- SPDX-License-Identifier: CC-BY-4.0 -->
         
     | 
| 
         @@ -57,6 +60,9 @@ to visualize and use Egeria. The commands also serve as useful examples. 
     | 
|
| 
       57 
60 
     | 
    
         | 
| 
       58 
61 
     | 
    
         
             
            An examples folder holds some useful examples showing different facets of using pyegeria.
         
     | 
| 
       59 
62 
     | 
    
         | 
| 
      
 63 
     | 
    
         
            +
            For detailed guidance on report formats (selection, dynamic loading, runtime registration, and migration from columns→attributes), see:
         
     | 
| 
      
 64 
     | 
    
         
            +
            - examples/doc_samples/report_formats.md
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
       60 
66 
     | 
    
         
             
            WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and 
         
     | 
| 
       61 
67 
     | 
    
         
             
            evolve.
         
     | 
| 
       62 
68 
     | 
    
         | 
| 
         @@ -142,10 +148,34 @@ print(cfg.Logging.enable_logging) 
     | 
|
| 
       142 
148 
     | 
    
         
             
              python scripts/validate_env.py --env config/env
         
     | 
| 
       143 
149 
     | 
    
         
             
              python scripts/validate_env.py               # auto-detects ./config/env or ./.env
         
     | 
| 
       144 
150 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
      
 151 
     | 
    
         
            +
            ### Testing
         
     | 
| 
      
 152 
     | 
    
         
            +
             
     | 
| 
      
 153 
     | 
    
         
            +
            By default, running pytest executes unit tests that use monkeypatching/fakes and do not contact a live Egeria.
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
            - Run unit tests (recommended default):
         
     | 
| 
       146 
156 
     | 
    
         
             
              poetry install
         
     | 
| 
       147 
157 
     | 
    
         
             
              poetry run pytest -v
         
     | 
| 
       148 
158 
     | 
    
         | 
| 
      
 159 
     | 
    
         
            +
            You can also run tests live against a local Egeria instance. Enable live mode with either a CLI flag or an environment variable. In live mode, tests marked as `unit` are skipped and live tests run using a real Client2 connection.
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
            - Enable live mode via CLI:
         
     | 
| 
      
 162 
     | 
    
         
            +
              poetry run pytest -q --live-egeria
         
     | 
| 
      
 163 
     | 
    
         
            +
             
     | 
| 
      
 164 
     | 
    
         
            +
            - Or enable via environment variable:
         
     | 
| 
      
 165 
     | 
    
         
            +
              PYEG_LIVE_EGERIA=1 poetry run pytest -q
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
            Default live connection parameters (can be overridden via env):
         
     | 
| 
      
 168 
     | 
    
         
            +
            - server_name = "qs-view-server"           (override with PYEG_SERVER_NAME)
         
     | 
| 
      
 169 
     | 
    
         
            +
            - platform_url = "https://localhost:9443" (override with PYEG_PLATFORM_URL)
         
     | 
| 
      
 170 
     | 
    
         
            +
            - user_id = "peterprofile"                (override with PYEG_USER_ID)
         
     | 
| 
      
 171 
     | 
    
         
            +
            - user_pwd = "secret"                      (override with PYEG_USER_PWD)
         
     | 
| 
      
 172 
     | 
    
         
            +
             
     | 
| 
      
 173 
     | 
    
         
            +
            Notes:
         
     | 
| 
      
 174 
     | 
    
         
            +
            - SSL verification is controlled by pyegeria._globals.enable_ssl_check, which defaults to False in this repo to support localhost/self-signed certs.
         
     | 
| 
      
 175 
     | 
    
         
            +
            - See tests/conftest.py for the live test fixtures and switches.
         
     | 
| 
      
 176 
     | 
    
         
            +
             
     | 
| 
      
 177 
     | 
    
         
            +
            ### Troubleshooting
         
     | 
| 
      
 178 
     | 
    
         
            +
             
     | 
| 
       149 
179 
     | 
    
         
             
            ### Troubleshooting
         
     | 
| 
       150 
180 
     | 
    
         | 
| 
       151 
181 
     | 
    
         
             
            - If your env doesn’t seem to apply, confirm which config.json is used (the loader checks PYEGERIA_CONFIG_DIRECTORY first, then PYEGERIA_ROOT_PATH, then ./config.json).
         
     | 
| 
         @@ -23,6 +23,9 @@ to visualize and use Egeria. The commands also serve as useful examples. 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            An examples folder holds some useful examples showing different facets of using pyegeria.
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
      
 26 
     | 
    
         
            +
            For detailed guidance on report formats (selection, dynamic loading, runtime registration, and migration from columns→attributes), see:
         
     | 
| 
      
 27 
     | 
    
         
            +
            - examples/doc_samples/report_formats.md
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
       26 
29 
     | 
    
         
             
            WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and 
         
     | 
| 
       27 
30 
     | 
    
         
             
            evolve.
         
     | 
| 
       28 
31 
     | 
    
         | 
| 
         @@ -108,10 +111,34 @@ print(cfg.Logging.enable_logging) 
     | 
|
| 
       108 
111 
     | 
    
         
             
              python scripts/validate_env.py --env config/env
         
     | 
| 
       109 
112 
     | 
    
         
             
              python scripts/validate_env.py               # auto-detects ./config/env or ./.env
         
     | 
| 
       110 
113 
     | 
    
         | 
| 
       111 
     | 
    
         
            -
             
     | 
| 
      
 114 
     | 
    
         
            +
            ### Testing
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            By default, running pytest executes unit tests that use monkeypatching/fakes and do not contact a live Egeria.
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            - Run unit tests (recommended default):
         
     | 
| 
       112 
119 
     | 
    
         
             
              poetry install
         
     | 
| 
       113 
120 
     | 
    
         
             
              poetry run pytest -v
         
     | 
| 
       114 
121 
     | 
    
         | 
| 
      
 122 
     | 
    
         
            +
            You can also run tests live against a local Egeria instance. Enable live mode with either a CLI flag or an environment variable. In live mode, tests marked as `unit` are skipped and live tests run using a real Client2 connection.
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
            - Enable live mode via CLI:
         
     | 
| 
      
 125 
     | 
    
         
            +
              poetry run pytest -q --live-egeria
         
     | 
| 
      
 126 
     | 
    
         
            +
             
     | 
| 
      
 127 
     | 
    
         
            +
            - Or enable via environment variable:
         
     | 
| 
      
 128 
     | 
    
         
            +
              PYEG_LIVE_EGERIA=1 poetry run pytest -q
         
     | 
| 
      
 129 
     | 
    
         
            +
             
     | 
| 
      
 130 
     | 
    
         
            +
            Default live connection parameters (can be overridden via env):
         
     | 
| 
      
 131 
     | 
    
         
            +
            - server_name = "qs-view-server"           (override with PYEG_SERVER_NAME)
         
     | 
| 
      
 132 
     | 
    
         
            +
            - platform_url = "https://localhost:9443" (override with PYEG_PLATFORM_URL)
         
     | 
| 
      
 133 
     | 
    
         
            +
            - user_id = "peterprofile"                (override with PYEG_USER_ID)
         
     | 
| 
      
 134 
     | 
    
         
            +
            - user_pwd = "secret"                      (override with PYEG_USER_PWD)
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
            Notes:
         
     | 
| 
      
 137 
     | 
    
         
            +
            - SSL verification is controlled by pyegeria._globals.enable_ssl_check, which defaults to False in this repo to support localhost/self-signed certs.
         
     | 
| 
      
 138 
     | 
    
         
            +
            - See tests/conftest.py for the live test fixtures and switches.
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            ### Troubleshooting
         
     | 
| 
      
 141 
     | 
    
         
            +
             
     | 
| 
       115 
142 
     | 
    
         
             
            ### Troubleshooting
         
     | 
| 
       116 
143 
     | 
    
         | 
| 
       117 
144 
     | 
    
         
             
            - If your env doesn’t seem to apply, confirm which config.json is used (the loader checks PYEGERIA_CONFIG_DIRECTORY first, then PYEGERIA_ROOT_PATH, then ./config.json).
         
     | 
| 
         @@ -151,7 +151,7 @@ def display_command_terms( 
     | 
|
| 
       151 
151 
     | 
    
         
             
                        file_name = f"Command-Help-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
         
     | 
| 
       152 
152 
     | 
    
         
             
                        full_file_path = os.path.join(file_path, file_name)
         
     | 
| 
       153 
153 
     | 
    
         
             
                        os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
         
     | 
| 
       154 
     | 
    
         
            -
                        output = g_client.find_glossary_terms(search_string,  output_format=output_format,  
     | 
| 
      
 154 
     | 
    
         
            +
                        output = g_client.find_glossary_terms(search_string,  output_format=output_format, report_spec="Help-Terms")
         
     | 
| 
       155 
155 
     | 
    
         
             
                        if output == "NO_TERMS_FOUND":
         
     | 
| 
       156 
156 
     | 
    
         
             
                            print(f"\n==> No commands found for search string '{search_string}'")
         
     | 
| 
       157 
157 
     | 
    
         
             
                            return
         
     | 
| 
         @@ -36,7 +36,7 @@ config_logging() 
     | 
|
| 
       36 
36 
     | 
    
         
             
            out_struct = {
         
     | 
| 
       37 
37 
     | 
    
         
             
                        "formats": {
         
     | 
| 
       38 
38 
     | 
    
         
             
                            "types": ["ALL"],
         
     | 
| 
       39 
     | 
    
         
            -
                            " 
     | 
| 
      
 39 
     | 
    
         
            +
                            "attributes": [
         
     | 
| 
       40 
40 
     | 
    
         
             
                                {'name': 'display_name', 'key': 'display_name'},
         
     | 
| 
       41 
41 
     | 
    
         
             
                                {'name': 'qualified_name', 'key': 'qualified_name', 'format': True},
         
     | 
| 
       42 
42 
     | 
    
         
             
                                {'name': 'description', 'key': 'description', 'format': True},
         
     | 
| 
         @@ -139,7 +139,7 @@ def display_collections( 
     | 
|
| 
       139 
139 
     | 
    
         | 
| 
       140 
140 
     | 
    
         
             
                    collections = m_client.find_collections(
         
     | 
| 
       141 
141 
     | 
    
         
             
                        search_string.strip(), None, ["Collection"],True, False, ignore_case=True,
         
     | 
| 
       142 
     | 
    
         
            -
                        output_format = "DICT",  
     | 
| 
      
 142 
     | 
    
         
            +
                        output_format = "DICT", report_spec=out_struct
         
     | 
| 
       143 
143 
     | 
    
         
             
                    )
         
     | 
| 
       144 
144 
     | 
    
         
             
                    if type(collections) is list:
         
     | 
| 
       145 
145 
     | 
    
         | 
| 
         @@ -3,7 +3,7 @@ 
     | 
|
| 
       3 
3 
     | 
    
         
             
            SPDX-License-Identifier: Apache-2.0
         
     | 
| 
       4 
4 
     | 
    
         
             
            Copyright Contributors to the ODPi Egeria project.
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
            A command that takes an output format set name, looks up the format set using  
     | 
| 
      
 6 
     | 
    
         
            +
            A command that takes an output format set name, looks up the format set using select_report_spec,
         
     | 
| 
       7 
7 
     | 
    
         
             
            and invokes the specified function with parameters filled from command line arguments.
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
            This command works with any format set defined in output_formatter.py that has an "action" property.
         
     | 
| 
         @@ -55,12 +55,12 @@ from pyegeria import ( 
     | 
|
| 
       55 
55 
     | 
    
         
             
                NO_ELEMENTS_FOUND, GovernanceOfficer, GlossaryManager, print_validation_error,
         
     | 
| 
       56 
56 
     | 
    
         
             
            )
         
     | 
| 
       57 
57 
     | 
    
         
             
            from pyegeria.config import settings
         
     | 
| 
       58 
     | 
    
         
            -
            from pyegeria. 
     | 
| 
      
 58 
     | 
    
         
            +
            from pyegeria.external_links import ExternalReferences
         
     | 
| 
       59 
59 
     | 
    
         
             
            from pyegeria.logging_configuration import config_logging
         
     | 
| 
       60 
60 
     | 
    
         
             
            from pyegeria._output_format_models import load_format_sets_from_json
         
     | 
| 
       61 
     | 
    
         
            -
            from pyegeria. 
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
      
 61 
     | 
    
         
            +
            from pyegeria.base_report_formats import (select_report_format, get_report_format_heading,
         
     | 
| 
      
 62 
     | 
    
         
            +
                                                      load_user_report_specs, load_report_specs,
         
     | 
| 
      
 63 
     | 
    
         
            +
                                                      get_report_format_description)
         
     | 
| 
       64 
64 
     | 
    
         
             
            from pyegeria._exceptions_new import PyegeriaException, print_exception_response
         
     | 
| 
       65 
65 
     | 
    
         | 
| 
       66 
66 
     | 
    
         
             
            # pydevd_pycharm.settrace('host.docker.internal',  # Use 'host.docker.internal' to connect to the host machine
         
     | 
| 
         @@ -122,7 +122,7 @@ def execute_format_set_action( 
     | 
|
| 
       122 
122 
     | 
    
         
             
                # Get the output format set
         
     | 
| 
       123 
123 
     | 
    
         
             
                # logger.info(f"Entering execute_format_set_action, format set name: {format_set_name}, search_string: {kwargs.get('search_string',"meow")}")
         
     | 
| 
       124 
124 
     | 
    
         
             
                # logger.info(json.dumps(kwargs, indent=2))
         
     | 
| 
       125 
     | 
    
         
            -
                format_set =  
     | 
| 
      
 125 
     | 
    
         
            +
                format_set = select_report_format(format_set_name, output_format)
         
     | 
| 
       126 
126 
     | 
    
         
             
                if not format_set:
         
     | 
| 
       127 
127 
     | 
    
         
             
                    print(f"Error: Output format set '{format_set_name}' does not have a format compatible with output format '{output_format}'.")
         
     | 
| 
       128 
128 
     | 
    
         
             
                    return
         
     | 
| 
         @@ -154,7 +154,7 @@ def execute_format_set_action( 
     | 
|
| 
       154 
154 
     | 
    
         
             
                params.update(spec_params)
         
     | 
| 
       155 
155 
     | 
    
         | 
| 
       156 
156 
     | 
    
         
             
                params['output_format'] = output_format
         
     | 
| 
       157 
     | 
    
         
            -
                params[' 
     | 
| 
      
 157 
     | 
    
         
            +
                params['report_spec'] = format_set_name
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
                # Determine the appropriate client class based on the format set name or function
         
     | 
| 
       160 
160 
     | 
    
         
             
                client_class = None
         
     | 
| 
         @@ -206,8 +206,8 @@ def execute_format_set_action( 
     | 
|
| 
       206 
206 
     | 
    
         
             
                client.create_egeria_bearer_token()
         
     | 
| 
       207 
207 
     | 
    
         | 
| 
       208 
208 
     | 
    
         
             
                # Get heading and description information
         
     | 
| 
       209 
     | 
    
         
            -
                heading =  
     | 
| 
       210 
     | 
    
         
            -
                desc =  
     | 
| 
      
 209 
     | 
    
         
            +
                heading = get_report_format_heading(format_set_name)
         
     | 
| 
      
 210 
     | 
    
         
            +
                desc = get_report_format_description(format_set_name)
         
     | 
| 
       211 
211 
     | 
    
         
             
                preamble = f"# {heading}\n{desc}\n\n" if heading and desc else ""
         
     | 
| 
       212 
212 
     | 
    
         | 
| 
       213 
213 
     | 
    
         
             
                try:
         
     | 
| 
         @@ -366,14 +366,14 @@ def main(): 
     | 
|
| 
       366 
366 
     | 
    
         | 
| 
       367 
367 
     | 
    
         
             
                # Get the format set to determine parameters
         
     | 
| 
       368 
368 
     | 
    
         
             
                format_set_name = initial_args.report
         
     | 
| 
       369 
     | 
    
         
            -
                format_set =  
     | 
| 
      
 369 
     | 
    
         
            +
                format_set = select_report_format(format_set_name, "ANY")
         
     | 
| 
       370 
370 
     | 
    
         | 
| 
       371 
371 
     | 
    
         
             
                # Check if the format set exists
         
     | 
| 
       372 
372 
     | 
    
         
             
                if not format_set:
         
     | 
| 
       373 
373 
     | 
    
         
             
                    print(f"Error: Format set for '{format_set_name}' not found.")
         
     | 
| 
       374 
374 
     | 
    
         
             
                    print("Available format sets:")
         
     | 
| 
       375 
     | 
    
         
            -
                    from pyegeria. 
     | 
| 
       376 
     | 
    
         
            -
                    for name in  
     | 
| 
      
 375 
     | 
    
         
            +
                    from pyegeria.base_report_formats import report_spec_list
         
     | 
| 
      
 376 
     | 
    
         
            +
                    for name in report_spec_list():
         
     | 
| 
       377 
377 
     | 
    
         
             
                        print(f"  - {name}")
         
     | 
| 
       378 
378 
     | 
    
         
             
                    return
         
     | 
| 
       379 
379 
     | 
    
         | 
| 
         @@ -81,9 +81,7 @@ def display_archive_list( 
     | 
|
| 
       81 
81 
     | 
    
         
             
                    open_metadata_type_name = None
         
     | 
| 
       82 
82 
     | 
    
         
             
                    property_value = "omarchive"
         
     | 
| 
       83 
83 
     | 
    
         
             
                    property_names = ["fileExtension"]
         
     | 
| 
       84 
     | 
    
         
            -
                    archives = c_client.get_elements_by_property_value(
         
     | 
| 
       85 
     | 
    
         
            -
                        property_value, property_names, open_metadata_type_name
         
     | 
| 
       86 
     | 
    
         
            -
                    )
         
     | 
| 
      
 84 
     | 
    
         
            +
                    archives = c_client.get_elements_by_property_value(property_value, property_names, open_metadata_type_name)
         
     | 
| 
       87 
85 
     | 
    
         | 
| 
       88 
86 
     | 
    
         
             
                    if type(archives) != list:
         
     | 
| 
       89 
87 
     | 
    
         
             
                        raise ValueError("--> No archives found")
         
     | 
| 
         @@ -25,7 +25,7 @@ from pyegeria import ( 
     | 
|
| 
       25 
25 
     | 
    
         
             
            )
         
     | 
| 
       26 
26 
     | 
    
         
             
            from pyegeria.config import settings, get_app_config
         
     | 
| 
       27 
27 
     | 
    
         
             
            from pyegeria.logging_configuration import config_logging
         
     | 
| 
       28 
     | 
    
         
            -
            from pyegeria. 
     | 
| 
      
 28 
     | 
    
         
            +
            from pyegeria.base_report_formats import (select_report_spec, get_report_spec_heading, get_report_spec_description)
         
     | 
| 
       29 
29 
     | 
    
         
             
            from pyegeria._exceptions_new import (PyegeriaException, print_basic_exception, print_validation_error,
         
     | 
| 
       30 
30 
     | 
    
         
             
                                                  PyegeriaInvalidParameterException, PyegeriaConnectionException,
         
     | 
| 
       31 
31 
     | 
    
         
             
                                                  PyegeriaAPIException, PyegeriaUnknownException, print_exception_table
         
     | 
| 
         @@ -92,7 +92,7 @@ try: 
     | 
|
| 
       92 
92 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       93 
93 
     | 
    
         | 
| 
       94 
94 
     | 
    
         
             
                props_body = {
         
     | 
| 
       95 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 95 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       96 
96 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       97 
97 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       98 
98 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -115,7 +115,7 @@ try: 
     | 
|
| 
       115 
115 
     | 
    
         
             
                    marketplace_guid = marketplace[0]['elementHeader']['guid']
         
     | 
| 
       116 
116 
     | 
    
         
             
                    print(f"Found marketplace guid of {marketplace_guid}")
         
     | 
| 
       117 
117 
     | 
    
         
             
                else:
         
     | 
| 
       118 
     | 
    
         
            -
                    marketplace_guid = client. 
     | 
| 
      
 118 
     | 
    
         
            +
                    marketplace_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       119 
119 
     | 
    
         
             
                    logger.success(f"Created folder collection for marketplace: {marketplace_guid}")
         
     | 
| 
       120 
120 
     | 
    
         
             
                #
         
     | 
| 
       121 
121 
     | 
    
         
             
                # GeoSpatial Products folder
         
     | 
| 
         @@ -126,7 +126,7 @@ try: 
     | 
|
| 
       126 
126 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       127 
127 
     | 
    
         | 
| 
       128 
128 
     | 
    
         
             
                props_body = {
         
     | 
| 
       129 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 129 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       130 
130 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       131 
131 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       132 
132 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -148,7 +148,7 @@ try: 
     | 
|
| 
       148 
148 
     | 
    
         
             
                    geo_prods_guid = geo_prods[0]['elementHeader']['guid']
         
     | 
| 
       149 
149 
     | 
    
         
             
                    print(f"Found geo_prods guid of {geo_prods_guid}")
         
     | 
| 
       150 
150 
     | 
    
         
             
                else:
         
     | 
| 
       151 
     | 
    
         
            -
                    geo_prods_guid = client. 
     | 
| 
      
 151 
     | 
    
         
            +
                    geo_prods_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       152 
152 
     | 
    
         
             
                    logger.success(f"Created folder collection for geoprods: {geo_prods_guid}")
         
     | 
| 
       153 
153 
     | 
    
         
             
                #
         
     | 
| 
       154 
154 
     | 
    
         
             
                #   Agricultural Products Folder
         
     | 
| 
         @@ -160,7 +160,7 @@ try: 
     | 
|
| 
       160 
160 
     | 
    
         | 
| 
       161 
161 
     | 
    
         
             
                props_body = {
         
     | 
| 
       162 
162 
     | 
    
         | 
| 
       163 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 163 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       164 
164 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       165 
165 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       166 
166 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -183,7 +183,7 @@ try: 
     | 
|
| 
       183 
183 
     | 
    
         
             
                    ag_prods_guid = ag_prods[0]['elementHeader']['guid']
         
     | 
| 
       184 
184 
     | 
    
         
             
                    print(f"Found ag_prods guid of {ag_prods_guid}")
         
     | 
| 
       185 
185 
     | 
    
         
             
                else:
         
     | 
| 
       186 
     | 
    
         
            -
                    ag_prods_guid = client. 
     | 
| 
      
 186 
     | 
    
         
            +
                    ag_prods_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       187 
187 
     | 
    
         
             
                    logger.success(f"Created folder collection for  ag products: {ag_prods_guid}")
         
     | 
| 
       188 
188 
     | 
    
         
             
                #
         
     | 
| 
       189 
189 
     | 
    
         
             
                #   Folder to hold Prepared Imagery Products
         
     | 
| 
         @@ -194,7 +194,7 @@ try: 
     | 
|
| 
       194 
194 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       195 
195 
     | 
    
         | 
| 
       196 
196 
     | 
    
         
             
                props_body = {
         
     | 
| 
       197 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 197 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       198 
198 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       199 
199 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       200 
200 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -216,7 +216,7 @@ try: 
     | 
|
| 
       216 
216 
     | 
    
         
             
                    prepared_imagery_guid = prepared_imagery[0]['elementHeader']['guid']
         
     | 
| 
       217 
217 
     | 
    
         
             
                    print(f"Found prepared_imagery guid of {prepared_imagery_guid}")
         
     | 
| 
       218 
218 
     | 
    
         
             
                else:
         
     | 
| 
       219 
     | 
    
         
            -
                    prepared_imagery_guid = client. 
     | 
| 
      
 219 
     | 
    
         
            +
                    prepared_imagery_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       220 
220 
     | 
    
         
             
                    logger.success(f"Created folder for prepared imagery products: {prepared_imagery_guid}")
         
     | 
| 
       221 
221 
     | 
    
         
             
                #
         
     | 
| 
       222 
222 
     | 
    
         
             
                #   A digital product covering NDVI - derived from Sentinel 2
         
     | 
| 
         @@ -266,7 +266,7 @@ try: 
     | 
|
| 
       266 
266 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       267 
267 
     | 
    
         | 
| 
       268 
268 
     | 
    
         
             
                props_body = {
         
     | 
| 
       269 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 269 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       270 
270 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       271 
271 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       272 
272 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -288,7 +288,7 @@ try: 
     | 
|
| 
       288 
288 
     | 
    
         
             
                    raw_imagery_guid = raw_imagery[0]['elementHeader']['guid']
         
     | 
| 
       289 
289 
     | 
    
         
             
                    print(f"Found raw_imagery guid of {raw_imagery_guid}")
         
     | 
| 
       290 
290 
     | 
    
         
             
                else:
         
     | 
| 
       291 
     | 
    
         
            -
                    raw_imagery_guid = client. 
     | 
| 
      
 291 
     | 
    
         
            +
                    raw_imagery_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       292 
292 
     | 
    
         
             
                    logger.success(f"Created folder for raw imagery products: {raw_imagery_guid}")
         
     | 
| 
       293 
293 
     | 
    
         
             
                #
         
     | 
| 
       294 
294 
     | 
    
         
             
                #   A digital product providing Sentinel-2a imagery
         
     | 
| 
         @@ -9,7 +9,7 @@ 
     | 
|
| 
       9 
9 
     | 
    
         
             
                    "types": [
         
     | 
| 
       10 
10 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       11 
11 
     | 
    
         
             
                    ],
         
     | 
| 
       12 
     | 
    
         
            -
                    " 
     | 
| 
      
 12 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       13 
13 
     | 
    
         
             
                      {
         
     | 
| 
       14 
14 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       15 
15 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -129,7 +129,7 @@ 
     | 
|
| 
       129 
129 
     | 
    
         
             
                    "types": [
         
     | 
| 
       130 
130 
     | 
    
         
             
                      "DICT"
         
     | 
| 
       131 
131 
     | 
    
         
             
                    ],
         
     | 
| 
       132 
     | 
    
         
            -
                    " 
     | 
| 
      
 132 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       133 
133 
     | 
    
         
             
                      {
         
     | 
| 
       134 
134 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       135 
135 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -176,7 +176,7 @@ 
     | 
|
| 
       176 
176 
     | 
    
         
             
                    "types": [
         
     | 
| 
       177 
177 
     | 
    
         
             
                      "TABLE"
         
     | 
| 
       178 
178 
     | 
    
         
             
                    ],
         
     | 
| 
       179 
     | 
    
         
            -
                    " 
     | 
| 
      
 179 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       180 
180 
     | 
    
         
             
                      {
         
     | 
| 
       181 
181 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       182 
182 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -203,7 +203,7 @@ 
     | 
|
| 
       203 
203 
     | 
    
         
             
                    "types": [
         
     | 
| 
       204 
204 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       205 
205 
     | 
    
         
             
                    ],
         
     | 
| 
       206 
     | 
    
         
            -
                    " 
     | 
| 
      
 206 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       207 
207 
     | 
    
         
             
                      {
         
     | 
| 
       208 
208 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       209 
209 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -255,7 +255,7 @@ 
     | 
|
| 
       255 
255 
     | 
    
         
             
                    "types": [
         
     | 
| 
       256 
256 
     | 
    
         
             
                      "DICT"
         
     | 
| 
       257 
257 
     | 
    
         
             
                    ],
         
     | 
| 
       258 
     | 
    
         
            -
                    " 
     | 
| 
      
 258 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       259 
259 
     | 
    
         
             
                      {
         
     | 
| 
       260 
260 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       261 
261 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -302,7 +302,7 @@ 
     | 
|
| 
       302 
302 
     | 
    
         
             
                    "types": [
         
     | 
| 
       303 
303 
     | 
    
         
             
                      "TABLE"
         
     | 
| 
       304 
304 
     | 
    
         
             
                    ],
         
     | 
| 
       305 
     | 
    
         
            -
                    " 
     | 
| 
      
 305 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       306 
306 
     | 
    
         
             
                      {
         
     | 
| 
       307 
307 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       308 
308 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -351,7 +351,7 @@ 
     | 
|
| 
       351 
351 
     | 
    
         
             
                    "types": [
         
     | 
| 
       352 
352 
     | 
    
         
             
                      "REPORT"
         
     | 
| 
       353 
353 
     | 
    
         
             
                    ],
         
     | 
| 
       354 
     | 
    
         
            -
                    " 
     | 
| 
      
 354 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       355 
355 
     | 
    
         
             
                      {
         
     | 
| 
       356 
356 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       357 
357 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -444,7 +444,7 @@ 
     | 
|
| 
       444 
444 
     | 
    
         
             
                    "types": [
         
     | 
| 
       445 
445 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       446 
446 
     | 
    
         
             
                    ],
         
     | 
| 
       447 
     | 
    
         
            -
                    " 
     | 
| 
      
 447 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       448 
448 
     | 
    
         
             
                      {
         
     | 
| 
       449 
449 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       450 
450 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -487,7 +487,7 @@ 
     | 
|
| 
       487 
487 
     | 
    
         
             
                    "types": [
         
     | 
| 
       488 
488 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       489 
489 
     | 
    
         
             
                    ],
         
     | 
| 
       490 
     | 
    
         
            -
                    " 
     | 
| 
      
 490 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       491 
491 
     | 
    
         
             
                      {
         
     | 
| 
       492 
492 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       493 
493 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -542,7 +542,7 @@ 
     | 
|
| 
       542 
542 
     | 
    
         
             
                      "REPORT",
         
     | 
| 
       543 
543 
     | 
    
         
             
                      "HTML"
         
     | 
| 
       544 
544 
     | 
    
         
             
                    ],
         
     | 
| 
       545 
     | 
    
         
            -
                    " 
     | 
| 
      
 545 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       546 
546 
     | 
    
         
             
                      {
         
     | 
| 
       547 
547 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       548 
548 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -574,7 +574,7 @@ 
     | 
|
| 
       574 
574 
     | 
    
         
             
                    "types": [
         
     | 
| 
       575 
575 
     | 
    
         
             
                      "MERMAID"
         
     | 
| 
       576 
576 
     | 
    
         
             
                    ],
         
     | 
| 
       577 
     | 
    
         
            -
                    " 
     | 
| 
      
 577 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       578 
578 
     | 
    
         
             
                      {
         
     | 
| 
       579 
579 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       580 
580 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -591,7 +591,7 @@ 
     | 
|
| 
       591 
591 
     | 
    
         
             
                    "types": [
         
     | 
| 
       592 
592 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       593 
593 
     | 
    
         
             
                    ],
         
     | 
| 
       594 
     | 
    
         
            -
                    " 
     | 
| 
      
 594 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       595 
595 
     | 
    
         
             
                      {
         
     | 
| 
       596 
596 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       597 
597 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -647,7 +647,7 @@ 
     | 
|
| 
       647 
647 
     | 
    
         
             
                    "types": [
         
     | 
| 
       648 
648 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       649 
649 
     | 
    
         
             
                    ],
         
     | 
| 
       650 
     | 
    
         
            -
                    " 
     | 
| 
      
 650 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       651 
651 
     | 
    
         
             
                      {
         
     | 
| 
       652 
652 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       653 
653 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -699,7 +699,7 @@ 
     | 
|
| 
       699 
699 
     | 
    
         
             
                    "types": [
         
     | 
| 
       700 
700 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       701 
701 
     | 
    
         
             
                    ],
         
     | 
| 
       702 
     | 
    
         
            -
                    " 
     | 
| 
      
 702 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       703 
703 
     | 
    
         
             
                      {
         
     | 
| 
       704 
704 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       705 
705 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -747,7 +747,7 @@ 
     | 
|
| 
       747 
747 
     | 
    
         
             
                    "types": [
         
     | 
| 
       748 
748 
     | 
    
         
             
                      "TABLE"
         
     | 
| 
       749 
749 
     | 
    
         
             
                    ],
         
     | 
| 
       750 
     | 
    
         
            -
                    " 
     | 
| 
      
 750 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       751 
751 
     | 
    
         
             
                      {
         
     | 
| 
       752 
752 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       753 
753 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -780,7 +780,7 @@ 
     | 
|
| 
       780 
780 
     | 
    
         
             
                      "DICT",
         
     | 
| 
       781 
781 
     | 
    
         
             
                      "LIST"
         
     | 
| 
       782 
782 
     | 
    
         
             
                    ],
         
     | 
| 
       783 
     | 
    
         
            -
                    " 
     | 
| 
      
 783 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       784 
784 
     | 
    
         
             
                      {
         
     | 
| 
       785 
785 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       786 
786 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -814,7 +814,7 @@ 
     | 
|
| 
       814 
814 
     | 
    
         
             
                      "MERMAID",
         
     | 
| 
       815 
815 
     | 
    
         
             
                      "HTML"
         
     | 
| 
       816 
816 
     | 
    
         
             
                    ],
         
     | 
| 
       817 
     | 
    
         
            -
                    " 
     | 
| 
      
 817 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       818 
818 
     | 
    
         
             
                      {
         
     | 
| 
       819 
819 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       820 
820 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -856,7 +856,7 @@ 
     | 
|
| 
       856 
856 
     | 
    
         
             
                    "types": [
         
     | 
| 
       857 
857 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       858 
858 
     | 
    
         
             
                    ],
         
     | 
| 
       859 
     | 
    
         
            -
                    " 
     | 
| 
      
 859 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       860 
860 
     | 
    
         
             
                      {
         
     | 
| 
       861 
861 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       862 
862 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -12,7 +12,7 @@ 
     | 
|
| 
       12 
12 
     | 
    
         
             
                    "types": [
         
     | 
| 
       13 
13 
     | 
    
         
             
                      "TABLE"
         
     | 
| 
       14 
14 
     | 
    
         
             
                    ],
         
     | 
| 
       15 
     | 
    
         
            -
                    " 
     | 
| 
      
 15 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       16 
16 
     | 
    
         
             
                      {
         
     | 
| 
       17 
17 
     | 
    
         
             
                        "name": "ID",
         
     | 
| 
       18 
18 
     | 
    
         
             
                        "key": "id",
         
     | 
| 
         @@ -35,7 +35,7 @@ 
     | 
|
| 
       35 
35 
     | 
    
         
             
                      "DETAIL",
         
     | 
| 
       36 
36 
     | 
    
         
             
                      "FORM"
         
     | 
| 
       37 
37 
     | 
    
         
             
                    ],
         
     | 
| 
       38 
     | 
    
         
            -
                    " 
     | 
| 
      
 38 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       39 
39 
     | 
    
         
             
                      {
         
     | 
| 
       40 
40 
     | 
    
         
             
                        "name": "ID",
         
     | 
| 
       41 
41 
     | 
    
         
             
                        "key": "id",
         
     | 
| 
         @@ -78,7 +78,7 @@ 
     | 
|
| 
       78 
78 
     | 
    
         
             
                      "TECHNICAL",
         
     | 
| 
       79 
79 
     | 
    
         
             
                      "DICT"
         
     | 
| 
       80 
80 
     | 
    
         
             
                    ],
         
     | 
| 
       81 
     | 
    
         
            -
                    " 
     | 
| 
      
 81 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       82 
82 
     | 
    
         
             
                      {
         
     | 
| 
       83 
83 
     | 
    
         
             
                        "name": "ID",
         
     | 
| 
       84 
84 
     | 
    
         
             
                        "key": "id",
         
     | 
| 
         @@ -135,7 +135,7 @@ 
     | 
|
| 
       135 
135 
     | 
    
         
             
                    "types": [
         
     | 
| 
       136 
136 
     | 
    
         
             
                      "TABLE"
         
     | 
| 
       137 
137 
     | 
    
         
             
                    ],
         
     | 
| 
       138 
     | 
    
         
            -
                    " 
     | 
| 
      
 138 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       139 
139 
     | 
    
         
             
                      {
         
     | 
| 
       140 
140 
     | 
    
         
             
                        "name": "ID",
         
     | 
| 
       141 
141 
     | 
    
         
             
                        "key": "id",
         
     | 
| 
         @@ -158,7 +158,7 @@ 
     | 
|
| 
       158 
158 
     | 
    
         
             
                      "DETAIL",
         
     | 
| 
       159 
159 
     | 
    
         
             
                      "FORM"
         
     | 
| 
       160 
160 
     | 
    
         
             
                    ],
         
     | 
| 
       161 
     | 
    
         
            -
                    " 
     | 
| 
      
 161 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       162 
162 
     | 
    
         
             
                      {
         
     | 
| 
       163 
163 
     | 
    
         
             
                        "name": "ID",
         
     | 
| 
       164 
164 
     | 
    
         
             
                        "key": "id",
         
     | 
| 
         @@ -201,7 +201,7 @@ 
     | 
|
| 
       201 
201 
     | 
    
         
             
                      "FULL",
         
     | 
| 
       202 
202 
     | 
    
         
             
                      "REPORT"
         
     | 
| 
       203 
203 
     | 
    
         
             
                    ],
         
     | 
| 
       204 
     | 
    
         
            -
                    " 
     | 
| 
      
 204 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       205 
205 
     | 
    
         
             
                      {
         
     | 
| 
       206 
206 
     | 
    
         
             
                        "name": "ID",
         
     | 
| 
       207 
207 
     | 
    
         
             
                        "key": "id",
         
     | 
| 
         @@ -23,7 +23,7 @@ 
     | 
|
| 
       23 
23 
     | 
    
         
             
                    "types": [
         
     | 
| 
       24 
24 
     | 
    
         
             
                      "DICT"
         
     | 
| 
       25 
25 
     | 
    
         
             
                    ],
         
     | 
| 
       26 
     | 
    
         
            -
                    " 
     | 
| 
      
 26 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       27 
27 
     | 
    
         
             
                      {
         
     | 
| 
       28 
28 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       29 
29 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -70,7 +70,7 @@ 
     | 
|
| 
       70 
70 
     | 
    
         
             
                    "types": [
         
     | 
| 
       71 
71 
     | 
    
         
             
                      "TABLE"
         
     | 
| 
       72 
72 
     | 
    
         
             
                    ],
         
     | 
| 
       73 
     | 
    
         
            -
                    " 
     | 
| 
      
 73 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       74 
74 
     | 
    
         
             
                      {
         
     | 
| 
       75 
75 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       76 
76 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -97,7 +97,7 @@ 
     | 
|
| 
       97 
97 
     | 
    
         
             
                    "types": [
         
     | 
| 
       98 
98 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       99 
99 
     | 
    
         
             
                    ],
         
     | 
| 
       100 
     | 
    
         
            -
                    " 
     | 
| 
      
 100 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       101 
101 
     | 
    
         
             
                      {
         
     | 
| 
       102 
102 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       103 
103 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -148,7 +148,7 @@ 
     | 
|
| 
       148 
148 
     | 
    
         
             
                    "types": [
         
     | 
| 
       149 
149 
     | 
    
         
             
                      "ALL"
         
     | 
| 
       150 
150 
     | 
    
         
             
                    ],
         
     | 
| 
       151 
     | 
    
         
            -
                    " 
     | 
| 
      
 151 
     | 
    
         
            +
                    "attributes": [
         
     | 
| 
       152 
152 
     | 
    
         
             
                      {
         
     | 
| 
       153 
153 
     | 
    
         
             
                        "name": "Display Name",
         
     | 
| 
       154 
154 
     | 
    
         
             
                        "key": "display_name",
         
     | 
| 
         @@ -22,12 +22,12 @@ from pathlib import Path 
     | 
|
| 
       22 
22 
     | 
    
         
             
            sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
         
     | 
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            from pyegeria._output_format_models import Column, Format, ActionParameter, FormatSet, FormatSetDict
         
     | 
| 
       25 
     | 
    
         
            -
            from pyegeria. 
     | 
| 
       26 
     | 
    
         
            -
                 
     | 
| 
       27 
     | 
    
         
            -
                 
     | 
| 
       28 
     | 
    
         
            -
                 
     | 
| 
      
 25 
     | 
    
         
            +
            from pyegeria.base_report_formats import (
         
     | 
| 
      
 26 
     | 
    
         
            +
                report_specs,
         
     | 
| 
      
 27 
     | 
    
         
            +
                save_report_specs,
         
     | 
| 
      
 28 
     | 
    
         
            +
                load_report_specs,
         
     | 
| 
       29 
29 
     | 
    
         
             
                USER_FORMAT_SETS_DIR,
         
     | 
| 
       30 
     | 
    
         
            -
                 
     | 
| 
      
 30 
     | 
    
         
            +
                select_report_spec,
         
     | 
| 
       31 
31 
     | 
    
         
             
            )
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
            def create_custom_format_sets():
         
     | 
| 
         @@ -143,7 +143,7 @@ def save_format_sets_example(custom_format_sets): 
     | 
|
| 
       143 
143 
     | 
    
         | 
| 
       144 
144 
     | 
    
         
             
                # Save all format sets to a file
         
     | 
| 
       145 
145 
     | 
    
         
             
                all_format_sets_path = os.path.join(example_dir, "all_format_sets.json")
         
     | 
| 
       146 
     | 
    
         
            -
                 
     | 
| 
      
 146 
     | 
    
         
            +
                save_report_specs(all_format_sets_path)
         
     | 
| 
       147 
147 
     | 
    
         
             
                print(f"Saved all format sets to {all_format_sets_path}")
         
     | 
| 
       148 
148 
     | 
    
         | 
| 
       149 
149 
     | 
    
         
             
                # Save only the custom format sets to a file
         
     | 
| 
         @@ -153,7 +153,7 @@ def save_format_sets_example(custom_format_sets): 
     | 
|
| 
       153 
153 
     | 
    
         | 
| 
       154 
154 
     | 
    
         
             
                # Save a subset of the predefined format sets to a file
         
     | 
| 
       155 
155 
     | 
    
         
             
                subset_format_sets_path = os.path.join(example_dir, "subset_format_sets.json")
         
     | 
| 
       156 
     | 
    
         
            -
                 
     | 
| 
      
 156 
     | 
    
         
            +
                save_report_specs(subset_format_sets_path, format_set_names=["Collections", "DataDictionary"])
         
     | 
| 
       157 
157 
     | 
    
         
             
                print(f"Saved subset of format sets to {subset_format_sets_path}")
         
     | 
| 
       158 
158 
     | 
    
         | 
| 
       159 
159 
     | 
    
         
             
                return custom_format_sets_path
         
     | 
| 
         @@ -199,12 +199,12 @@ def use_loaded_format_sets(loaded_format_sets): 
     | 
|
| 
       199 
199 
     | 
    
         
             
                """
         
     | 
| 
       200 
200 
     | 
    
         
             
                print("\n=== Using Loaded Format Sets ===")
         
     | 
| 
       201 
201 
     | 
    
         | 
| 
       202 
     | 
    
         
            -
                # Add the loaded format sets to the global  
     | 
| 
      
 202 
     | 
    
         
            +
                # Add the loaded format sets to the global report_specs
         
     | 
| 
       203 
203 
     | 
    
         
             
                for name, format_set in loaded_format_sets.items():
         
     | 
| 
       204 
     | 
    
         
            -
                     
     | 
| 
      
 204 
     | 
    
         
            +
                    report_specs[name] = format_set
         
     | 
| 
       205 
205 
     | 
    
         | 
| 
       206 
     | 
    
         
            -
                # Use the  
     | 
| 
       207 
     | 
    
         
            -
                product_format_set =  
     | 
| 
      
 206 
     | 
    
         
            +
                # Use the select_report_spec function to get a format set by name
         
     | 
| 
      
 207 
     | 
    
         
            +
                product_format_set = select_report_spec("Product", "TABLE")
         
     | 
| 
       208 
208 
     | 
    
         
             
                if product_format_set:
         
     | 
| 
       209 
209 
     | 
    
         
             
                    print(f"Found format set for 'Product' with output type 'TABLE'")
         
     | 
| 
       210 
210 
     | 
    
         
             
                    print(f"  Heading: {product_format_set['heading']}")
         
     | 
| 
         @@ -213,8 +213,8 @@ def use_loaded_format_sets(loaded_format_sets): 
     | 
|
| 
       213 
213 
     | 
    
         
             
                else:
         
     | 
| 
       214 
214 
     | 
    
         
             
                    print("Format set for 'Product' not found")
         
     | 
| 
       215 
215 
     | 
    
         | 
| 
       216 
     | 
    
         
            -
                # Use the  
     | 
| 
       217 
     | 
    
         
            -
                customer_format_set =  
     | 
| 
      
 216 
     | 
    
         
            +
                # Use the select_report_spec function to get a format set by alias
         
     | 
| 
      
 217 
     | 
    
         
            +
                customer_format_set = select_report_spec("Customers", "DETAIL")
         
     | 
| 
       218 
218 
     | 
    
         
             
                if customer_format_set:
         
     | 
| 
       219 
219 
     | 
    
         
             
                    print(f"Found format set for 'Customers' with output type 'DETAIL'")
         
     | 
| 
       220 
220 
     | 
    
         
             
                    print(f"  Heading: {customer_format_set['heading']}")
         
     | 
| 
         @@ -257,14 +257,14 @@ def user_format_sets_directory_example(custom_format_sets): 
     | 
|
| 
       257 
257 
     | 
    
         
             
                print(f"Saved user custom format set to {user_format_sets_path}")
         
     | 
| 
       258 
258 
     | 
    
         | 
| 
       259 
259 
     | 
    
         
             
                # Load the user format sets
         
     | 
| 
       260 
     | 
    
         
            -
                from pyegeria. 
     | 
| 
       261 
     | 
    
         
            -
                 
     | 
| 
      
 260 
     | 
    
         
            +
                from pyegeria.base_report_formats import load_user_report_specs
         
     | 
| 
      
 261 
     | 
    
         
            +
                load_user_report_specs()
         
     | 
| 
       262 
262 
     | 
    
         | 
| 
       263 
263 
     | 
    
         
             
                # Check if the user format set was loaded
         
     | 
| 
       264 
     | 
    
         
            -
                if "UserCustomFormatSet" in  
     | 
| 
      
 264 
     | 
    
         
            +
                if "UserCustomFormatSet" in report_specs:
         
     | 
| 
       265 
265 
     | 
    
         
             
                    print("User custom format set was successfully loaded")
         
     | 
| 
       266 
     | 
    
         
            -
                    print(f"  Heading: { 
     | 
| 
       267 
     | 
    
         
            -
                    print(f"  Description: { 
     | 
| 
      
 266 
     | 
    
         
            +
                    print(f"  Heading: {report_specs['UserCustomFormatSet'].heading}")
         
     | 
| 
      
 267 
     | 
    
         
            +
                    print(f"  Description: {report_specs['UserCustomFormatSet'].description}")
         
     | 
| 
       268 
268 
     | 
    
         
             
                else:
         
     | 
| 
       269 
269 
     | 
    
         
             
                    print("User custom format set was not loaded")
         
     | 
| 
       270 
270 
     | 
    
         |