pyegeria 5.3.9.4__py3-none-any.whl → 5.3.9.6__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.
- {pyegeria/commands → commands}/cat/Dr-Egeria_md-orig.py +10 -11
- {pyegeria/commands → commands}/cat/dr_egeria_jupyter.py +4 -4
- {pyegeria/commands → commands}/cat/dr_egeria_md.py +36 -16
- {pyegeria/commands → commands}/cat/list_categories.py +3 -3
- {pyegeria/commands → commands}/cat/list_collections.py +59 -16
- commands/cat/list_data_structures.py +223 -0
- {pyegeria/commands → commands}/cat/list_glossaries.py +3 -3
- {pyegeria/commands → commands}/cat/list_terms.py +4 -4
- {pyegeria/commands → commands}/cli/__init__.py +1 -1
- {pyegeria/commands → commands}/cli/egeria.py +91 -87
- {pyegeria/commands → commands}/cli/egeria_cat.py +29 -29
- {pyegeria/commands → commands}/cli/egeria_login_tui.py +1 -1
- {pyegeria/commands → commands}/cli/egeria_my.py +8 -8
- {pyegeria/commands → commands}/cli/egeria_ops.py +24 -24
- {pyegeria/commands → commands}/cli/egeria_tech.py +34 -34
- commands/tech/generic_actions.py +74 -0
- {pyegeria/commands → commands}/tech/list_information_supply_chains.py +3 -1
- pyegeria/__init__.py +10 -9
- pyegeria/_client.py +2 -49
- pyegeria/collection_manager_omvs.py +484 -735
- pyegeria/data_designer_omvs.py +371 -128
- pyegeria/egeria_client.py +5 -0
- pyegeria/egeria_tech_client.py +10 -1
- pyegeria/glossary_browser_omvs.py +144 -260
- pyegeria/md_processing_helpers.py +1 -1
- pyegeria/md_processing_utils.py +114 -32
- pyegeria/md_processing_utils_orig.py +19 -19
- pyegeria/mermaid_utilities.py +3 -3
- pyegeria/output_formatter.py +389 -0
- {pyegeria-5.3.9.4.dist-info → pyegeria-5.3.9.6.dist-info}/METADATA +1 -1
- pyegeria-5.3.9.6.dist-info/RECORD +141 -0
- pyegeria-5.3.9.6.dist-info/entry_points.txt +99 -0
- pyegeria/commands/README.md +0 -47
- pyegeria/commands/__init__.py +0 -30
- pyegeria/commands/cat/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
- pyegeria/commands/doc/README.md +0 -145
- pyegeria/commands/doc/Visual Command Reference/README.md +0 -511
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_elements_of_om_type 2024-12-16 at 14.39.59@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type 2024-12-16 at 14.24.18@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type extended 2024-12-16 at 14.28.46@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_of_om_type_by_classification 2024-12-16 at 14.35.26@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/detailed_governance_action_processes 2024-12-16 at 15.16.26@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_tech_type_template_specs 2024-12-16 at 16.03.22@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
- pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
- pyegeria/commands/doc/glossary/basic-glossary-tui.md +0 -109
- pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
- pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
- pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
- pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
- pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
- pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
- pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
- pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
- pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
- pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
- pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
- pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
- pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
- pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -346
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-list 2024-11-12 at 16.45.26.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-live 2024-11-12 at 16.44.12@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status 2024-11-10 at 18.15.42@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status-full 2024-11-10 at 18.25.14@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-load-archive 2024-11-10 at 19.19.09@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status 2024-11-10 at 18.52.01@2x.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
- pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-status-paging 2024-11-12 at 16.26.14@2x.png +0 -0
- pyegeria/dr_egeria_state.py +0 -67
- pyegeria/md_processing/__init__.py +0 -51
- pyegeria/md_processing/commands/__init__.py +0 -3
- pyegeria/md_processing/commands/blueprint_commands.py +0 -307
- pyegeria/md_processing/commands/category_commands.py +0 -242
- pyegeria/md_processing/commands/glossary_commands.py +0 -225
- pyegeria/md_processing/commands/project_commands.py +0 -169
- pyegeria/md_processing/commands/term_commands.py +0 -524
- pyegeria/md_processing/utils/__init__.py +0 -3
- pyegeria/md_processing/utils/common_utils.py +0 -101
- pyegeria/md_processing/utils/display_utils.py +0 -53
- pyegeria/md_processing/utils/extraction_utils.py +0 -177
- pyegeria/md_processing/utils/validation_utils.py +0 -208
- pyegeria-5.3.9.4.dist-info/RECORD +0 -265
- pyegeria-5.3.9.4.dist-info/entry_points.txt +0 -98
- {pyegeria/commands → commands}/cat/README.md +0 -0
- {pyegeria/commands → commands}/cat/__init__.py +0 -0
- {pyegeria/commands → commands}/cat/exp_list_glossaries.py +0 -0
- {pyegeria/commands → commands}/cat/get_asset_graph.py +0 -0
- {pyegeria/commands → commands}/cat/get_collection.py +0 -0
- {pyegeria/commands → commands}/cat/get_project_dependencies.py +0 -0
- {pyegeria/commands → commands}/cat/get_project_structure.py +0 -0
- {pyegeria/commands → commands}/cat/get_tech_type_elements.py +0 -0
- {pyegeria/commands → commands}/cat/glossary_actions.py +0 -0
- {pyegeria/commands → commands}/cat/list_assets.py +0 -0
- {pyegeria/commands → commands}/cat/list_cert_types.py +0 -0
- {pyegeria/commands → commands}/cat/list_deployed_catalogs.py +0 -0
- {pyegeria/commands → commands}/cat/list_deployed_database_schemas.py +0 -0
- {pyegeria/commands → commands}/cat/list_deployed_databases.py +0 -0
- {pyegeria/commands → commands}/cat/list_deployed_servers.py +0 -0
- {pyegeria/commands → commands}/cat/list_projects.py +0 -0
- {pyegeria/commands → commands}/cat/list_tech_type_elements.py +0 -0
- {pyegeria/commands → commands}/cat/list_tech_types.py +0 -0
- {pyegeria/commands → commands}/cat/list_todos.py +0 -0
- {pyegeria/commands → commands}/cat/list_user_ids.py +0 -0
- {pyegeria/commands → commands}/cli/ops_config.py +0 -0
- {pyegeria/commands → commands}/cli/txt_custom_v2.tcss +0 -0
- {pyegeria/commands → commands}/my/README.md +0 -0
- {pyegeria/commands → commands}/my/__init__.py +0 -0
- {pyegeria/commands → commands}/my/list_my_profile.py +0 -0
- {pyegeria/commands → commands}/my/list_my_roles.py +0 -0
- {pyegeria/commands → commands}/my/monitor_my_todos.py +0 -0
- {pyegeria/commands → commands}/my/monitor_open_todos.py +0 -0
- {pyegeria/commands → commands}/my/todo_actions.py +0 -0
- {pyegeria/commands → commands}/ops/README.md +0 -0
- {pyegeria/commands → commands}/ops/__init__.py +0 -0
- {pyegeria/commands → commands}/ops/gov_server_actions.py +0 -0
- {pyegeria/commands → commands}/ops/list_archives.py +0 -0
- {pyegeria/commands → commands}/ops/list_catalog_targets.py +0 -0
- {pyegeria/commands → commands}/ops/load_archive.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_asset_events.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_engine_activity.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_engine_activity_c.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_gov_eng_status.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_integ_daemon_status.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_platform_status.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_server_startup.py +0 -0
- {pyegeria/commands → commands}/ops/monitor_server_status.py +0 -0
- {pyegeria/commands → commands}/ops/orig_monitor_server_list.py +0 -0
- {pyegeria/commands → commands}/ops/orig_monitor_server_status.py +0 -0
- {pyegeria/commands → commands}/ops/refresh_integration_daemon.py +0 -0
- {pyegeria/commands → commands}/ops/restart_integration_daemon.py +0 -0
- {pyegeria/commands → commands}/ops/table_integ_daemon_status.py +0 -0
- {pyegeria/commands → commands}/ops/x_engine_actions.py +0 -0
- {pyegeria/commands → commands}/tech/README.md +0 -0
- {pyegeria/commands → commands}/tech/__init__.py +0 -0
- {pyegeria/commands → commands}/tech/get_element_info.py +0 -0
- {pyegeria/commands → commands}/tech/get_guid_info.py +0 -0
- {pyegeria/commands → commands}/tech/get_tech_details.py +0 -0
- {pyegeria/commands → commands}/tech/get_tech_type_template.py +0 -0
- {pyegeria/commands → commands}/tech/list_all_om_type_elements.py +0 -0
- {pyegeria/commands → commands}/tech/list_all_om_type_elements_x.py +0 -0
- {pyegeria/commands → commands}/tech/list_all_related_elements.py +0 -0
- {pyegeria/commands → commands}/tech/list_anchored_elements.py +0 -0
- {pyegeria/commands → commands}/tech/list_asset_types.py +0 -0
- {pyegeria/commands → commands}/tech/list_elements_by_classification_by_property_value.py +0 -0
- {pyegeria/commands → commands}/tech/list_elements_by_property_value.py +0 -0
- {pyegeria/commands → commands}/tech/list_elements_by_property_value_x.py +0 -0
- {pyegeria/commands → commands}/tech/list_elements_for_classification.py +0 -0
- {pyegeria/commands → commands}/tech/list_gov_action_processes.py +0 -0
- {pyegeria/commands → commands}/tech/list_registered_services.py +0 -0
- {pyegeria/commands → commands}/tech/list_related_elements_with_prop_value.py +0 -0
- {pyegeria/commands → commands}/tech/list_related_specification.py +0 -0
- {pyegeria/commands → commands}/tech/list_relationship_types.py +0 -0
- {pyegeria/commands → commands}/tech/list_relationships.py +0 -0
- {pyegeria/commands → commands}/tech/list_solution_blueprints.py +0 -0
- {pyegeria/commands → commands}/tech/list_solution_components.py +0 -0
- {pyegeria/commands → commands}/tech/list_solution_roles.py +0 -0
- {pyegeria/commands → commands}/tech/list_tech_templates.py +0 -0
- {pyegeria/commands → commands}/tech/list_valid_metadata_values.py +0 -0
- {pyegeria/commands → commands}/tech/table_tech_templates.py +0 -0
- {pyegeria/commands → commands}/tech/x_list_related_elements.py +0 -0
- {pyegeria-5.3.9.4.dist-info → pyegeria-5.3.9.6.dist-info}/LICENSE +0 -0
- {pyegeria-5.3.9.4.dist-info → pyegeria-5.3.9.6.dist-info}/WHEEL +0 -0
@@ -5,17 +5,16 @@ import json
|
|
5
5
|
import os
|
6
6
|
from rich import print
|
7
7
|
from rich.console import Console
|
8
|
-
from rich.markdown import Markdown
|
9
8
|
|
10
|
-
from pyegeria.md_processing_utils import (
|
11
|
-
get_current_datetime_string, process_per_proj_upsert_command, commands,
|
9
|
+
from pyegeria.md_processing_utils import (commands,
|
12
10
|
process_provenance_command)
|
13
11
|
|
14
12
|
import click
|
15
13
|
from pyegeria import (extract_command, process_glossary_upsert_command, process_term_upsert_command,
|
16
14
|
process_category_upsert_command,
|
17
|
-
get_current_datetime_string, process_per_proj_upsert_command,
|
15
|
+
get_current_datetime_string, process_per_proj_upsert_command, EgeriaTech
|
18
16
|
)
|
17
|
+
import commands
|
19
18
|
from datetime import datetime
|
20
19
|
|
21
20
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
@@ -37,9 +36,9 @@ EGERIA_WIDTH = os.environ.get("EGERIA_WIDTH", 220)
|
|
37
36
|
EGERIA_JUPYTER = os.environ.get("EGERIA_JUPYTER", False)
|
38
37
|
EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
|
39
38
|
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
40
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "
|
41
|
-
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "
|
42
|
-
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "
|
39
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
40
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
41
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
43
42
|
|
44
43
|
console = Console(width=int(EGERIA_WIDTH))
|
45
44
|
|
@@ -108,10 +107,10 @@ def process_markdown_file(
|
|
108
107
|
prov_found = False
|
109
108
|
# Process each identified H1 block
|
110
109
|
for block in h1_blocks:
|
111
|
-
potential_command = extract_command(block) # Extract potential
|
110
|
+
potential_command = extract_command(block) # Extract potential object_action
|
112
111
|
|
113
112
|
if potential_command in commands:
|
114
|
-
# Process the block based on the
|
113
|
+
# Process the block based on the object_action
|
115
114
|
if potential_command == "Provenance":
|
116
115
|
prov_found = True
|
117
116
|
result = process_provenance_command(file_path, block)
|
@@ -124,7 +123,7 @@ def process_markdown_file(
|
|
124
123
|
elif potential_command in ["Create Personal Project", "Update Personal Project"]:
|
125
124
|
result = process_per_proj_upsert_command(client, block, directive)
|
126
125
|
else:
|
127
|
-
# If
|
126
|
+
# If object_action is not recognized, copy the block as-is
|
128
127
|
result = None
|
129
128
|
|
130
129
|
if result:
|
@@ -138,7 +137,7 @@ def process_markdown_file(
|
|
138
137
|
f"\tPlease correct and try again. \n")
|
139
138
|
final_output += f"\n---\n{block}\n"
|
140
139
|
else:
|
141
|
-
# If no
|
140
|
+
# If no object_action is detected, add the block to the final output as-is
|
142
141
|
final_output += f"\n---\n{block}\n"
|
143
142
|
|
144
143
|
|
@@ -36,9 +36,9 @@ EGERIA_WIDTH = os.environ.get("EGERIA_WIDTH", 220)
|
|
36
36
|
EGERIA_JUPYTER = os.environ.get("EGERIA_JUPYTER", False)
|
37
37
|
EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
|
38
38
|
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
39
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "
|
40
|
-
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "
|
41
|
-
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "
|
39
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
40
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
41
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
42
42
|
|
43
43
|
console = Console(width=int(EGERIA_WIDTH))
|
44
44
|
|
@@ -86,7 +86,7 @@ def process_jupyter_notebook(
|
|
86
86
|
elif potential_command in ["Create Personal Project", "Update Personal Project"]:
|
87
87
|
result = process_per_proj_upsert_command(client, cell.source, directive)
|
88
88
|
else:
|
89
|
-
# If
|
89
|
+
# If object_action is not recognized, copy the block as-is
|
90
90
|
result = None
|
91
91
|
|
92
92
|
if result:
|
@@ -8,14 +8,21 @@ import click
|
|
8
8
|
from rich import print
|
9
9
|
from rich.console import Console
|
10
10
|
|
11
|
-
from
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
11
|
+
from md_processing import (extract_command, process_glossary_upsert_command, process_term_upsert_command,
|
12
|
+
process_category_upsert_command, process_provenance_command, get_current_datetime_string,
|
13
|
+
process_per_proj_upsert_command, command_list, process_blueprint_upsert_command,
|
14
|
+
process_solution_component_upsert_command, process_term_list_command,
|
15
|
+
process_category_list_command, process_glossary_list_command, process_term_history_command,
|
16
|
+
process_glossary_structure_command, process_term_revision_history_command,
|
17
|
+
process_create_term_term_relationship_command, process_term_details_command,
|
18
|
+
)
|
19
|
+
from md_processing.md_commands.data_designer_commands import (process_data_spec_upsert_command,
|
20
|
+
process_data_dict_upsert_command,
|
21
|
+
process_data_dict_list_command,
|
22
|
+
process_data_field_upsert_command,
|
23
|
+
process_data_structure_upsert_command)
|
24
|
+
|
25
|
+
from pyegeria import EgeriaTech
|
19
26
|
|
20
27
|
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
21
28
|
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
@@ -32,9 +39,9 @@ EGERIA_WIDTH = os.environ.get("EGERIA_WIDTH", 220)
|
|
32
39
|
EGERIA_JUPYTER = os.environ.get("EGERIA_JUPYTER", False)
|
33
40
|
EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
|
34
41
|
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
35
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "
|
36
|
-
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "
|
37
|
-
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "
|
42
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
43
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
44
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
38
45
|
|
39
46
|
|
40
47
|
@click.command("process_markdown_file", help="Process a markdown file and return the output as a string.")
|
@@ -48,7 +55,7 @@ EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "pyegeria/commands/cat
|
|
48
55
|
@click.option("--user_pass", default=EGERIA_USER_PASSWORD, help="Egeria user password")
|
49
56
|
def process_markdown_file(file_path: str, directive: str, server: str, url: str, userid: str, user_pass: str, ) -> None:
|
50
57
|
"""
|
51
|
-
Process a markdown file by parsing and executing Dr. Egeria
|
58
|
+
Process a markdown file by parsing and executing Dr. Egeria md_commands. Write output to a new file.
|
52
59
|
"""
|
53
60
|
cmd_list = command_list
|
54
61
|
console = Console(width=int(EGERIA_WIDTH))
|
@@ -80,9 +87,9 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
|
|
80
87
|
if not current_block:
|
81
88
|
return # No block to process
|
82
89
|
|
83
|
-
potential_command = extract_command(current_block) # Extract
|
90
|
+
potential_command = extract_command(current_block) # Extract object_action
|
84
91
|
if potential_command in cmd_list:
|
85
|
-
# Process the block based on the
|
92
|
+
# Process the block based on the object_action
|
86
93
|
if potential_command == "Provenance":
|
87
94
|
result = process_provenance_command(file_path, current_block)
|
88
95
|
prov_found = True
|
@@ -116,10 +123,22 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
|
|
116
123
|
result = process_blueprint_upsert_command(client, current_block, directive)
|
117
124
|
elif potential_command in ["Create Solution Component", "Update Solution Component"]:
|
118
125
|
result = process_solution_component_upsert_command(client, current_block, directive)
|
126
|
+
elif potential_command in ["Create Data Spec", "Create Data Specification", "Update Data Spec",
|
127
|
+
"Update Data Specification"]:
|
128
|
+
result = process_data_spec_upsert_command(client, current_block, directive)
|
129
|
+
elif potential_command in ["Create Data Dict", "Create Data Dictionary", "Update Data Spec",
|
130
|
+
"Update Data Dictionary"]:
|
131
|
+
result = process_data_dict_upsert_command(client, current_block, directive)
|
132
|
+
elif potential_command in ["Create Data Field", "Update Data Field"]:
|
133
|
+
result = process_data_field_upsert_command(client, current_block, directive)
|
134
|
+
elif potential_command in ["Create Data Structure", "Update Data Structure"]:
|
135
|
+
result = process_data_structure_upsert_command(client, current_block, directive)
|
136
|
+
elif potential_command in ["View Data Dictionaries", "View Data Dictionary"]:
|
137
|
+
result = process_data_dict_list_command(client, current_block, directive)
|
119
138
|
|
120
139
|
|
121
140
|
else:
|
122
|
-
# If
|
141
|
+
# If object_action is not recognized, keep the block as-is
|
123
142
|
result = None
|
124
143
|
# print(json.dumps(dr_egeria_state.get_element_dictionary(), indent=4))
|
125
144
|
if result:
|
@@ -135,7 +154,7 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
|
|
135
154
|
final_output.append(current_block)
|
136
155
|
final_output.append('\n___\n')
|
137
156
|
else:
|
138
|
-
# If there is no
|
157
|
+
# If there is no object_action, append the block as-is
|
139
158
|
final_output.append(current_block)
|
140
159
|
|
141
160
|
# Main parsing loop
|
@@ -223,5 +242,6 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
|
|
223
242
|
#
|
224
243
|
# if __name__ == "__main__":
|
225
244
|
# main()
|
245
|
+
|
226
246
|
if __name__ == "__main__":
|
227
247
|
process_markdown_file()
|
@@ -44,9 +44,9 @@ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
44
44
|
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
45
45
|
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
|
46
46
|
EGERIA_category_PATH = os.environ.get("EGERIA_category_PATH", None)
|
47
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "
|
48
|
-
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "
|
49
|
-
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "
|
47
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
48
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
49
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
50
50
|
|
51
51
|
|
52
52
|
|
@@ -6,11 +6,13 @@ Copyright Contributors to the ODPi Egeria project.
|
|
6
6
|
A simple display for collections
|
7
7
|
"""
|
8
8
|
import argparse
|
9
|
+
import json
|
9
10
|
import os
|
10
11
|
import time
|
11
12
|
|
12
13
|
from rich import box
|
13
14
|
from rich.console import Console
|
15
|
+
from rich.markdown import Markdown
|
14
16
|
from rich.prompt import Prompt
|
15
17
|
from rich.table import Table
|
16
18
|
from rich.text import Text
|
@@ -20,8 +22,8 @@ from pyegeria import (
|
|
20
22
|
InvalidParameterException,
|
21
23
|
PropertyServerException,
|
22
24
|
UserNotAuthorizedException,
|
23
|
-
print_exception_response,
|
24
|
-
)
|
25
|
+
print_exception_response, NO_ELEMENTS_FOUND,
|
26
|
+
)
|
25
27
|
|
26
28
|
disable_ssl_warnings = True
|
27
29
|
|
@@ -39,6 +41,10 @@ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
|
39
41
|
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
40
42
|
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
41
43
|
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
44
|
+
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
45
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
46
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
47
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
42
48
|
|
43
49
|
|
44
50
|
def display_collections(
|
@@ -49,6 +55,7 @@ def display_collections(
|
|
49
55
|
user_pass: str = EGERIA_USER_PASSWORD,
|
50
56
|
jupyter: bool = EGERIA_JUPYTER,
|
51
57
|
width: int = EGERIA_WIDTH,
|
58
|
+
output_format: str = "TABLE"
|
52
59
|
):
|
53
60
|
"""Display either a specified glossary or all collections if the search_string is '*'.
|
54
61
|
Parameters
|
@@ -67,10 +74,40 @@ def display_collections(
|
|
67
74
|
A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
|
68
75
|
width : int, optional
|
69
76
|
The width of the console output (default is EGERIA_WIDTH).
|
77
|
+
output_format : str, optional
|
78
|
+
Format of the output. Default is TABLE.
|
70
79
|
"""
|
71
80
|
m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
72
|
-
|
81
|
+
m_client.create_egeria_bearer_token()
|
73
82
|
try:
|
83
|
+
|
84
|
+
if output_format == "FORM":
|
85
|
+
action = "Update-Form"
|
86
|
+
elif output_format == "REPORT":
|
87
|
+
action = "Report"
|
88
|
+
elif output_format == "DICT":
|
89
|
+
action = "Dict"
|
90
|
+
|
91
|
+
if output_format != "TABLE":
|
92
|
+
file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH)
|
93
|
+
file_name = f"Terms-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
|
94
|
+
full_file_path = os.path.join(file_path, file_name)
|
95
|
+
os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
|
96
|
+
output = m_client.find_collections(
|
97
|
+
search_string.strip(), None, False, ends_with=False, ignore_case=True,
|
98
|
+
output_format=output_format
|
99
|
+
)
|
100
|
+
if output == NO_ELEMENTS_FOUND:
|
101
|
+
print(f"\n==> No collections found for search string '{search_string}'")
|
102
|
+
return
|
103
|
+
elif isinstance(output, str | list) and output_format == "DICT":
|
104
|
+
output = json.dumps(output, indent=4)
|
105
|
+
|
106
|
+
with open(full_file_path, 'w') as f:
|
107
|
+
f.write(output)
|
108
|
+
print(f"\n==> Collections output written to {full_file_path}")
|
109
|
+
return
|
110
|
+
|
74
111
|
table = Table(
|
75
112
|
title=f"Collection List @ {time.asctime()}",
|
76
113
|
style="bright_white on black",
|
@@ -86,33 +123,38 @@ def display_collections(
|
|
86
123
|
table.add_column(
|
87
124
|
"Qualified Name & GUID", width=38, no_wrap=True, justify="center"
|
88
125
|
)
|
89
|
-
table.add_column("Home Metadata Collection")
|
90
126
|
table.add_column("Description")
|
91
127
|
table.add_column("Collection Type")
|
128
|
+
table.add_column("Classifications")
|
129
|
+
table.add_column("Members")
|
92
130
|
|
93
131
|
collections = m_client.find_collections(
|
94
|
-
search_string.strip(), None, False, ends_with=False, ignore_case=True
|
132
|
+
search_string.strip(), None, False, ends_with=False, ignore_case=True,
|
133
|
+
output_format = "DICT"
|
95
134
|
)
|
96
135
|
if type(collections) is list:
|
97
136
|
sorted_collection_list = sorted(
|
98
|
-
collections, key=lambda k: k["
|
137
|
+
collections, key=lambda k: k["name"]
|
99
138
|
)
|
100
139
|
for collection in sorted_collection_list:
|
101
|
-
display_name = collection["
|
102
|
-
qualified_name = collection["
|
103
|
-
|
104
|
-
"homeMetadataCollectionName"
|
105
|
-
]
|
106
|
-
guid = collection["elementHeader"]["guid"]
|
140
|
+
display_name = collection["name"]
|
141
|
+
qualified_name = collection["qualifiedName"]
|
142
|
+
guid = collection["guid"]
|
107
143
|
q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
|
108
|
-
description = collection
|
109
|
-
collection_type = collection
|
144
|
+
description = collection.get("description",'---')
|
145
|
+
collection_type = collection.get("collectionType", "---")
|
146
|
+
classifications = collection.get("classifications", "---")
|
147
|
+
classifications_md = Markdown(classifications)
|
148
|
+
members = "\n* ".join(collection.get("members", []))
|
149
|
+
members_md = Markdown(members)
|
150
|
+
|
110
151
|
table.add_row(
|
111
152
|
display_name,
|
112
153
|
q_name,
|
113
|
-
home_metadata_collection,
|
114
154
|
description,
|
115
155
|
collection_type,
|
156
|
+
classifications_md,
|
157
|
+
members_md,
|
116
158
|
)
|
117
159
|
console = Console(
|
118
160
|
style="bold bright_white on black",
|
@@ -151,8 +193,9 @@ def main():
|
|
151
193
|
search_string = Prompt.ask(
|
152
194
|
"Enter the collection you are searching for or '*' for all:", default="*"
|
153
195
|
).strip()
|
196
|
+
output_format = Prompt.ask("What output format do you want?", choices=["DICT", "TABLE", "FORM", "REPORT"], default="TABLE")
|
154
197
|
|
155
|
-
display_collections(search_string, server, url, userid, user_pass)
|
198
|
+
display_collections(search_string, server, url, userid, user_pass, output_format = output_format)
|
156
199
|
|
157
200
|
except KeyboardInterrupt:
|
158
201
|
pass
|
@@ -0,0 +1,223 @@
|
|
1
|
+
#!/usr/bin/env python3
|
2
|
+
"""
|
3
|
+
SPDX-License-Identifier: Apache-2.0
|
4
|
+
Copyright Contributors to the ODPi Egeria project.
|
5
|
+
|
6
|
+
A simple display for Data Structures
|
7
|
+
"""
|
8
|
+
import argparse
|
9
|
+
import json
|
10
|
+
import os
|
11
|
+
import time
|
12
|
+
|
13
|
+
from rich import box
|
14
|
+
from rich.console import Console
|
15
|
+
from rich.markdown import Markdown
|
16
|
+
from rich.prompt import Prompt
|
17
|
+
from rich.table import Table
|
18
|
+
from rich.text import Text
|
19
|
+
|
20
|
+
from pyegeria import (
|
21
|
+
EgeriaTech,
|
22
|
+
InvalidParameterException,
|
23
|
+
PropertyServerException,
|
24
|
+
UserNotAuthorizedException,
|
25
|
+
print_exception_response, NO_ELEMENTS_FOUND,
|
26
|
+
)
|
27
|
+
|
28
|
+
disable_ssl_warnings = True
|
29
|
+
|
30
|
+
EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
|
31
|
+
EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
|
32
|
+
EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
|
33
|
+
EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
|
34
|
+
EGERIA_VIEW_SERVER_URL = os.environ.get(
|
35
|
+
"EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
|
36
|
+
)
|
37
|
+
EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
|
38
|
+
EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
|
39
|
+
EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
|
40
|
+
EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
|
41
|
+
EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
42
|
+
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
43
|
+
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
44
|
+
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
45
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
46
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
47
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
48
|
+
|
49
|
+
|
50
|
+
def display_data_struct(
|
51
|
+
search_string: str = "*",
|
52
|
+
view_server: str = EGERIA_VIEW_SERVER,
|
53
|
+
view_url: str = EGERIA_VIEW_SERVER_URL,
|
54
|
+
user: str = EGERIA_USER,
|
55
|
+
user_pass: str = EGERIA_USER_PASSWORD,
|
56
|
+
jupyter: bool = EGERIA_JUPYTER,
|
57
|
+
width: int = EGERIA_WIDTH,
|
58
|
+
output_format: str = "TABLE"
|
59
|
+
):
|
60
|
+
"""Display data structures filtered by search_string. If search_string is not specified, all data structures are displayed.
|
61
|
+
Parameters
|
62
|
+
----------
|
63
|
+
search_string : str, default is '*'
|
64
|
+
The string used to search for structures.
|
65
|
+
view_server : str
|
66
|
+
The view server name or address where the Egeria services are hosted.
|
67
|
+
view_url : str
|
68
|
+
The URL of the platform the view server is on.
|
69
|
+
user : str
|
70
|
+
The user ID for authentication with the Egeria server.
|
71
|
+
user_pass : str
|
72
|
+
The password for authentication with the Egeria server.
|
73
|
+
jupyter : bool, optional
|
74
|
+
A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
|
75
|
+
width : int, optional
|
76
|
+
The width of the console output (default is EGERIA_WIDTH).
|
77
|
+
output_format : str, optional
|
78
|
+
Format of the output. Default is TABLE.
|
79
|
+
"""
|
80
|
+
m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
|
81
|
+
m_client.create_egeria_bearer_token()
|
82
|
+
try:
|
83
|
+
|
84
|
+
if output_format == "FORM":
|
85
|
+
action = "Update-Form"
|
86
|
+
elif output_format == "REPORT":
|
87
|
+
action = "Report"
|
88
|
+
elif output_format == "DICT":
|
89
|
+
action = "Dict"
|
90
|
+
elif output_format == "MERMAID":
|
91
|
+
action = "Mermaid"
|
92
|
+
filter = search_string.strip() if search_string != "*" else None
|
93
|
+
|
94
|
+
body = {
|
95
|
+
"class": "FilterRequestBody",
|
96
|
+
"asOfTime": None,
|
97
|
+
"effectiveTime": None,
|
98
|
+
"forLineage": False,
|
99
|
+
"forDuplicateProcessing" : False,
|
100
|
+
"limitResultsByStatus": ["ACTIVE"],
|
101
|
+
"sequencingOrder": "PROPERTY_ASCENDING",
|
102
|
+
"sequencingProperty": "qualifiedName",
|
103
|
+
"filter": filter
|
104
|
+
}
|
105
|
+
|
106
|
+
if output_format != "TABLE":
|
107
|
+
file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH)
|
108
|
+
file_name = f"Terms-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
|
109
|
+
full_file_path = os.path.join(file_path, file_name)
|
110
|
+
os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
|
111
|
+
output = m_client.find_data_structures_w_body(
|
112
|
+
body, 0, None, starts_with= True, ends_with=False, ignore_case=False,
|
113
|
+
output_format=output_format
|
114
|
+
)
|
115
|
+
if output == NO_ELEMENTS_FOUND:
|
116
|
+
print(f"\n==> No structures found for search string '{search_string}'")
|
117
|
+
return
|
118
|
+
elif isinstance(output, str | list) and output_format == "DICT":
|
119
|
+
output = json.dumps(output, indent=4)
|
120
|
+
elif isinstance(output, list) and output_format == "MERMAID":
|
121
|
+
output = "\n\n".join(output)
|
122
|
+
|
123
|
+
with open(full_file_path, 'w') as f:
|
124
|
+
f.write(output)
|
125
|
+
print(f"\n==> structures output written to {full_file_path}")
|
126
|
+
return
|
127
|
+
|
128
|
+
table = Table(
|
129
|
+
title=f"Data Structure List @ {time.asctime()}",
|
130
|
+
style="bright_white on black",
|
131
|
+
header_style="bright_white on dark_blue",
|
132
|
+
title_style="bold white on black",
|
133
|
+
caption_style="white on black",
|
134
|
+
show_lines=True,
|
135
|
+
box=box.ROUNDED,
|
136
|
+
caption=f"View Server '{view_server}' @ Platform - {view_url}",
|
137
|
+
expand=True,
|
138
|
+
)
|
139
|
+
table.add_column("Data Structure Name")
|
140
|
+
table.add_column("Namespace")
|
141
|
+
table.add_column(
|
142
|
+
"Qualified Name & GUID", width=38, no_wrap=True, justify="center"
|
143
|
+
)
|
144
|
+
table.add_column("Description")
|
145
|
+
table.add_column("Classifications")
|
146
|
+
table.add_column("Version Id")
|
147
|
+
|
148
|
+
|
149
|
+
structures = m_client.find_data_structures_w_body(
|
150
|
+
body, 0, None, starts_with = True, ends_with=False, ignore_case=False,
|
151
|
+
output_format = "DICT"
|
152
|
+
)
|
153
|
+
if type(structures) is list:
|
154
|
+
sorted_structures_list = sorted(
|
155
|
+
structures, key=lambda k: k["displayName"]
|
156
|
+
)
|
157
|
+
for structure in sorted_structures_list:
|
158
|
+
display_name = structure["displayName"]
|
159
|
+
qualified_name = structure["qualifiedName"]
|
160
|
+
namespace = structure.get("namespace",'---')
|
161
|
+
version_id = structure.get("versionId",'---')
|
162
|
+
|
163
|
+
guid = structure["guid"]
|
164
|
+
q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
|
165
|
+
description = structure.get("description",'---')
|
166
|
+
classifications = structure.get("classifications", "---")
|
167
|
+
classifications_md = Markdown(classifications)
|
168
|
+
|
169
|
+
table.add_row(
|
170
|
+
display_name,
|
171
|
+
namespace,
|
172
|
+
q_name,
|
173
|
+
description,
|
174
|
+
classifications_md,
|
175
|
+
version_id
|
176
|
+
)
|
177
|
+
console = Console(
|
178
|
+
style="bold bright_white on black",
|
179
|
+
width=width,
|
180
|
+
force_terminal=not jupyter,
|
181
|
+
)
|
182
|
+
console.print(table)
|
183
|
+
else:
|
184
|
+
print("==> No structures with that name found")
|
185
|
+
|
186
|
+
except (
|
187
|
+
InvalidParameterException,
|
188
|
+
UserNotAuthorizedException,
|
189
|
+
PropertyServerException,
|
190
|
+
) as e:
|
191
|
+
print_exception_response(e)
|
192
|
+
finally:
|
193
|
+
m_client.close_session()
|
194
|
+
|
195
|
+
|
196
|
+
def main():
|
197
|
+
parser = argparse.ArgumentParser()
|
198
|
+
parser.add_argument("--server", help="Name of the server to display status for")
|
199
|
+
parser.add_argument("--url", help="URL Platform to connect to")
|
200
|
+
parser.add_argument("--userid", help="User Id")
|
201
|
+
parser.add_argument("--password", help="User Password")
|
202
|
+
|
203
|
+
args = parser.parse_args()
|
204
|
+
|
205
|
+
server = args.server if args.server is not None else EGERIA_VIEW_SERVER
|
206
|
+
url = args.url if args.url is not None else EGERIA_PLATFORM_URL
|
207
|
+
userid = args.userid if args.userid is not None else EGERIA_USER
|
208
|
+
user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
|
209
|
+
|
210
|
+
try:
|
211
|
+
search_string = Prompt.ask(
|
212
|
+
"Enter the data structures you are searching for or '*' for all:", default="*"
|
213
|
+
).strip()
|
214
|
+
output_format = Prompt.ask("What output format do you want?", choices=["DICT", "TABLE", "FORM", "REPORT", "MERMAID"], default="TABLE")
|
215
|
+
|
216
|
+
display_data_struct(search_string, server, url, userid, user_pass, output_format = output_format)
|
217
|
+
|
218
|
+
except KeyboardInterrupt:
|
219
|
+
pass
|
220
|
+
|
221
|
+
|
222
|
+
if __name__ == "__main__":
|
223
|
+
main()
|
@@ -45,9 +45,9 @@ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
45
45
|
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
46
46
|
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
|
47
47
|
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
48
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "
|
49
|
-
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "
|
50
|
-
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "
|
48
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
49
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
50
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
51
51
|
|
52
52
|
|
53
53
|
|
@@ -24,7 +24,7 @@ from pyegeria import (
|
|
24
24
|
PropertyServerException,
|
25
25
|
UserNotAuthorizedException, NO_CATEGORIES_FOUND,
|
26
26
|
)
|
27
|
-
from
|
27
|
+
from commands.cat.glossary_actions import EGERIA_HOME_GLOSSARY_GUID
|
28
28
|
from pyegeria._globals import NO_GLOSSARIES_FOUND
|
29
29
|
|
30
30
|
disable_ssl_warnings = True
|
@@ -44,9 +44,9 @@ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
|
|
44
44
|
EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
|
45
45
|
EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "250"))
|
46
46
|
EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
|
47
|
-
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "
|
48
|
-
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "
|
49
|
-
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "
|
47
|
+
EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
48
|
+
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
49
|
+
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
50
50
|
|
51
51
|
|
52
52
|
def display_glossary_terms(
|
@@ -4,7 +4,7 @@ SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
Copyright Contributors to the ODPi Egeria project.
|
5
5
|
|
6
6
|
|
7
|
-
A
|
7
|
+
A object_action line interface for Egeria Users - package info
|
8
8
|
|
9
9
|
This is an emerging capability based on the **click** package. Feedback welcome!
|
10
10
|
|