pyegeria 5.4.0.28__py3-none-any.whl → 5.5.3.3__py3-none-any.whl
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.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- commands/__init__.py +24 -0
- commands/cat/Dr-Egeria_md-orig.py +2 -2
- commands/cat/collection_actions.py +197 -0
- commands/cat/dr_egeria_command_help.py +137 -38
- commands/cat/dr_egeria_jupyter.py +7 -7
- commands/cat/dr_egeria_md.py +10 -267
- commands/cat/exp_list_glossaries.py +11 -14
- commands/cat/get_asset_graph.py +37 -267
- commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
- commands/cat/get_project_dependencies.py +14 -14
- commands/cat/get_project_structure.py +15 -14
- commands/cat/get_tech_type_elements.py +16 -116
- commands/cat/glossary_actions.py +145 -298
- commands/cat/list_assets.py +3 -11
- commands/cat/list_cert_types.py +17 -63
- commands/cat/list_collections.py +17 -139
- commands/cat/list_deployed_catalogs.py +15 -27
- commands/cat/list_deployed_database_schemas.py +27 -43
- commands/cat/list_deployed_databases.py +16 -31
- commands/cat/list_deployed_servers.py +35 -54
- commands/cat/list_glossaries.py +18 -17
- commands/cat/list_projects.py +10 -12
- commands/cat/list_tech_type_elements.py +21 -37
- commands/cat/list_tech_types.py +13 -25
- commands/cat/list_terms.py +38 -79
- commands/cat/list_todos.py +4 -11
- commands/cat/list_user_ids.py +3 -10
- commands/cat/my_reports.py +559 -0
- commands/cat/run_report.py +394 -0
- commands/cat/{list_format_set.py → run_report_orig.py} +136 -44
- commands/cli/egeria.py +182 -219
- commands/cli/egeria_cat.py +32 -59
- commands/cli/egeria_my.py +13 -0
- commands/cli/egeria_ops.py +69 -74
- commands/cli/egeria_tech.py +17 -93
- commands/{cat → deprecated}/list_data_designer.py +2 -4
- commands/{cat → deprecated}/list_data_structures_full.py +3 -6
- commands/deprecated/old_get_asset_graph.py +315 -0
- commands/my/__init__.py +0 -2
- commands/my/list_my_profile.py +27 -34
- commands/my/list_my_roles.py +1 -7
- commands/my/monitor_my_todos.py +1 -7
- commands/my/monitor_open_todos.py +6 -7
- commands/my/todo_actions.py +4 -5
- commands/ops/__init__.py +0 -2
- commands/ops/gov_server_actions.py +17 -21
- commands/ops/list_archives.py +17 -38
- commands/ops/list_catalog_targets.py +33 -40
- commands/ops/load_archive.py +14 -11
- commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
- commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
- commands/ops/monitor_engine_activity.py +79 -77
- commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
- commands/ops/monitor_platform_status.py +38 -50
- commands/ops/monitor_server_startup.py +6 -11
- commands/ops/monitor_server_status.py +7 -11
- commands/ops/orig_monitor_server_list.py +8 -8
- commands/ops/orig_monitor_server_status.py +1 -5
- commands/ops/refresh_integration_daemon.py +5 -5
- commands/ops/restart_integration_daemon.py +5 -5
- commands/ops/table_integ_daemon_status.py +6 -6
- commands/ops/x_engine_actions.py +7 -7
- commands/tech/__init__.py +0 -2
- commands/tech/{generic_actions.py → element_actions.py} +6 -11
- commands/tech/get_element_info.py +20 -29
- commands/tech/get_guid_info.py +23 -42
- commands/tech/get_tech_details.py +20 -35
- commands/tech/get_tech_type_template.py +28 -39
- commands/tech/list_all_om_type_elements.py +24 -30
- commands/tech/list_all_om_type_elements_x.py +22 -28
- commands/tech/list_all_related_elements.py +19 -28
- commands/tech/list_anchored_elements.py +22 -30
- commands/tech/list_asset_types.py +19 -24
- commands/tech/list_elements_by_classification_by_property_value.py +26 -32
- commands/tech/list_elements_by_property_value.py +19 -25
- commands/tech/list_elements_by_property_value_x.py +20 -28
- commands/tech/list_elements_for_classification.py +28 -41
- commands/tech/list_gov_action_processes.py +16 -27
- commands/tech/list_information_supply_chains.py +22 -30
- commands/tech/list_registered_services.py +14 -26
- commands/tech/list_related_elements_with_prop_value.py +15 -25
- commands/tech/list_related_specification.py +1 -4
- commands/tech/list_relationship_types.py +15 -25
- commands/tech/list_relationships.py +20 -36
- commands/tech/list_solution_blueprints.py +28 -33
- commands/tech/list_solution_components.py +23 -29
- commands/tech/list_solution_roles.py +21 -32
- commands/tech/list_tech_templates.py +51 -54
- commands/tech/list_valid_metadata_values.py +5 -9
- commands/tech/table_tech_templates.py +2 -6
- commands/tech/x_list_related_elements.py +1 -4
- examples/GeoSpatial Products Example.py +524 -0
- examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
- examples/Jupyter Notebooks/README.md +2 -0
- examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
- examples/Jupyter Notebooks/common/__init__.py +14 -0
- examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
- examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
- examples/Jupyter Notebooks/common/globals.ipynb +184 -0
- examples/Jupyter Notebooks/common/globals.py +154 -0
- examples/Jupyter Notebooks/common/orig_globals.py +152 -0
- examples/format_sets/all_format_sets.json +910 -0
- examples/format_sets/custom_format_sets.json +268 -0
- examples/format_sets/subset_format_sets.json +187 -0
- examples/format_sets_save_load_example.py +291 -0
- examples/jacquard_data_sets.py +129 -0
- examples/output_formats_example.py +193 -0
- examples/test_jacquard_data_sets.py +54 -0
- examples/test_jacquard_data_sets_scenarios.py +94 -0
- md_processing/__init__.py +33 -24
- md_processing/command_dispatcher.py +33 -0
- md_processing/command_mapping.py +221 -0
- md_processing/data/commands/commands_data_designer.json +537 -0
- md_processing/data/commands/commands_external_reference.json +733 -0
- md_processing/data/commands/commands_feedback.json +155 -0
- md_processing/data/commands/commands_general.json +204 -0
- md_processing/data/commands/commands_glossary.json +218 -0
- md_processing/data/commands/commands_governance.json +3678 -0
- md_processing/data/commands/commands_product_manager.json +865 -0
- md_processing/data/commands/commands_project.json +642 -0
- md_processing/data/commands/commands_solution_architect.json +366 -0
- md_processing/data/commands.json +6489 -30060
- md_processing/data/{commands-working.json → commands_working.json} +9304 -13513
- md_processing/data/gened_report_specs.py +6584 -0
- md_processing/data/generated_format_sets.json +6533 -0
- md_processing/data/generated_format_sets_old.json +4137 -0
- md_processing/data/generated_format_sets_old.py +45 -0
- md_processing/dr_egeria.py +182 -0
- md_processing/md_commands/data_designer_commands.py +195 -583
- md_processing/md_commands/ext_ref_commands.py +530 -0
- md_processing/md_commands/feedback_commands.py +726 -0
- md_processing/md_commands/glossary_commands.py +106 -490
- md_processing/md_commands/governance_officer_commands.py +129 -18
- md_processing/md_commands/product_manager_commands.py +362 -115
- md_processing/md_commands/project_commands.py +351 -134
- md_processing/md_commands/solution_architect_commands.py +276 -232
- md_processing/md_commands/view_commands.py +295 -0
- md_processing/md_processing_utils/common_md_proc_utils.py +258 -166
- md_processing/md_processing_utils/common_md_utils.py +138 -43
- md_processing/md_processing_utils/determine_width.py +103 -0
- md_processing/md_processing_utils/extraction_utils.py +100 -39
- md_processing/md_processing_utils/gen_report_specs.py +643 -0
- md_processing/md_processing_utils/generate_dr_help.py +61 -33
- md_processing/md_processing_utils/generate_md_cmd_templates.py +20 -19
- md_processing/md_processing_utils/generate_md_templates.py +3 -12
- md_processing/md_processing_utils/md_processing_constants.py +1053 -72
- pyegeria/__init__.py +203 -158
- pyegeria/core/__init__.py +40 -0
- pyegeria/core/_base_platform_client.py +574 -0
- pyegeria/core/_base_server_client.py +573 -0
- pyegeria/{_exceptions_new.py → core/_exceptions.py} +62 -30
- pyegeria/{_globals.py → core/_globals.py} +14 -3
- pyegeria/core/_server_client.py +6073 -0
- pyegeria/{_validators.py → core/_validators.py} +7 -8
- pyegeria/core/config.py +654 -0
- pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
- pyegeria/core/load_config.py +37 -0
- pyegeria/{logging_configuration.py → core/logging_configuration.py} +1 -1
- pyegeria/core/mcp_adapter.py +144 -0
- pyegeria/core/mcp_server.py +212 -0
- pyegeria/core/utils.py +405 -0
- pyegeria/{_client.py → deprecated/_client.py} +24 -25
- pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
- pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1987 -1877
- pyegeria/{output_formatter.py → deprecated/output_formatter_with_machine_keys.py} +298 -45
- pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +155 -171
- pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
- pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
- pyegeria/egeria_cat_client.py +26 -70
- pyegeria/egeria_client.py +130 -93
- pyegeria/egeria_config_client.py +40 -46
- pyegeria/egeria_tech_client.py +141 -54
- pyegeria/models/__init__.py +150 -0
- pyegeria/{models.py → models/models.py} +156 -20
- pyegeria/omvs/__init__.py +84 -0
- pyegeria/omvs/action_author.py +342 -0
- pyegeria/omvs/actor_manager.py +5980 -0
- pyegeria/omvs/asset_catalog.py +842 -0
- pyegeria/omvs/asset_maker.py +2736 -0
- pyegeria/omvs/automated_curation.py +4403 -0
- pyegeria/omvs/classification_manager.py +11213 -0
- pyegeria/{collection_manager.py → omvs/collection_manager.py} +1334 -1160
- pyegeria/omvs/community_matters_omvs.py +468 -0
- pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
- pyegeria/{data_designer.py → omvs/data_designer.py} +1115 -660
- pyegeria/omvs/data_discovery.py +869 -0
- pyegeria/omvs/data_engineer.py +372 -0
- pyegeria/omvs/digital_business.py +1133 -0
- pyegeria/omvs/external_links.py +1752 -0
- pyegeria/omvs/feedback_manager.py +834 -0
- pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
- pyegeria/{glossary_manager.py → omvs/glossary_manager.py} +857 -519
- pyegeria/{governance_officer.py → omvs/governance_officer.py} +964 -468
- pyegeria/omvs/lineage_linker.py +314 -0
- pyegeria/omvs/location_arena.py +1525 -0
- pyegeria/omvs/metadata_expert.py +668 -0
- pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
- pyegeria/omvs/my_profile.py +1042 -0
- pyegeria/omvs/notification_manager.py +358 -0
- pyegeria/omvs/people_organizer.py +394 -0
- pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
- pyegeria/omvs/product_manager.py +1825 -0
- pyegeria/omvs/project_manager.py +1907 -0
- pyegeria/omvs/reference_data.py +1140 -0
- pyegeria/omvs/registered_info.py +334 -0
- pyegeria/omvs/runtime_manager.py +2817 -0
- pyegeria/omvs/schema_maker.py +446 -0
- pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
- pyegeria/{solution_architect_omvs.py → omvs/solution_architect.py} +1886 -1505
- pyegeria/omvs/specification_properties.py +37 -0
- pyegeria/omvs/subject_area.py +1042 -0
- pyegeria/omvs/template_manager_omvs.py +236 -0
- pyegeria/omvs/time_keeper.py +1761 -0
- pyegeria/omvs/valid_metadata.py +3221 -0
- pyegeria/omvs/valid_metadata_lists.py +37 -0
- pyegeria/omvs/valid_type_lists.py +37 -0
- pyegeria/view/__init__.py +28 -0
- pyegeria/{_output_format_models.py → view/_output_format_models.py} +160 -24
- pyegeria/view/_output_formats.py +14 -0
- pyegeria/view/base_report_formats.py +2719 -0
- pyegeria/view/dr_egeria_reports.py +56 -0
- pyegeria/view/format_set_executor.py +397 -0
- pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
- pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
- pyegeria/view/output_formatter.py +1297 -0
- pyegeria-5.5.3.3.dist-info/METADATA +218 -0
- pyegeria-5.5.3.3.dist-info/RECORD +241 -0
- {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
- pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
- pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
- commands/cat/.DS_Store +0 -0
- commands/cat/.env +0 -8
- commands/cat/README.md +0 -16
- commands/cat/debug_log +0 -1126
- commands/cat/debug_log.2025-08-18_11-34-38_088636.zip +0 -0
- commands/cat/list_categories.py +0 -192
- commands/cat/logs/pyegeria.log +0 -4
- commands/cli/debug_log +0 -0
- commands/cli/debug_log.log +0 -0
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/ops/logs/pyegeria.log +0 -0
- commands/ops/monitor_asset_events.py +0 -108
- commands/tech/README.md +0 -24
- md_processing/.DS_Store +0 -0
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +0 -163
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +0 -474
- md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
- md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
- md_processing/dr_egeria_inbox/arch_test.md +0 -57
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
- md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
- md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
- md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
- md_processing/dr_egeria_inbox/cat_test.md +0 -100
- md_processing/dr_egeria_inbox/collections.md +0 -39
- md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
- md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
- md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
- md_processing/dr_egeria_inbox/data_field.md +0 -54
- md_processing/dr_egeria_inbox/data_spec.md +0 -77
- md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
- md_processing/dr_egeria_inbox/data_test.md +0 -179
- md_processing/dr_egeria_inbox/data_test2.md +0 -429
- md_processing/dr_egeria_inbox/data_test3.md +0 -462
- md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
- md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
- md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
- md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
- md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
- md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
- md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
- md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
- md_processing/dr_egeria_inbox/glossary_list.md +0 -5
- md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
- md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
- md_processing/dr_egeria_inbox/gov_def.md +0 -482
- md_processing/dr_egeria_inbox/gov_def2.md +0 -447
- md_processing/dr_egeria_inbox/img.png +0 -0
- md_processing/dr_egeria_inbox/product.md +0 -211
- md_processing/dr_egeria_inbox/rel.md +0 -8
- md_processing/dr_egeria_inbox/sb.md +0 -119
- md_processing/dr_egeria_inbox/solution-components.md +0 -136
- md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
- md_processing/dr_egeria_inbox/synonym_test.md +0 -42
- md_processing/dr_egeria_inbox/t2.md +0 -268
- md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
- md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -6
- md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -31
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
- md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
- md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -220
- md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:22-dr_egeria_intro_part1.md +0 -312
- md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:23-dr_egeria_intro_part1.md +0 -265
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:06-dr_egeria_intro_part1.md +0 -230
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:30-dr_egeria_intro_part1.md +0 -296
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:31-dr_egeria_intro_part1.md +0 -253
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:08-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:12-dr_egeria_intro_part2.md +0 -343
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +0 -426
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +0 -212
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +0 -201
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +0 -77
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +0 -75
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +0 -74
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +0 -49
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +0 -527
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +0 -485
- md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +0 -209
- md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
- md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
- md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
- md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
- md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
- md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
- md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
- md_processing/family_docs/Data Designer.md +0 -842
- md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
- md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
- md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
- md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
- md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
- md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
- md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
- md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
- md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
- md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
- md_processing/family_docs/Digital Product Manager.md +0 -668
- md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
- md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
- md_processing/family_docs/Glossary/Create_Category.md +0 -38
- md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
- md_processing/family_docs/Glossary/Create_Term.md +0 -70
- md_processing/family_docs/Glossary.md +0 -206
- md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
- md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
- md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
- md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
- md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
- md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
- md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
- md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
- md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
- md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
- md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
- md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
- md_processing/family_docs/Governance Officer.md +0 -2412
- md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
- md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
- md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
- md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
- md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
- md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
- md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
- md_processing/family_docs/Solution Architect.md +0 -490
- md_processing/md_processing_utils/debug_log +0 -574
- md_processing/md_processing_utils/debug_log.log +0 -0
- md_processing/md_processing_utils/dr-egeria-help-2025-07-17T17:22:09.md +0 -2065
- md_processing/md_processing_utils/generated_help_terms.md +0 -842
- pyegeria/.DS_Store +0 -0
- pyegeria/README.md +0 -35
- pyegeria/_client_new.py +0 -1102
- pyegeria/_output_formats.py +0 -730
- pyegeria/asset_catalog_omvs.py +0 -864
- pyegeria/automated_curation_omvs.py +0 -3765
- pyegeria/config.py +0 -523
- pyegeria/egeria_my_client.py +0 -91
- pyegeria/feedback_manager_omvs.py +0 -4573
- pyegeria/load_config_orig.py +0 -218
- pyegeria/md_processing_helpers.py +0 -58
- pyegeria/md_processing_utils_orig.py +0 -1103
- pyegeria/metadata_explorer_omvs.py +0 -2326
- pyegeria/my_profile_omvs.py +0 -1022
- pyegeria/project_manager.py +0 -1591
- pyegeria/registered_info.py +0 -167
- pyegeria/template_manager_omvs.py +0 -1414
- pyegeria/utils.py +0 -256
- pyegeria-5.4.0.28.dist-info/METADATA +0 -77
- pyegeria-5.4.0.28.dist-info/RECORD +0 -343
- pyegeria-5.4.0.28.dist-info/entry_points.txt +0 -105
- /commands/cat/debug_log.log → /pyegeria/deprecated/__init__.py +0 -0
- /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
- /pyegeria/{collection_models.py → models/collection_models.py} +0 -0
- {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
|
@@ -3,47 +3,28 @@ This file contains glossary-related object_action functions for processing Egeri
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
import json
|
|
6
|
-
import os
|
|
7
|
-
import re
|
|
8
6
|
from typing import List, Optional
|
|
9
7
|
from loguru import logger
|
|
10
8
|
from rich import print
|
|
11
|
-
from rich.console import Console
|
|
12
9
|
from rich.markdown import Markdown
|
|
13
10
|
|
|
14
11
|
from md_processing.md_processing_utils.common_md_proc_utils import (parse_upsert_command, parse_view_command,
|
|
15
12
|
sync_collection_memberships)
|
|
16
|
-
from md_processing.md_processing_utils.common_md_utils import
|
|
17
|
-
|
|
18
|
-
set_rel_request_body, set_create_body, set_collection_classifications, set_product_body
|
|
19
|
-
|
|
20
|
-
from md_processing.md_processing_utils.extraction_utils import (extract_command_plus, update_a_command)
|
|
21
|
-
from md_processing.md_processing_utils.md_processing_constants import (load_commands, ERROR)
|
|
22
|
-
from pyegeria import DEBUG_LEVEL, body_slimmer, to_pascal_case, PyegeriaException, print_basic_exception, print_exception_table
|
|
23
|
-
from pyegeria.egeria_tech_client import EgeriaTech
|
|
13
|
+
from md_processing.md_processing_utils.common_md_utils import set_update_body, \
|
|
14
|
+
set_element_prop_body, set_rel_request_body, set_create_body, set_object_classifications, set_rel_prop_body
|
|
24
15
|
|
|
16
|
+
from pyegeria import PyegeriaException, print_basic_exception
|
|
25
17
|
|
|
18
|
+
from md_processing.md_processing_utils.common_md_utils import (debug_level, print_msg, get_element_dictionary, update_element_dictionary,
|
|
19
|
+
)
|
|
20
|
+
from md_processing.md_processing_utils.extraction_utils import (extract_command_plus, update_a_command)
|
|
26
21
|
|
|
27
|
-
from md_processing.md_processing_utils.common_md_utils import (debug_level, print_msg, set_debug_level,
|
|
28
|
-
get_element_dictionary, update_element_dictionary,
|
|
29
|
-
setup_log)
|
|
30
|
-
from md_processing.md_processing_utils.extraction_utils import (extract_command_plus, extract_command,
|
|
31
|
-
process_simple_attribute, process_element_identifiers,
|
|
32
|
-
update_a_command, extract_attribute,
|
|
33
|
-
get_element_by_name, process_name_list)
|
|
34
|
-
from md_processing.md_processing_utils.md_processing_constants import (GLOSSARY_NAME_LABELS, TERM_NAME_LABELS,
|
|
35
|
-
TERM_RELATIONSHPS, PARENT_CATEGORY_LABELS,
|
|
36
|
-
CATEGORY_NAME_LABELS, ALWAYS, ERROR, INFO,
|
|
37
|
-
WARNING, pre_command, EXISTS_REQUIRED,
|
|
38
|
-
OUTPUT_LABELS, SEARCH_LABELS, GUID_LABELS,
|
|
39
|
-
ELEMENT_OUTPUT_FORMATS, command_seperator)
|
|
40
|
-
from pyegeria import body_slimmer
|
|
41
|
-
from pyegeria._globals import (NO_GLOSSARIES_FOUND, NO_ELEMENTS_FOUND, NO_CATEGORIES_FOUND)
|
|
42
22
|
from pyegeria.egeria_tech_client import EgeriaTech
|
|
23
|
+
from pyegeria.core.utils import make_format_set_name_from_type, body_slimmer
|
|
24
|
+
|
|
43
25
|
|
|
44
26
|
# EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "170"))
|
|
45
27
|
# console = Console(width=EGERIA_WIDTH)
|
|
46
|
-
setup_log()
|
|
47
28
|
|
|
48
29
|
def update_term_categories(egeria_client: EgeriaTech, term_guid: str, categories_exist: bool,
|
|
49
30
|
categories_list: List[str]) -> None:
|
|
@@ -158,7 +139,7 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
|
158
139
|
obj = "Glossary"
|
|
159
140
|
# Set the property body for a glossary collection
|
|
160
141
|
#
|
|
161
|
-
prop_body =
|
|
142
|
+
prop_body = set_element_prop_body(obj, qualified_name, attributes)
|
|
162
143
|
prop_body["languager"] = attributes.get('Language', {}).get('value', None)
|
|
163
144
|
prop_body["usage"] = attributes.get('Usage', {}).get('value', None)
|
|
164
145
|
|
|
@@ -187,7 +168,7 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
|
187
168
|
'guid': guid, 'display_name': display_name
|
|
188
169
|
})
|
|
189
170
|
return egeria_client.get_collection_by_guid(guid, element_type='Glossary',
|
|
190
|
-
output_format='MD',
|
|
171
|
+
output_format='MD', report_spec = "DrE-Glossary")
|
|
191
172
|
|
|
192
173
|
|
|
193
174
|
elif object_action == "Create":
|
|
@@ -201,7 +182,7 @@ def process_glossary_upsert_command(egeria_client: EgeriaTech, txt: str, directi
|
|
|
201
182
|
body = set_create_body(object_type,attributes)
|
|
202
183
|
|
|
203
184
|
# if this is a root or folder (maybe more in the future), then make sure that the classification is set.
|
|
204
|
-
body["initialClassifications"] =
|
|
185
|
+
body["initialClassifications"] = set_object_classifications(object_type, attributes, ["Taxonomy", "CanonicalVocabulary"])
|
|
205
186
|
if object_type == "Taxonomy":
|
|
206
187
|
body["initialClassifications"]['Taxonomy']['organizingPrinciple'] = attributes.get('Organizing Principle', {}).get('value', None)
|
|
207
188
|
elif object_type == "CanonicalVocabulary":
|
|
@@ -529,18 +510,24 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
529
510
|
obj = "GlossaryTerm"
|
|
530
511
|
# Set the property body for a glossary collection
|
|
531
512
|
#
|
|
532
|
-
prop_body =
|
|
513
|
+
prop_body = set_element_prop_body(obj, qualified_name, attributes)
|
|
533
514
|
prop_body["aliases"] = attributes.get('Aliases', {}).get('value', None)
|
|
534
515
|
prop_body["summary"] = attributes.get('Summary', {}).get('value', None)
|
|
535
516
|
prop_body["examples"] = attributes.get('Examples', {}).get('value', None)
|
|
536
517
|
prop_body["abbreviation"] = attributes.get('Abbreviation', {}).get('value', None)
|
|
537
518
|
prop_body["usage"] = attributes.get('Usage', {}).get('value', None)
|
|
538
519
|
prop_body["user_defined_status"] = attributes.get('UserDefinedStatus', {}).get('value', None)
|
|
539
|
-
to_be_collection_guids = [attributes.get("Glossary", {}).get("
|
|
520
|
+
to_be_collection_guids = [attributes.get("Glossary", {}).get("guid", {}),
|
|
540
521
|
attributes.get("Folder", {}).get("guid_list", {})]
|
|
522
|
+
glossary_guid = attributes.get("Glossary", {}).get('guid', None)
|
|
523
|
+
anchor_scope_guid = attributes.get("Anchor Scope", {}).get('guid', None)
|
|
524
|
+
|
|
525
|
+
|
|
541
526
|
get_method = egeria_client.get_term_by_guid
|
|
542
527
|
collection_types = ["Glossary", "Folder"]
|
|
543
528
|
|
|
529
|
+
output_set = make_format_set_name_from_type(object_type)
|
|
530
|
+
|
|
544
531
|
if object_action == "Update":
|
|
545
532
|
if not exists:
|
|
546
533
|
msg = (f" Element `{display_name}` does not exist! Updating result document with Create "
|
|
@@ -561,7 +548,7 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
561
548
|
egeria_client.update_term_status(guid, status)
|
|
562
549
|
get_method = egeria_client.get_term_by_guid
|
|
563
550
|
collection_types = ["Glossary", "Folder"]
|
|
564
|
-
|
|
551
|
+
|
|
565
552
|
sync_collection_memberships(egeria_client, guid, get_method, collection_types,
|
|
566
553
|
to_be_collection_guids, merge_update)
|
|
567
554
|
logger.success(f"Updated {object_type} `{display_name}` with GUID {guid}\n\n___")
|
|
@@ -569,7 +556,7 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
569
556
|
'guid': guid, 'display_name': display_name
|
|
570
557
|
})
|
|
571
558
|
return egeria_client.get_term_by_guid(guid, element_type='GlossaryTerm',
|
|
572
|
-
output_format='MD',
|
|
559
|
+
output_format='MD', report_spec=output_set)
|
|
573
560
|
|
|
574
561
|
|
|
575
562
|
elif object_action == "Create":
|
|
@@ -585,6 +572,9 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
585
572
|
# if this is a root or folder (maybe more in the future), then make sure that the classification is set.
|
|
586
573
|
|
|
587
574
|
body["properties"] = prop_body
|
|
575
|
+
# If the anchor scope is not already set and a glossary is specified
|
|
576
|
+
if anchor_scope_guid is None and glossary_guid:
|
|
577
|
+
body["anchorScopeGUID"] = glossary_guid
|
|
588
578
|
|
|
589
579
|
guid = egeria_client.create_glossary_term(body = body)
|
|
590
580
|
if guid:
|
|
@@ -595,7 +585,7 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
595
585
|
})
|
|
596
586
|
msg = f"Created Element `{display_name}` with GUID {guid}\n\n___"
|
|
597
587
|
logger.success(msg)
|
|
598
|
-
return egeria_client.
|
|
588
|
+
return egeria_client.get_term_by_guid(guid, obj, output_format='MD', report_spec=output_set)
|
|
599
589
|
else:
|
|
600
590
|
msg = f"Failed to create element `{display_name}` with GUID {guid}\n\n___"
|
|
601
591
|
logger.error(msg)
|
|
@@ -609,460 +599,86 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
609
599
|
logger.error(f"Error performing {command}: {e}")
|
|
610
600
|
else:
|
|
611
601
|
return None
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
#
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
#
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
602
|
+
|
|
603
|
+
def process_link_term_term_relationship_command(egeria_client: EgeriaTech, txt: str,
|
|
604
|
+
directive: str = "display") -> Optional[str]:
|
|
605
|
+
""" Relate two terms through the specified relationship. ."""
|
|
606
|
+
command, object_type, object_action = extract_command_plus(txt)
|
|
607
|
+
print(Markdown(f"# {command}\n"))
|
|
608
|
+
|
|
609
|
+
parsed_output = parse_view_command(egeria_client, object_type, object_action, txt, directive)
|
|
610
|
+
|
|
611
|
+
print(Markdown(parsed_output['display']))
|
|
612
|
+
|
|
613
|
+
logger.debug(json.dumps(parsed_output, indent=4))
|
|
614
|
+
|
|
615
|
+
attributes = parsed_output['attributes']
|
|
616
|
+
term1_guid = attributes.get('Term 1', {}).get('guid', None)
|
|
617
|
+
term1_qname = attributes.get('Term 1', {}).get('qualified_name', None)
|
|
618
|
+
term2_guid = attributes.get('Term 2', {}).get('guid', None)
|
|
619
|
+
term2_qname = attributes.get('Term 2', {}).get('qualified_name', None)
|
|
620
|
+
relationship = attributes.get('Relationship', {}).get('value', None)
|
|
621
|
+
expression = attributes.get('Expression', {}).get('value', None)
|
|
622
|
+
confidence = attributes.get('Confidence', {}).get('value', None)
|
|
623
|
+
status = attributes.get('Status', {}).get('value', None)
|
|
624
|
+
steward = attributes.get('Steward', {}).get('value', None)
|
|
625
|
+
source = attributes.get('Source', {}).get('value', None)
|
|
626
|
+
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
valid = parsed_output['valid']
|
|
630
|
+
exists = term1_guid is not None and term2_guid is not None
|
|
631
|
+
|
|
632
|
+
if not (valid and exists):
|
|
633
|
+
valid = False
|
|
634
|
+
|
|
635
|
+
if directive == "display":
|
|
636
|
+
return None
|
|
637
|
+
elif directive == "validate":
|
|
638
|
+
if valid:
|
|
639
|
+
print(Markdown(f"==> Validation of {command} completed successfully!\n"))
|
|
640
|
+
else:
|
|
641
|
+
msg = f"Validation failed for object_action `{command}`\n"
|
|
642
|
+
return valid
|
|
643
|
+
|
|
644
|
+
elif directive == "process":
|
|
645
|
+
prop_body = set_rel_prop_body("GlossaryTerm", attributes)
|
|
646
|
+
prop_body['expression'] = expression
|
|
647
|
+
prop_body['confidence'] = confidence
|
|
648
|
+
prop_body['status'] = status
|
|
649
|
+
prop_body['steward'] = steward
|
|
650
|
+
prop_body['source'] = source
|
|
651
|
+
|
|
652
|
+
try:
|
|
653
|
+
|
|
654
|
+
if not valid: # First validate the term before we process it
|
|
655
|
+
return None
|
|
656
|
+
|
|
657
|
+
if object_action == "Link":
|
|
658
|
+
if not exists:
|
|
659
|
+
msg = f" Term `{term1_guid}` or {term2_guid} does not exist! "
|
|
660
|
+
logger.error(msg)
|
|
661
|
+
return None
|
|
662
|
+
else:
|
|
663
|
+
print(Markdown(
|
|
664
|
+
f"==> Validation of {command} completed successfully! Proceeding to apply the changes.\n"))
|
|
665
|
+
body = set_rel_request_body(relationship, prop_body)
|
|
666
|
+
body['properties'] = prop_body
|
|
667
|
+
body = body_slimmer(body)
|
|
668
|
+
# todo removing body for now since don't know relationship properties class
|
|
669
|
+
egeria_client.add_relationship_between_terms(term1_guid, term2_guid, relationship)
|
|
670
|
+
logger.success(f"Created `{relationship}` relationship between `{term1_qname}` and `{term2_qname}`\n\n___")
|
|
671
|
+
update_md = (f"\n\n# Update Term-Term Relationship\n\n## Term 1 Name:\n\n{term1_qname}"
|
|
672
|
+
f"\n\n## Term 2 Name\n\n{term2_qname}\n\n## Term Relationship:\n\n{relationship}")
|
|
673
|
+
return update_md
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
except Exception as e:
|
|
677
|
+
print(f"Error performing {command}: {e}")
|
|
678
|
+
print_basic_exception(e)
|
|
679
|
+
return None
|
|
680
|
+
return None
|
|
681
|
+
else:
|
|
682
|
+
return None
|
|
670
683
|
|
|
671
684
|
|
|
672
|
-
def process_term_list_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
673
|
-
pass
|
|
674
|
-
# """ List terms as a markdown table. Filter based on optional search string. """
|
|
675
|
-
# set_debug_level(directive)
|
|
676
|
-
# valid = True
|
|
677
|
-
# command = extract_command(txt)
|
|
678
|
-
# print(Markdown(f"# {command}\n"))
|
|
679
|
-
#
|
|
680
|
-
# search_string = process_simple_attribute(txt, SEARCH_LABELS)
|
|
681
|
-
# if search_string is None:
|
|
682
|
-
# search_string = '*'
|
|
683
|
-
# print(Markdown(f"{pre_command} `{command}` with search string:`{search_string}` with directive: `{directive}`"))
|
|
684
|
-
#
|
|
685
|
-
# glossary = process_simple_attribute(txt, ['Glossary', 'In Glossary', "Glossary Name"])
|
|
686
|
-
# if glossary is not None:
|
|
687
|
-
# _, glossary_guid, _, glossary_exists = get_element_by_name(egeria_client, "Glossary", glossary)
|
|
688
|
-
# msg = f"Found glossary `{glossary}` with GUID {glossary_guid}"
|
|
689
|
-
# print_msg(INFO, msg, debug_level)
|
|
690
|
-
# else:
|
|
691
|
-
# glossary_guid = None
|
|
692
|
-
# msg = f"No glossary found"
|
|
693
|
-
# print_msg(INFO, msg, debug_level)
|
|
694
|
-
#
|
|
695
|
-
# output_format = process_simple_attribute(txt, OUTPUT_LABELS)
|
|
696
|
-
# if output_format is None:
|
|
697
|
-
# output_format = "LIST"
|
|
698
|
-
# elif output_format not in ELEMENT_OUTPUT_FORMATS:
|
|
699
|
-
# valid = False
|
|
700
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
701
|
-
#
|
|
702
|
-
# request_display = (f"\n\t* Search String: {search_string}\n\t* Glossary: {glossary}\n\t* Output Format: "
|
|
703
|
-
# f"{output_format}\n")
|
|
704
|
-
#
|
|
705
|
-
# if directive == "display":
|
|
706
|
-
# print(Markdown(request_display))
|
|
707
|
-
# return None
|
|
708
|
-
# elif directive == "validate":
|
|
709
|
-
# print(Markdown(request_display))
|
|
710
|
-
# return valid
|
|
711
|
-
# elif directive == "process":
|
|
712
|
-
# try:
|
|
713
|
-
# print(Markdown(request_display))
|
|
714
|
-
# if not valid: # First validate the term before we process it
|
|
715
|
-
# return None
|
|
716
|
-
#
|
|
717
|
-
# term_list_md = f"\n# Term List for search string: `{search_string}`\n\n"
|
|
718
|
-
# if output_format == "DICT":
|
|
719
|
-
# struct = egeria_client.find_glossary_terms(search_string, glossary_guid, output_format=output_format)
|
|
720
|
-
# term_list_md += f"```{json.dumps(struct, indent=4)}```\n"
|
|
721
|
-
# else:
|
|
722
|
-
# term_list_md += egeria_client.find_glossary_terms(search_string, glossary_guid,
|
|
723
|
-
# output_format=output_format)
|
|
724
|
-
# print_msg("ALWAYS", f"Wrote Term List for search string: `{search_string}`", debug_level)
|
|
725
|
-
#
|
|
726
|
-
# return term_list_md
|
|
727
|
-
#
|
|
728
|
-
# md_table = egeria_client.find_glossary_terms(search_string, glossary_guid, output_format=output_format)
|
|
729
|
-
#
|
|
730
|
-
# print_msg("ALWAYS", f"Wrote Term list for search string `{search_string}`", debug_level)
|
|
731
|
-
# return md_table
|
|
732
|
-
#
|
|
733
|
-
# except Exception as e:
|
|
734
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
735
|
-
# console.print_exception(show_locals=True)
|
|
736
|
-
# return None
|
|
737
|
-
# else:
|
|
738
|
-
# return None
|
|
739
|
-
#
|
|
740
|
-
#
|
|
741
|
-
def process_category_list_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
742
|
-
pass
|
|
743
|
-
# """ List terms as a markdown table. Filter based on optional search string. """
|
|
744
|
-
# set_debug_level(directive)
|
|
745
|
-
# valid = True
|
|
746
|
-
# command = extract_command(txt)
|
|
747
|
-
# print(Markdown(f"# {command}\n"))
|
|
748
|
-
#
|
|
749
|
-
# search_string = process_simple_attribute(txt, SEARCH_LABELS, "INFO")
|
|
750
|
-
# if search_string is None:
|
|
751
|
-
# search_string = '*'
|
|
752
|
-
# print(Markdown(f"{pre_command} `{command}` with search string:`{search_string}` with directive: `{directive}`"))
|
|
753
|
-
#
|
|
754
|
-
# output_format = process_simple_attribute(txt, OUTPUT_LABELS, "INFO")
|
|
755
|
-
# if output_format is None:
|
|
756
|
-
# output_format = "LIST"
|
|
757
|
-
# elif output_format not in ELEMENT_OUTPUT_FORMATS:
|
|
758
|
-
# valid = False
|
|
759
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
760
|
-
#
|
|
761
|
-
# request_display = f"\n\t* Search String: {search_string}\n\t* Output Format: {output_format}\n"
|
|
762
|
-
#
|
|
763
|
-
# if directive == "display":
|
|
764
|
-
# print(Markdown(request_display))
|
|
765
|
-
# return None
|
|
766
|
-
# elif directive == "validate":
|
|
767
|
-
# print(Markdown(request_display))
|
|
768
|
-
# return valid
|
|
769
|
-
# elif directive == "process":
|
|
770
|
-
# try:
|
|
771
|
-
# print(Markdown(request_display))
|
|
772
|
-
# if not valid: # First validate the term before we process it
|
|
773
|
-
# return None
|
|
774
|
-
#
|
|
775
|
-
# cat_list_md = f"\n# Category List for search string: `{search_string}`\n\n"
|
|
776
|
-
# if output_format == "DICT":
|
|
777
|
-
# struct = egeria_client.find_glossary_categories(search_string, output_format=output_format)
|
|
778
|
-
# cat_list_md += f"```{json.dumps(struct, indent=4)}```\n"
|
|
779
|
-
# else:
|
|
780
|
-
# cat_list_md += egeria_client.find_glossary_categories(search_string, output_format=output_format)
|
|
781
|
-
# print_msg("ALWAYS", f"Wrote Category List for search string: `{search_string}`", debug_level)
|
|
782
|
-
#
|
|
783
|
-
# return cat_list_md
|
|
784
|
-
#
|
|
785
|
-
# except Exception as e:
|
|
786
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
787
|
-
# console.print_exception(show_locals=True)
|
|
788
|
-
# return None
|
|
789
|
-
# else:
|
|
790
|
-
#
|
|
791
|
-
# return None
|
|
792
|
-
#
|
|
793
|
-
#
|
|
794
|
-
def process_glossary_structure_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
795
|
-
pass
|
|
796
|
-
# """ List terms as a markdown table. Filter based on optional search string. """
|
|
797
|
-
# set_debug_level(directive)
|
|
798
|
-
# valid = True
|
|
799
|
-
# command = extract_command(txt)
|
|
800
|
-
# print(Markdown(f"# {command}\n"))
|
|
801
|
-
#
|
|
802
|
-
# known_glossary_guid = ""
|
|
803
|
-
#
|
|
804
|
-
# glossary_name = process_simple_attribute(txt, GLOSSARY_NAME_LABELS, "ERROR")
|
|
805
|
-
#
|
|
806
|
-
# _, known_glossary_guid, valid, _ = process_element_identifiers(egeria_client, "Glossary", GLOSSARY_NAME_LABELS, txt,
|
|
807
|
-
# EXISTS_REQUIRED, None)
|
|
808
|
-
#
|
|
809
|
-
# print(Markdown(f"{pre_command} `{command}` for glossary:`{glossary_name}` with directive: `{directive}`"))
|
|
810
|
-
#
|
|
811
|
-
# output_format = process_simple_attribute(txt, OUTPUT_LABELS, "INFO")
|
|
812
|
-
# if output_format is None:
|
|
813
|
-
# output_format = "MD"
|
|
814
|
-
# elif output_format not in ["DICT", "LIST", "MD"]:
|
|
815
|
-
# valid = False
|
|
816
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
817
|
-
#
|
|
818
|
-
# request_display = f"\n\t* Glossary name: {glossary_name}\n\t* Output Format: {output_format}\n"
|
|
819
|
-
#
|
|
820
|
-
# if directive == "display":
|
|
821
|
-
# print(Markdown(request_display))
|
|
822
|
-
# return None
|
|
823
|
-
# elif directive == "validate":
|
|
824
|
-
# print(Markdown(request_display))
|
|
825
|
-
# return str(valid)
|
|
826
|
-
# elif directive == "process":
|
|
827
|
-
# try:
|
|
828
|
-
# print(Markdown(request_display))
|
|
829
|
-
# if not valid: # First validate the term before we process it
|
|
830
|
-
# return None
|
|
831
|
-
#
|
|
832
|
-
# glossary_structure_md = f"\n# Glossary Structure for `{glossary_name}`\n\n"
|
|
833
|
-
# if output_format == "DICT":
|
|
834
|
-
# struct = egeria_client.get_glossary_category_structure(known_glossary_guid, output_format=output_format)
|
|
835
|
-
# glossary_structure_md += f"```{json.dumps(struct, indent=4)}```\n"
|
|
836
|
-
# else:
|
|
837
|
-
# glossary_structure_md += egeria_client.get_glossary_category_structure(known_glossary_guid,
|
|
838
|
-
# output_format=output_format)
|
|
839
|
-
# print_msg("ALWAYS", f"Wrote Glossary Structure for glossary: `{glossary_name}`", debug_level)
|
|
840
|
-
#
|
|
841
|
-
# return glossary_structure_md
|
|
842
|
-
#
|
|
843
|
-
# except Exception as e:
|
|
844
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
845
|
-
# console.print_exception(show_locals=True)
|
|
846
|
-
# return None
|
|
847
|
-
# else:
|
|
848
|
-
# return None
|
|
849
|
-
#
|
|
850
|
-
#
|
|
851
|
-
def process_glossary_list_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
852
|
-
pass
|
|
853
|
-
# """ List terms as a markdown table. Filter based on optional search string. """
|
|
854
|
-
# set_debug_level(directive)
|
|
855
|
-
# valid = True
|
|
856
|
-
# command = extract_command(txt)
|
|
857
|
-
# print(Markdown(f"# {command}\n"))
|
|
858
|
-
#
|
|
859
|
-
# search_string = process_simple_attribute(txt, SEARCH_LABELS, "INFO")
|
|
860
|
-
# if search_string is None:
|
|
861
|
-
# search_string = '*'
|
|
862
|
-
# print(Markdown(f"{pre_command} `{command}` with search string:`{search_string}` with directive: `{directive}`"))
|
|
863
|
-
# if search_string is None:
|
|
864
|
-
# search_string = '*'
|
|
865
|
-
#
|
|
866
|
-
# output_format = process_simple_attribute(txt, OUTPUT_LABELS, "INFO")
|
|
867
|
-
# if output_format is None:
|
|
868
|
-
# output_format = "LIST"
|
|
869
|
-
# elif output_format not in ELEMENT_OUTPUT_FORMATS:
|
|
870
|
-
# valid = False
|
|
871
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
872
|
-
#
|
|
873
|
-
# request_display = f"\n\t* Search String: {search_string}\n\t* Output Format: {output_format}\n"
|
|
874
|
-
#
|
|
875
|
-
# if directive == "display":
|
|
876
|
-
# print(request_display)
|
|
877
|
-
# return None
|
|
878
|
-
# elif directive == "validate":
|
|
879
|
-
# print(request_display)
|
|
880
|
-
# return valid
|
|
881
|
-
# elif directive == "process":
|
|
882
|
-
# try:
|
|
883
|
-
# print(request_display)
|
|
884
|
-
# if not valid: # First validate the term before we process it
|
|
885
|
-
# return None
|
|
886
|
-
#
|
|
887
|
-
# glossary_list_md = f"\n# Glossary List for `{search_string}`\n\n"
|
|
888
|
-
# if output_format == "DICT":
|
|
889
|
-
# struct = egeria_client.find_glossaries(search_string, output_format=output_format)
|
|
890
|
-
# glossary_list_md += f"```{json.dumps(struct, indent=4)}```\n"
|
|
891
|
-
# else:
|
|
892
|
-
# glossary_list_md += egeria_client.find_glossaries(search_string, output_format=output_format)
|
|
893
|
-
# print_msg("ALWAYS", f"Wrote Glossary List for search string: `{search_string}`", debug_level)
|
|
894
|
-
#
|
|
895
|
-
# return glossary_list_md
|
|
896
|
-
#
|
|
897
|
-
# except Exception as e:
|
|
898
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
899
|
-
# console.print_exception(show_locals=True)
|
|
900
|
-
# return None
|
|
901
|
-
# else:
|
|
902
|
-
# return None
|
|
903
|
-
#
|
|
904
|
-
#
|
|
905
|
-
def process_term_details_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
906
|
-
pass
|
|
907
|
-
# """ List terms as a markdown table. Filter based on optional search string. """
|
|
908
|
-
# set_debug_level(directive)
|
|
909
|
-
# valid = True
|
|
910
|
-
# command = extract_command(txt)
|
|
911
|
-
# print(Markdown(f"# {command}\n"))
|
|
912
|
-
# object_type = command.split(' ')[1].strip()
|
|
913
|
-
# object_action = command.split(' ')[0].strip()
|
|
914
|
-
#
|
|
915
|
-
# term_identifier = process_simple_attribute(txt, TERM_NAME_LABELS, "ERROR")
|
|
916
|
-
#
|
|
917
|
-
# print(Markdown(f"{pre_command} `{command}` for term:`{term_identifier}` with directive: `{directive}`"))
|
|
918
|
-
#
|
|
919
|
-
# output_format = process_simple_attribute(txt, OUTPUT_LABELS, "INFO")
|
|
920
|
-
# if output_format is None:
|
|
921
|
-
# output_format = "REPORT"
|
|
922
|
-
# else:
|
|
923
|
-
# output_format = output_format.upper()
|
|
924
|
-
#
|
|
925
|
-
# if output_format not in ["DICT", "REPORT"]:
|
|
926
|
-
# valid = False
|
|
927
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
928
|
-
#
|
|
929
|
-
# request_display = f"\n\t* Term Identifier: {term_identifier}\n\t* Output Format {output_format}"
|
|
930
|
-
#
|
|
931
|
-
# if directive == "display":
|
|
932
|
-
# print(request_display)
|
|
933
|
-
# return None
|
|
934
|
-
# elif directive == "validate":
|
|
935
|
-
# print(request_display)
|
|
936
|
-
# return valid
|
|
937
|
-
# elif directive == "process":
|
|
938
|
-
# try:
|
|
939
|
-
# print(request_display)
|
|
940
|
-
# if not valid: # First validate the term before we process it
|
|
941
|
-
# return None
|
|
942
|
-
# output = egeria_client.get_term_details(term_identifier, output_format=output_format)
|
|
943
|
-
# if output_format == "DICT":
|
|
944
|
-
# output = f"```{json.dumps(output, indent=4)}```"
|
|
945
|
-
# print_msg("ALWAYS", f"Wrote Term Details for term: `{term_identifier}`", debug_level)
|
|
946
|
-
#
|
|
947
|
-
# return output
|
|
948
|
-
#
|
|
949
|
-
# except Exception as e:
|
|
950
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
951
|
-
# console.print_exception(show_locals=True)
|
|
952
|
-
# return None
|
|
953
|
-
# else:
|
|
954
|
-
# return None
|
|
955
|
-
#
|
|
956
|
-
#
|
|
957
|
-
def process_term_history_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
958
|
-
pass
|
|
959
|
-
# """ List terms as a markdown table. Filter based on optional search string. """
|
|
960
|
-
# set_debug_level(directive)
|
|
961
|
-
# valid = True
|
|
962
|
-
# command = extract_command(txt)
|
|
963
|
-
# print(Markdown(f"# {command}\n"))
|
|
964
|
-
# object_type = command.split(' ')[1].strip()
|
|
965
|
-
# object_action = command.split(' ')[0].strip()
|
|
966
|
-
#
|
|
967
|
-
# element_labels = TERM_NAME_LABELS
|
|
968
|
-
# element_labels.append('Display Name')
|
|
969
|
-
#
|
|
970
|
-
# term_name = process_simple_attribute(txt, element_labels, "ERROR")
|
|
971
|
-
#
|
|
972
|
-
# known_q_name, known_guid, valid, term_exists = process_element_identifiers(egeria_client, object_type,
|
|
973
|
-
# element_labels, txt, object_action, )
|
|
974
|
-
#
|
|
975
|
-
# print(Markdown(f"{pre_command} `{command}` for term:`{term_name}` with directive: `{directive}`"))
|
|
976
|
-
#
|
|
977
|
-
# output_format = process_simple_attribute(txt, OUTPUT_LABELS, "INFO")
|
|
978
|
-
# if output_format is None:
|
|
979
|
-
# output_format = "LIST"
|
|
980
|
-
# elif output_format not in ["DICT", "LIST"]:
|
|
981
|
-
# valid = False
|
|
982
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
983
|
-
#
|
|
984
|
-
# request_display = f"\n\t* Term Name: {term_name}\n\t* Output Format {output_format}\n\t* GUID: {known_guid}\n"
|
|
985
|
-
#
|
|
986
|
-
# if directive == "display":
|
|
987
|
-
# print(request_display)
|
|
988
|
-
# return None
|
|
989
|
-
# elif directive == "validate":
|
|
990
|
-
# print(request_display)
|
|
991
|
-
# return valid
|
|
992
|
-
# elif directive == "process":
|
|
993
|
-
# try:
|
|
994
|
-
# print(request_display)
|
|
995
|
-
# if not valid: # First validate the term before we process it
|
|
996
|
-
# return None
|
|
997
|
-
# term_history_md = f"\n# Term History for `{term_name}`\n\n"
|
|
998
|
-
# if output_format == "DICT":
|
|
999
|
-
# struct = egeria_client.list_term_revision_history(known_guid, output_format=output_format)
|
|
1000
|
-
# term_history_md += f"```{json.dumps(struct, indent=4)}```\n"
|
|
1001
|
-
# else:
|
|
1002
|
-
# term_history_md += egeria_client.list_full_term_history(known_guid, output_format)
|
|
1003
|
-
# print_msg("ALWAYS", f"Wrote Term History for term `{term_name}`", debug_level)
|
|
1004
|
-
#
|
|
1005
|
-
# return term_history_md
|
|
1006
|
-
#
|
|
1007
|
-
# except Exception as e:
|
|
1008
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
1009
|
-
# console.print_exception(show_locals=True)
|
|
1010
|
-
# return None
|
|
1011
|
-
# else:
|
|
1012
|
-
# return None
|
|
1013
|
-
#
|
|
1014
|
-
#
|
|
1015
|
-
def process_term_revision_history_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
|
1016
|
-
pass
|
|
1017
|
-
# """ List term revision history as a markdown table or list."""
|
|
1018
|
-
# set_debug_level(directive)
|
|
1019
|
-
# valid = True
|
|
1020
|
-
# command = extract_command(txt)
|
|
1021
|
-
# print(Markdown(f"# {command}\n"))
|
|
1022
|
-
# object_type = command.split(' ')[1].strip()
|
|
1023
|
-
# object_action = command.split(' ')[0].strip()
|
|
1024
|
-
# known_q_name = None
|
|
1025
|
-
# known_guid = None
|
|
1026
|
-
#
|
|
1027
|
-
# element_labels = TERM_NAME_LABELS
|
|
1028
|
-
#
|
|
1029
|
-
# term_name = process_simple_attribute(txt, element_labels, "ERROR")
|
|
1030
|
-
# print(Markdown(f"{pre_command} `{command}` for term: `{term_name}` with directive: `{directive}` "))
|
|
1031
|
-
#
|
|
1032
|
-
# known_q_name, known_guid, valid, _ = process_element_identifiers(egeria_client, object_type, element_labels, txt,
|
|
1033
|
-
# object_action, )
|
|
1034
|
-
# output_format = process_simple_attribute(txt, ['Output Format', 'Format'], 'INFO')
|
|
1035
|
-
# if output_format is None:
|
|
1036
|
-
# output_format = "LIST"
|
|
1037
|
-
# elif output_format not in ["DICT", "LIST", "MD"]:
|
|
1038
|
-
# valid = False
|
|
1039
|
-
# print_msg(ERROR, f"Invalid output format: `{output_format}`", debug_level)
|
|
1040
|
-
#
|
|
1041
|
-
# request_display = f"\n\t* Term Name: {term_name}\n\t* Output Format: {output_format}\n"
|
|
1042
|
-
#
|
|
1043
|
-
# if directive == "display":
|
|
1044
|
-
# print(request_display)
|
|
1045
|
-
# return None
|
|
1046
|
-
# elif directive == "validate":
|
|
1047
|
-
# print(request_display)
|
|
1048
|
-
# return str(valid)
|
|
1049
|
-
# elif directive == "process":
|
|
1050
|
-
# try:
|
|
1051
|
-
# print(request_display)
|
|
1052
|
-
# if not valid: # First validate the term before we process it
|
|
1053
|
-
# return None
|
|
1054
|
-
# term_history_md = f"\n# Term Revision History for `{term_name}`\n\n"
|
|
1055
|
-
# if output_format == "DICT":
|
|
1056
|
-
# struct = egeria_client.list_term_revision_history(known_guid, output_format)
|
|
1057
|
-
# term_history_md += f"```{json.dumps(struct, indent=4)}```\n"
|
|
1058
|
-
# else:
|
|
1059
|
-
# term_history_md += egeria_client.list_term_revision_history(known_guid, output_format)
|
|
1060
|
-
# print_msg("ALWAYS", f"Wrote Term Revision History for term `{term_name}`", debug_level)
|
|
1061
|
-
# return term_history_md
|
|
1062
|
-
#
|
|
1063
|
-
# except Exception as e:
|
|
1064
|
-
# print(f"{ERROR}Error performing {command}: {e}")
|
|
1065
|
-
# console.print_exception(show_locals=True)
|
|
1066
|
-
# return None
|
|
1067
|
-
# else:
|
|
1068
|
-
# return None
|