pyegeria 5.4.7.9__tar.gz → 5.4.8.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/PKG-INFO +38 -7
 - pyegeria-5.4.7.9/pyegeria.egg-info/PKG-INFO → pyegeria-5.4.8.2/README.md +29 -36
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/dr_egeria_command_help.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_collections.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/run_report.py +12 -12
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/list_archives.py +1 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/GeoSpatial Products Example.py +12 -22
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/format_sets/all_format_sets.json +18 -18
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/format_sets/custom_format_sets.json +6 -6
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/format_sets/subset_format_sets.json +4 -4
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/format_sets_save_load_example.py +18 -18
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/output_formats_example.py +20 -20
 - pyegeria-5.4.8.2/md_processing/data/commands.json +57058 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/data/generated_format_sets.json +43 -43
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/data_designer_commands.py +10 -10
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/ext_ref_commands.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/glossary_commands.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/governance_officer_commands.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/product_manager_commands.py +8 -8
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/project_commands.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/solution_architect_commands.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/view_commands.py +7 -7
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/common_md_proc_utils.py +8 -8
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/common_md_utils.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/gen_format_sets.py +12 -12
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/generate_dr_help.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/__init__.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_base_client.py +1 -17
 - pyegeria-5.4.8.2/pyegeria/_client_new.py +5379 -0
 - pyegeria-5.4.8.2/pyegeria/_client_new_backup.py +5359 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_output_format_models.py +41 -16
 - pyegeria-5.4.8.2/pyegeria/_output_formats.py +14 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/automated_curation.py +90 -81
 - pyegeria-5.4.7.9/pyegeria/_output_formats.py → pyegeria-5.4.8.2/pyegeria/base_report_formats.py +380 -164
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/classification_manager.py +1575 -517
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/classification_manager_omvs.py +45 -69
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/collection_manager.py +108 -110
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/data_designer.py +151 -151
 - pyegeria-5.4.8.2/pyegeria/egeria_cat_client.py +49 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/egeria_client.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/egeria_tech_client.py +2 -2
 - pyegeria-5.4.7.9/pyegeria/external_references.py → pyegeria-5.4.8.2/pyegeria/external_links.py +59 -60
 - pyegeria-5.4.8.2/pyegeria/feedback_manager.py +833 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/feedback_manager_omvs.py +117 -337
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/format_set_executor.py +16 -16
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/glossary_manager.py +62 -65
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/governance_officer.py +53 -53
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/mcp_adapter.py +6 -6
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/output_formatter.py +94 -53
 - pyegeria-5.4.8.2/pyegeria/output_formatter_with_machine_keys.py +1127 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/platform_services.py +2 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/project_manager.py +66 -66
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/reference_data.py +30 -30
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/solution_architect.py +135 -134
 - pyegeria-5.4.7.9/README.md → pyegeria-5.4.8.2/pyegeria.egg-info/PKG-INFO +67 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria.egg-info/SOURCES.txt +9 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria.egg-info/requires.txt +10 -5
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyproject.toml +11 -6
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_automated_curation_omvs.py +4 -4
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_classification_manager_omvs.py +8 -10
 - pyegeria-5.4.8.2/tests/test_client_new.py +69 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_collection_manager_omvs.py +24 -23
 - pyegeria-5.4.8.2/tests/test_comments.py +194 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_data_designer.py +23 -17
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_egeria_my_client.py +1 -1
 - pyegeria-5.4.7.9/tests/test_external_references.py → pyegeria-5.4.8.2/tests/test_external_links.py +7 -8
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_feedback_manager_omvs.py +141 -91
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_glossary_manager_omvs.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_governance_officer_omvs.py +11 -9
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_mcp_adapter.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_output_format_sets_unit.py +3 -3
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_output_formats.py +39 -39
 - pyegeria-5.4.8.2/tests/test_output_formatter_deepcopy_isolation.py +67 -0
 - pyegeria-5.4.8.2/tests/test_output_formatter_dict_collisions.py +63 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_project_manager_omvs.py +4 -4
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_reference_data.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_registered_info.py +2 -2
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_runtime_manager.py +1 -1
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_solution_architect_omvs.py +3 -3
 - pyegeria-5.4.7.9/md_processing/data/commands.json +0 -52199
 - 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.2}/LICENSE +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/MANIFEST.in +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/Dr-Egeria_md-orig.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/dr_egeria_jupyter.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/dr_egeria_md.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/exp_list_glossaries.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/get_asset_graph.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/get_collection.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/get_project_dependencies.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/get_project_structure.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/get_tech_type_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/glossary_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_assets.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_cert_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_data_designer.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_data_structures_full.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_deployed_catalogs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_deployed_database_schemas.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_deployed_databases.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_deployed_servers.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_glossaries.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_projects.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_tech_type_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_tech_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_terms.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_todos.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cat/list_user_ids.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/egeria.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/egeria_cat.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/egeria_login_tui.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/egeria_my.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/egeria_ops.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/egeria_tech.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/cli/ops_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/my/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/my/list_my_profile.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/my/list_my_roles.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/my/monitor_my_todos.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/my/monitor_open_todos.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/my/todo_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/gov_server_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/list_catalog_targets.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/load_archive.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_asset_events.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_engine_activity.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_engine_activity_c.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_gov_eng_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_integ_daemon_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_platform_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_server_startup.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/monitor_server_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/orig_monitor_server_list.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/orig_monitor_server_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/refresh_integration_daemon.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/restart_integration_daemon.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/table_integ_daemon_status.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/ops/x_engine_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/generic_actions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/get_element_info.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/get_guid_info.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/get_tech_details.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/get_tech_type_template.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_all_om_type_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_all_om_type_elements_x.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_all_related_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_anchored_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_asset_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_elements_by_classification_by_property_value.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_elements_by_property_value.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_elements_by_property_value_x.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_elements_for_classification.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_gov_action_processes.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_information_supply_chains.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_registered_services.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_related_elements_with_prop_value.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_related_specification.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_relationship_types.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_relationships.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_solution_blueprints.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_solution_components.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_solution_roles.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_tech_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/list_valid_metadata_values.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/table_tech_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/commands/tech/x_list_related_elements.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/README.md +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDS1.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDS2.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDS3.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDS4.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDS5.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDS6.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoMDSx.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_cocoView1.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_coco_core.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_coco_datalake.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_exchangeDL01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_governDL01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_monitorDev01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/config_monitorGov01.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Coco_config/globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/P-egeria-server-config.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/README.md +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/P-environment-check.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/common-functions.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/environment-check.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/globals.ipynb +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/examples/Jupyter Notebooks/common/orig_globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/data/commands-working.json +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/data/generated_format_sets.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/dr_egeria.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_commands/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/__init__.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/determine_width.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/extraction_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/generate_md_cmd_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/generate_md_templates.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/md_processing_constants.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/md_processing/md_processing_utils/message_constants.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_deprecated_gov_engine.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_exceptions.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_exceptions_new.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_globals.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/_validators.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/asset_catalog_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/collection_models.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/core_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/create_tech_guid_lists.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/egeria_config_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/full_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/load_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/logging_configuration.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/mcp_server.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/md_processing_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/md_processing_utils_orig.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/mermaid_utilities.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/metadata_explorer_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/models.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/my_profile_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/registered_info.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/runtime_manager_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/server_operations.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/template_manager_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/valid_metadata_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria/x_action_author_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria.egg-info/dependency_links.txt +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria.egg-info/entry_points.txt +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/pyegeria.egg-info/top_level.txt +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/setup.cfg +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_asset_catalog_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_config_unit.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_core_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_dr_egeria_command_help_modes.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_egeria_cat_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_egeria_client.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_env_settings.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_format_set_dict.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_full_omag_server_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_load_config.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_metadata_explorer_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_my_profile_omvs.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_output_format_models_unit.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_platform_services.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_root_path.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_server_operations.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/tests/test_utils.py +0 -0
 - {pyegeria-5.4.7.9 → pyegeria-5.4.8.2}/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.2
         
     | 
| 
       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
         
     | 
| 
         @@ -11,7 +11,7 @@ Requires-Python: >3.12 
     | 
|
| 
       11 
11 
     | 
    
         
             
            Description-Content-Type: text/markdown
         
     | 
| 
       12 
12 
     | 
    
         
             
            License-File: LICENSE
         
     | 
| 
       13 
13 
     | 
    
         
             
            Requires-Dist: httpx
         
     | 
| 
       14 
     | 
    
         
            -
            Requires-Dist: rich
         
     | 
| 
      
 14 
     | 
    
         
            +
            Requires-Dist: rich>=14.2
         
     | 
| 
       15 
15 
     | 
    
         
             
            Requires-Dist: validators
         
     | 
| 
       16 
16 
     | 
    
         
             
            Requires-Dist: urllib3
         
     | 
| 
       17 
17 
     | 
    
         
             
            Requires-Dist: requests
         
     | 
| 
         @@ -19,17 +19,21 @@ 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
         
     | 
| 
       26 
     | 
    
         
            -
            Requires-Dist: pydantic>=2. 
     | 
| 
      
 26 
     | 
    
         
            +
            Requires-Dist: pydantic>=2.12.3
         
     | 
| 
       27 
27 
     | 
    
         
             
            Requires-Dist: pydantic-settings>=2.10.1
         
     | 
| 
       28 
     | 
    
         
            -
            Requires-Dist: pydevd-pycharm>= 
     | 
| 
      
 28 
     | 
    
         
            +
            Requires-Dist: pydevd-pycharm>=253.27642.35
         
     | 
| 
       29 
29 
     | 
    
         
             
            Requires-Dist: wcwidth
         
     | 
| 
       30 
30 
     | 
    
         
             
            Requires-Dist: altair
         
     | 
| 
       31 
31 
     | 
    
         
             
            Requires-Dist: modelcontextprotocol
         
     | 
| 
       32 
     | 
    
         
            -
            Requires-Dist: mcp>=1. 
     | 
| 
      
 32 
     | 
    
         
            +
            Requires-Dist: mcp>=1.18.0
         
     | 
| 
      
 33 
     | 
    
         
            +
            Requires-Dist: markers>=0.3.0
         
     | 
| 
      
 34 
     | 
    
         
            +
            Requires-Dist: pytest-asyncio>=1.2.0
         
     | 
| 
      
 35 
     | 
    
         
            +
            Provides-Extra: test
         
     | 
| 
      
 36 
     | 
    
         
            +
            Requires-Dist: pytest; extra == "test"
         
     | 
| 
       33 
37 
     | 
    
         
             
            Dynamic: license-file
         
     | 
| 
       34 
38 
     | 
    
         | 
| 
       35 
39 
     | 
    
         
             
            <!-- SPDX-License-Identifier: CC-BY-4.0 -->
         
     | 
| 
         @@ -57,6 +61,9 @@ to visualize and use Egeria. The commands also serve as useful examples. 
     | 
|
| 
       57 
61 
     | 
    
         | 
| 
       58 
62 
     | 
    
         
             
            An examples folder holds some useful examples showing different facets of using pyegeria.
         
     | 
| 
       59 
63 
     | 
    
         | 
| 
      
 64 
     | 
    
         
            +
            For detailed guidance on report formats (selection, dynamic loading, runtime registration, and migration from columns→attributes), see:
         
     | 
| 
      
 65 
     | 
    
         
            +
            - examples/doc_samples/report_formats.md
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
       60 
67 
     | 
    
         
             
            WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and 
         
     | 
| 
       61 
68 
     | 
    
         
             
            evolve.
         
     | 
| 
       62 
69 
     | 
    
         | 
| 
         @@ -142,10 +149,34 @@ print(cfg.Logging.enable_logging) 
     | 
|
| 
       142 
149 
     | 
    
         
             
              python scripts/validate_env.py --env config/env
         
     | 
| 
       143 
150 
     | 
    
         
             
              python scripts/validate_env.py               # auto-detects ./config/env or ./.env
         
     | 
| 
       144 
151 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
      
 152 
     | 
    
         
            +
            ### Testing
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
            By default, running pytest executes unit tests that use monkeypatching/fakes and do not contact a live Egeria.
         
     | 
| 
      
 155 
     | 
    
         
            +
             
     | 
| 
      
 156 
     | 
    
         
            +
            - Run unit tests (recommended default):
         
     | 
| 
       146 
157 
     | 
    
         
             
              poetry install
         
     | 
| 
       147 
158 
     | 
    
         
             
              poetry run pytest -v
         
     | 
| 
       148 
159 
     | 
    
         | 
| 
      
 160 
     | 
    
         
            +
            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.
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
            - Enable live mode via CLI:
         
     | 
| 
      
 163 
     | 
    
         
            +
              poetry run pytest -q --live-egeria
         
     | 
| 
      
 164 
     | 
    
         
            +
             
     | 
| 
      
 165 
     | 
    
         
            +
            - Or enable via environment variable:
         
     | 
| 
      
 166 
     | 
    
         
            +
              PYEG_LIVE_EGERIA=1 poetry run pytest -q
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
            Default live connection parameters (can be overridden via env):
         
     | 
| 
      
 169 
     | 
    
         
            +
            - server_name = "qs-view-server"           (override with PYEG_SERVER_NAME)
         
     | 
| 
      
 170 
     | 
    
         
            +
            - platform_url = "https://localhost:9443" (override with PYEG_PLATFORM_URL)
         
     | 
| 
      
 171 
     | 
    
         
            +
            - user_id = "peterprofile"                (override with PYEG_USER_ID)
         
     | 
| 
      
 172 
     | 
    
         
            +
            - user_pwd = "secret"                      (override with PYEG_USER_PWD)
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
            Notes:
         
     | 
| 
      
 175 
     | 
    
         
            +
            - SSL verification is controlled by pyegeria._globals.enable_ssl_check, which defaults to False in this repo to support localhost/self-signed certs.
         
     | 
| 
      
 176 
     | 
    
         
            +
            - See tests/conftest.py for the live test fixtures and switches.
         
     | 
| 
      
 177 
     | 
    
         
            +
             
     | 
| 
      
 178 
     | 
    
         
            +
            ### Troubleshooting
         
     | 
| 
      
 179 
     | 
    
         
            +
             
     | 
| 
       149 
180 
     | 
    
         
             
            ### Troubleshooting
         
     | 
| 
       150 
181 
     | 
    
         | 
| 
       151 
182 
     | 
    
         
             
            - 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).
         
     | 
| 
         @@ -1,37 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            Metadata-Version: 2.4
         
     | 
| 
       2 
     | 
    
         
            -
            Name: pyegeria
         
     | 
| 
       3 
     | 
    
         
            -
            Version: 5.4.7.9
         
     | 
| 
       4 
     | 
    
         
            -
            Summary: A python client for Egeria
         
     | 
| 
       5 
     | 
    
         
            -
            Author-email: Dan Wolfson <dan.wolfson@pdr-associates.com>
         
     | 
| 
       6 
     | 
    
         
            -
            License-Expression: Apache-2.0
         
     | 
| 
       7 
     | 
    
         
            -
            Keywords: egeria,metadata,governance
         
     | 
| 
       8 
     | 
    
         
            -
            Classifier: Programming Language :: Python
         
     | 
| 
       9 
     | 
    
         
            -
            Classifier: Programming Language :: Python :: 3
         
     | 
| 
       10 
     | 
    
         
            -
            Requires-Python: >3.12
         
     | 
| 
       11 
     | 
    
         
            -
            Description-Content-Type: text/markdown
         
     | 
| 
       12 
     | 
    
         
            -
            License-File: LICENSE
         
     | 
| 
       13 
     | 
    
         
            -
            Requires-Dist: httpx
         
     | 
| 
       14 
     | 
    
         
            -
            Requires-Dist: rich
         
     | 
| 
       15 
     | 
    
         
            -
            Requires-Dist: validators
         
     | 
| 
       16 
     | 
    
         
            -
            Requires-Dist: urllib3
         
     | 
| 
       17 
     | 
    
         
            -
            Requires-Dist: requests
         
     | 
| 
       18 
     | 
    
         
            -
            Requires-Dist: jupyter
         
     | 
| 
       19 
     | 
    
         
            -
            Requires-Dist: click
         
     | 
| 
       20 
     | 
    
         
            -
            Requires-Dist: trogon
         
     | 
| 
       21 
     | 
    
         
            -
            Requires-Dist: mermaid-py
         
     | 
| 
       22 
     | 
    
         
            -
            Requires-Dist: psycopg2-binary
         
     | 
| 
       23 
     | 
    
         
            -
            Requires-Dist: jupyter-notebook-parser
         
     | 
| 
       24 
     | 
    
         
            -
            Requires-Dist: loguru
         
     | 
| 
       25 
     | 
    
         
            -
            Requires-Dist: inflect
         
     | 
| 
       26 
     | 
    
         
            -
            Requires-Dist: pydantic>=2.11.7
         
     | 
| 
       27 
     | 
    
         
            -
            Requires-Dist: pydantic-settings>=2.10.1
         
     | 
| 
       28 
     | 
    
         
            -
            Requires-Dist: pydevd-pycharm>=252.23892.364
         
     | 
| 
       29 
     | 
    
         
            -
            Requires-Dist: wcwidth
         
     | 
| 
       30 
     | 
    
         
            -
            Requires-Dist: altair
         
     | 
| 
       31 
     | 
    
         
            -
            Requires-Dist: modelcontextprotocol
         
     | 
| 
       32 
     | 
    
         
            -
            Requires-Dist: mcp>=1.15.0
         
     | 
| 
       33 
     | 
    
         
            -
            Dynamic: license-file
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
1 
     | 
    
         
             
            <!-- SPDX-License-Identifier: CC-BY-4.0 -->
         
     | 
| 
       36 
2 
     | 
    
         
             
            <!-- Copyright Contributors to the ODPi Egeria project. -->
         
     | 
| 
       37 
3 
     | 
    
         | 
| 
         @@ -57,6 +23,9 @@ to visualize and use Egeria. The commands also serve as useful examples. 
     | 
|
| 
       57 
23 
     | 
    
         | 
| 
       58 
24 
     | 
    
         
             
            An examples folder holds some useful examples showing different facets of using pyegeria.
         
     | 
| 
       59 
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 
     | 
    
         
            +
             
     | 
| 
       60 
29 
     | 
    
         
             
            WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and 
         
     | 
| 
       61 
30 
     | 
    
         
             
            evolve.
         
     | 
| 
       62 
31 
     | 
    
         | 
| 
         @@ -142,10 +111,34 @@ print(cfg.Logging.enable_logging) 
     | 
|
| 
       142 
111 
     | 
    
         
             
              python scripts/validate_env.py --env config/env
         
     | 
| 
       143 
112 
     | 
    
         
             
              python scripts/validate_env.py               # auto-detects ./config/env or ./.env
         
     | 
| 
       144 
113 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
      
 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):
         
     | 
| 
       146 
119 
     | 
    
         
             
              poetry install
         
     | 
| 
       147 
120 
     | 
    
         
             
              poetry run pytest -v
         
     | 
| 
       148 
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 
     | 
    
         
            +
             
     | 
| 
       149 
142 
     | 
    
         
             
            ### Troubleshooting
         
     | 
| 
       150 
143 
     | 
    
         | 
| 
       151 
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).
         
     | 
| 
         @@ -156,4 +149,4 @@ print(cfg.Logging.enable_logging) 
     | 
|
| 
       156 
149 
     | 
    
         | 
| 
       157 
150 
     | 
    
         
             
            ----
         
     | 
| 
       158 
151 
     | 
    
         
             
            License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/),
         
     | 
| 
       159 
     | 
    
         
            -
            Copyright Contributors to the ODPi Egeria project.
         
     | 
| 
      
 152 
     | 
    
         
            +
            Copyright Contributors to the ODPi Egeria project.
         
     | 
| 
         @@ -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,
         
     | 
| 
         @@ -108,14 +108,13 @@ try: 
     | 
|
| 
       108 
108 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       109 
109 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       110 
110 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       111 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       112 
111 
     | 
    
         
             
                    }
         
     | 
| 
       113 
112 
     | 
    
         
             
                marketplace = client.get_collections_by_name(qualified_name)
         
     | 
| 
       114 
113 
     | 
    
         
             
                if isinstance(marketplace, dict | list):
         
     | 
| 
       115 
114 
     | 
    
         
             
                    marketplace_guid = marketplace[0]['elementHeader']['guid']
         
     | 
| 
       116 
115 
     | 
    
         
             
                    print(f"Found marketplace guid of {marketplace_guid}")
         
     | 
| 
       117 
116 
     | 
    
         
             
                else:
         
     | 
| 
       118 
     | 
    
         
            -
                    marketplace_guid = client. 
     | 
| 
      
 117 
     | 
    
         
            +
                    marketplace_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       119 
118 
     | 
    
         
             
                    logger.success(f"Created folder collection for marketplace: {marketplace_guid}")
         
     | 
| 
       120 
119 
     | 
    
         
             
                #
         
     | 
| 
       121 
120 
     | 
    
         
             
                # GeoSpatial Products folder
         
     | 
| 
         @@ -126,7 +125,7 @@ try: 
     | 
|
| 
       126 
125 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       127 
126 
     | 
    
         | 
| 
       128 
127 
     | 
    
         
             
                props_body = {
         
     | 
| 
       129 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 128 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       130 
129 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       131 
130 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       132 
131 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -141,14 +140,13 @@ try: 
     | 
|
| 
       141 
140 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       142 
141 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       143 
142 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       144 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       145 
143 
     | 
    
         
             
                    }
         
     | 
| 
       146 
144 
     | 
    
         
             
                geo_prods = client.get_collections_by_name(qualified_name)
         
     | 
| 
       147 
145 
     | 
    
         
             
                if isinstance(geo_prods, dict | list):
         
     | 
| 
       148 
146 
     | 
    
         
             
                    geo_prods_guid = geo_prods[0]['elementHeader']['guid']
         
     | 
| 
       149 
147 
     | 
    
         
             
                    print(f"Found geo_prods guid of {geo_prods_guid}")
         
     | 
| 
       150 
148 
     | 
    
         
             
                else:
         
     | 
| 
       151 
     | 
    
         
            -
                    geo_prods_guid = client. 
     | 
| 
      
 149 
     | 
    
         
            +
                    geo_prods_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       152 
150 
     | 
    
         
             
                    logger.success(f"Created folder collection for geoprods: {geo_prods_guid}")
         
     | 
| 
       153 
151 
     | 
    
         
             
                #
         
     | 
| 
       154 
152 
     | 
    
         
             
                #   Agricultural Products Folder
         
     | 
| 
         @@ -160,7 +158,7 @@ try: 
     | 
|
| 
       160 
158 
     | 
    
         | 
| 
       161 
159 
     | 
    
         
             
                props_body = {
         
     | 
| 
       162 
160 
     | 
    
         | 
| 
       163 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 161 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       164 
162 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       165 
163 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       166 
164 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -175,15 +173,13 @@ try: 
     | 
|
| 
       175 
173 
     | 
    
         
             
                    "parentGUID": marketplace_guid,
         
     | 
| 
       176 
174 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       177 
175 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       178 
     | 
    
         
            -
                    "properties": props_body,
         
     | 
| 
       179 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       180 
     | 
    
         
            -
                    }
         
     | 
| 
      
 176 
     | 
    
         
            +
                    "properties": props_body,        }
         
     | 
| 
       181 
177 
     | 
    
         
             
                ag_prods = client.get_collections_by_name(qualified_name)
         
     | 
| 
       182 
178 
     | 
    
         
             
                if isinstance(ag_prods, dict | list):
         
     | 
| 
       183 
179 
     | 
    
         
             
                    ag_prods_guid = ag_prods[0]['elementHeader']['guid']
         
     | 
| 
       184 
180 
     | 
    
         
             
                    print(f"Found ag_prods guid of {ag_prods_guid}")
         
     | 
| 
       185 
181 
     | 
    
         
             
                else:
         
     | 
| 
       186 
     | 
    
         
            -
                    ag_prods_guid = client. 
     | 
| 
      
 182 
     | 
    
         
            +
                    ag_prods_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       187 
183 
     | 
    
         
             
                    logger.success(f"Created folder collection for  ag products: {ag_prods_guid}")
         
     | 
| 
       188 
184 
     | 
    
         
             
                #
         
     | 
| 
       189 
185 
     | 
    
         
             
                #   Folder to hold Prepared Imagery Products
         
     | 
| 
         @@ -194,7 +190,7 @@ try: 
     | 
|
| 
       194 
190 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       195 
191 
     | 
    
         | 
| 
       196 
192 
     | 
    
         
             
                props_body = {
         
     | 
| 
       197 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 193 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       198 
194 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       199 
195 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       200 
196 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -209,14 +205,13 @@ try: 
     | 
|
| 
       209 
205 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       210 
206 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       211 
207 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       212 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       213 
208 
     | 
    
         
             
                    }
         
     | 
| 
       214 
209 
     | 
    
         
             
                prepared_imagery = client.get_collections_by_name(qualified_name)
         
     | 
| 
       215 
210 
     | 
    
         
             
                if isinstance(prepared_imagery, dict | list):
         
     | 
| 
       216 
211 
     | 
    
         
             
                    prepared_imagery_guid = prepared_imagery[0]['elementHeader']['guid']
         
     | 
| 
       217 
212 
     | 
    
         
             
                    print(f"Found prepared_imagery guid of {prepared_imagery_guid}")
         
     | 
| 
       218 
213 
     | 
    
         
             
                else:
         
     | 
| 
       219 
     | 
    
         
            -
                    prepared_imagery_guid = client. 
     | 
| 
      
 214 
     | 
    
         
            +
                    prepared_imagery_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       220 
215 
     | 
    
         
             
                    logger.success(f"Created folder for prepared imagery products: {prepared_imagery_guid}")
         
     | 
| 
       221 
216 
     | 
    
         
             
                #
         
     | 
| 
       222 
217 
     | 
    
         
             
                #   A digital product covering NDVI - derived from Sentinel 2
         
     | 
| 
         @@ -247,7 +242,6 @@ try: 
     | 
|
| 
       247 
242 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       248 
243 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       249 
244 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       250 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       251 
245 
     | 
    
         
             
                    }
         
     | 
| 
       252 
246 
     | 
    
         | 
| 
       253 
247 
     | 
    
         
             
                ndvi = client.get_collections_by_name(qualified_name)
         
     | 
| 
         @@ -266,7 +260,7 @@ try: 
     | 
|
| 
       266 
260 
     | 
    
         
             
                qualified_name = client.__create_qualified_name__("Folder", display_name)
         
     | 
| 
       267 
261 
     | 
    
         | 
| 
       268 
262 
     | 
    
         
             
                props_body = {
         
     | 
| 
       269 
     | 
    
         
            -
                    "class": " 
     | 
| 
      
 263 
     | 
    
         
            +
                    "class": "DigitalProductCatalogProperties",
         
     | 
| 
       270 
264 
     | 
    
         
             
                    "qualifiedName": qualified_name,
         
     | 
| 
       271 
265 
     | 
    
         
             
                    "displayName": display_name,
         
     | 
| 
       272 
266 
     | 
    
         
             
                    "description": description,
         
     | 
| 
         @@ -281,14 +275,13 @@ try: 
     | 
|
| 
       281 
275 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       282 
276 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       283 
277 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       284 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       285 
278 
     | 
    
         
             
                    }
         
     | 
| 
       286 
279 
     | 
    
         
             
                raw_imagery = client.get_collections_by_name(qualified_name)
         
     | 
| 
       287 
280 
     | 
    
         
             
                if isinstance(raw_imagery, dict | list):
         
     | 
| 
       288 
281 
     | 
    
         
             
                    raw_imagery_guid = raw_imagery[0]['elementHeader']['guid']
         
     | 
| 
       289 
282 
     | 
    
         
             
                    print(f"Found raw_imagery guid of {raw_imagery_guid}")
         
     | 
| 
       290 
283 
     | 
    
         
             
                else:
         
     | 
| 
       291 
     | 
    
         
            -
                    raw_imagery_guid = client. 
     | 
| 
      
 284 
     | 
    
         
            +
                    raw_imagery_guid = client.create_digital_product_catalog(body=request_body)
         
     | 
| 
       292 
285 
     | 
    
         
             
                    logger.success(f"Created folder for raw imagery products: {raw_imagery_guid}")
         
     | 
| 
       293 
286 
     | 
    
         
             
                #
         
     | 
| 
       294 
287 
     | 
    
         
             
                #   A digital product providing Sentinel-2a imagery
         
     | 
| 
         @@ -319,7 +312,6 @@ try: 
     | 
|
| 
       319 
312 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       320 
313 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       321 
314 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       322 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       323 
315 
     | 
    
         
             
                    }
         
     | 
| 
       324 
316 
     | 
    
         
             
                sentinel2a = client.get_collections_by_name(qualified_name)
         
     | 
| 
       325 
317 
     | 
    
         
             
                if isinstance(sentinel2a, dict | list):
         
     | 
| 
         @@ -357,7 +349,6 @@ try: 
     | 
|
| 
       357 
349 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       358 
350 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       359 
351 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       360 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       361 
352 
     | 
    
         
             
                    }
         
     | 
| 
       362 
353 
     | 
    
         
             
                subscriptions_folder = client.get_collections_by_name(qualified_name)
         
     | 
| 
       363 
354 
     | 
    
         
             
                if isinstance(subscriptions_folder, dict | list):
         
     | 
| 
         @@ -451,7 +442,6 @@ try: 
     | 
|
| 
       451 
442 
     | 
    
         
             
                    "parentRelationshipTypeName": "CollectionMembership",
         
     | 
| 
       452 
443 
     | 
    
         
             
                    "parentAtEnd1": True,
         
     | 
| 
       453 
444 
     | 
    
         
             
                    "properties": props_body,
         
     | 
| 
       454 
     | 
    
         
            -
                    "initialClassifications": {"Folder": {"class": "ClassificationProperties"}}
         
     | 
| 
       455 
445 
     | 
    
         
             
                    }
         
     | 
| 
       456 
446 
     | 
    
         
             
                license_type_folder = client.get_collections_by_name(qualified_name)
         
     | 
| 
       457 
447 
     | 
    
         
             
                if not isinstance(license_type_folder, dict | list):
         
     | 
| 
         @@ -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",
         
     |