pyegeria 5.3.9.5__py3-none-any.whl → 5.3.9.7__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 +11 -9
- pyegeria/_client.py +2 -49
- pyegeria/collection_manager_omvs.py +484 -735
- pyegeria/data_designer_omvs.py +251 -103
- 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 +2 -2
- pyegeria/output_formatter.py +389 -0
- {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.7.dist-info}/METADATA +1 -1
- pyegeria-5.3.9.7.dist-info/RECORD +141 -0
- pyegeria-5.3.9.7.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.5.dist-info/RECORD +0 -265
- pyegeria-5.3.9.5.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.5.dist-info → pyegeria-5.3.9.7.dist-info}/LICENSE +0 -0
- {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.7.dist-info}/WHEEL +0 -0
pyegeria/data_designer_omvs.py
CHANGED
@@ -13,6 +13,7 @@ from httpx import Response
|
|
13
13
|
|
14
14
|
from pyegeria._client import Client, max_paging_size
|
15
15
|
from pyegeria._globals import NO_ELEMENTS_FOUND
|
16
|
+
from pyegeria.output_formatter import (extract_mermaid_only, extract_basic_dict, generate_output)
|
16
17
|
from pyegeria.utils import body_slimmer
|
17
18
|
|
18
19
|
|
@@ -39,32 +40,6 @@ def base_path(client, view_server: str):
|
|
39
40
|
return f"{client.platform_url}/servers/{view_server}/api/open-metadata/data-designer"
|
40
41
|
|
41
42
|
|
42
|
-
def extract_mermaid_only(elements) -> list:
|
43
|
-
result = []
|
44
|
-
if type(elements) is dict:
|
45
|
-
return(elements.get('mermaidGraph', '___'))
|
46
|
-
for element in elements:
|
47
|
-
result.append(element.get('mermaidGraph', '___'))
|
48
|
-
return result
|
49
|
-
|
50
|
-
|
51
|
-
def extract_basic_dict(elements: dict) -> list:
|
52
|
-
list = []
|
53
|
-
body = {}
|
54
|
-
if type(elements) is dict:
|
55
|
-
body['guid'] = elements['elementHeader']['guid']
|
56
|
-
for key in elements['properties']:
|
57
|
-
body[key] = elements['properties'][key]
|
58
|
-
return body
|
59
|
-
|
60
|
-
for element in elements:
|
61
|
-
body['guid'] = element['elementHeader']['guid']
|
62
|
-
for key in element['properties']:
|
63
|
-
body[key] = element['properties'][key]
|
64
|
-
list.append(body)
|
65
|
-
return list
|
66
|
-
|
67
|
-
|
68
43
|
class DataDesigner(Client):
|
69
44
|
"""DataDesigner is a class that extends the Client class. The Data Designer OMVS provides APIs for
|
70
45
|
building specifications for data. This includes common data fields in a data dictionary, data specifications
|
@@ -596,7 +571,7 @@ r replace_all_properties: bool, default = False
|
|
596
571
|
async def _async_link_member_data_field(self, parent_data_struct_guid: str, member_data_field_guid: str,
|
597
572
|
body: dict = None) -> None:
|
598
573
|
"""
|
599
|
-
Connect a data structure to a data
|
574
|
+
Connect a data structure to a data field. Async version.
|
600
575
|
|
601
576
|
Parameters
|
602
577
|
----------
|
@@ -655,7 +630,7 @@ r replace_all_properties: bool, default = False
|
|
655
630
|
def link_member_data_field(self, parent_data_struct_guid: str, member_data_field_guid: str,
|
656
631
|
body: dict = None) -> None:
|
657
632
|
"""
|
658
|
-
Connect a data structure to a data
|
633
|
+
Connect a data structure to a data field.
|
659
634
|
|
660
635
|
Parameters
|
661
636
|
----------
|
@@ -806,7 +781,7 @@ r replace_all_properties: bool, default = False
|
|
806
781
|
loop.run_until_complete(
|
807
782
|
self._async_detach_member_data_field(parent_data_struct_guid, member_data_field_guid, body))
|
808
783
|
|
809
|
-
async def _async_delete_data_structure(self, data_struct_guid: str, body: dict = None) -> None:
|
784
|
+
async def _async_delete_data_structure(self, data_struct_guid: str, body: dict = None, cascade: bool=False) -> None:
|
810
785
|
"""
|
811
786
|
Delete a data structure. Request body is optional. Async version.
|
812
787
|
|
@@ -816,6 +791,8 @@ r replace_all_properties: bool, default = False
|
|
816
791
|
- the GUID of the parent data structure to delete.
|
817
792
|
body: dict, optional
|
818
793
|
- a dictionary containing additional properties.
|
794
|
+
cascade: bool, optional
|
795
|
+
- if True, then all child data structures will be deleted as well. Otherwise, only the data structure
|
819
796
|
|
820
797
|
Returns
|
821
798
|
-------
|
@@ -846,15 +823,15 @@ r replace_all_properties: bool, default = False
|
|
846
823
|
|
847
824
|
|
848
825
|
"""
|
849
|
-
|
850
|
-
url = f"{base_path(self, self.view_server)}/data-structures/{data_struct_guid}/delete"
|
826
|
+
cascaded_s = str(cascade).lower()
|
827
|
+
url = f"{base_path(self, self.view_server)}/data-structures/{data_struct_guid}/delete?cascadedDelete={cascaded_s}"
|
851
828
|
|
852
829
|
if body is None:
|
853
830
|
await self._async_make_request("POST", url)
|
854
831
|
else:
|
855
832
|
await self._async_make_request("POST", url, body_slimmer(body))
|
856
833
|
|
857
|
-
def delete_data_structure(self, data_struct_guid: str, body: dict = None) -> None:
|
834
|
+
def delete_data_structure(self, data_struct_guid: str, body: dict = None, cascade: bool = False) -> None:
|
858
835
|
"""
|
859
836
|
Delete a data structure. Request body is optional.
|
860
837
|
|
@@ -864,6 +841,9 @@ r replace_all_properties: bool, default = False
|
|
864
841
|
- the GUID of the data structure to delete.
|
865
842
|
body: dict, optional
|
866
843
|
- a dictionary containing additional properties.
|
844
|
+
cascade: bool, optional
|
845
|
+
- if True, then all child data structures will be deleted as well. Otherwise, only the data structure
|
846
|
+
|
867
847
|
|
868
848
|
Returns
|
869
849
|
-------
|
@@ -895,7 +875,7 @@ r replace_all_properties: bool, default = False
|
|
895
875
|
"""
|
896
876
|
|
897
877
|
loop = asyncio.get_event_loop()
|
898
|
-
loop.run_until_complete(self._async_delete_data_field(data_struct_guid, body))
|
878
|
+
loop.run_until_complete(self._async_delete_data_field(data_struct_guid, body, cascade))
|
899
879
|
|
900
880
|
async def _async_find_all_data_structures(self, start_from: int = 0, page_size: int = max_paging_size,
|
901
881
|
output_format: str = "DICT") -> list | str:
|
@@ -998,7 +978,7 @@ r replace_all_properties: bool, default = False
|
|
998
978
|
ignore_case: bool, default = True
|
999
979
|
- If True, the case of the search string is ignored.
|
1000
980
|
output_format: str, default = "DICT"
|
1001
|
-
- output format of the data structure. Possible values: "DICT", "JSON", "MERMAID".
|
981
|
+
- output format of the data structure. Possible values: "DICT", 'REPORT', 'FORM', "JSON", "MERMAID".
|
1002
982
|
|
1003
983
|
Returns
|
1004
984
|
-------
|
@@ -1021,7 +1001,7 @@ r replace_all_properties: bool, default = False
|
|
1021
1001
|
"asOfTime": "{{$isoTimestamp}}",
|
1022
1002
|
"effectiveTime": "{{$isoTimestamp}}",
|
1023
1003
|
"forLineage": false,
|
1024
|
-
"forDuplicateProcessing
|
1004
|
+
"forDuplicateProcessing": false,
|
1025
1005
|
"limitResultsByStatus": ["ACTIVE"],
|
1026
1006
|
"sequencingOrder": "PROPERTY_ASCENDING",
|
1027
1007
|
"sequencingProperty": "qualifiedName",
|
@@ -1311,7 +1291,8 @@ r replace_all_properties: bool, default = False
|
|
1311
1291
|
self._async_get_data_structures_by_name(filter, body, start_from, page_size, output_format))
|
1312
1292
|
return response
|
1313
1293
|
|
1314
|
-
async def _async_get_data_structures_by_guid(self, guid: str, body: dict = None,
|
1294
|
+
async def _async_get_data_structures_by_guid(self, guid: str, body: dict = None,
|
1295
|
+
output_format: str = "DICT") -> list | str:
|
1315
1296
|
""" Get the data structure metadata elements for the specified GUID.
|
1316
1297
|
Async version.
|
1317
1298
|
|
@@ -1364,8 +1345,7 @@ r replace_all_properties: bool, default = False
|
|
1364
1345
|
return self.generate_data_structure_output(element, filter, output_format)
|
1365
1346
|
return element
|
1366
1347
|
|
1367
|
-
def get_data_structures_by_guid(self, guid: str, body: str = None,
|
1368
|
-
output_format: str = "DICT") -> list | str:
|
1348
|
+
def get_data_structures_by_guid(self, guid: str, body: str = None, output_format: str = "DICT") -> list | str:
|
1369
1349
|
""" Get the data structure metadata element with the specified unique identifier..
|
1370
1350
|
|
1371
1351
|
Parameters
|
@@ -1927,7 +1907,7 @@ r replace_all_properties: bool, default = False
|
|
1927
1907
|
async def _async_link_nested_data_field(self, parent_data_field_guid: str, nested_data_field_guid: str,
|
1928
1908
|
body: dict = None) -> None:
|
1929
1909
|
"""
|
1930
|
-
Connect a nested data
|
1910
|
+
Connect a nested data field to a data field. Request body is optional. Async version.
|
1931
1911
|
|
1932
1912
|
Parameters
|
1933
1913
|
----------
|
@@ -2137,7 +2117,7 @@ r replace_all_properties: bool, default = False
|
|
2137
2117
|
loop.run_until_complete(
|
2138
2118
|
self._async_detach_nested_data_field(parent_data_field_guid, nested_data_field_guid, body))
|
2139
2119
|
|
2140
|
-
async def _async_delete_data_field(self, data_field_guid: str, body: dict = None) -> None:
|
2120
|
+
async def _async_delete_data_field(self, data_field_guid: str, body: dict = None, cascade:bool = False) -> None:
|
2141
2121
|
"""
|
2142
2122
|
Delete a data class. Request body is optional. Async version.
|
2143
2123
|
|
@@ -2147,6 +2127,9 @@ r replace_all_properties: bool, default = False
|
|
2147
2127
|
- the GUID of the data class to delete.
|
2148
2128
|
body: dict, optional
|
2149
2129
|
- a dictionary containing additional properties.
|
2130
|
+
cascade: bool, optional
|
2131
|
+
- if True, then all child data fields will be deleted as well.
|
2132
|
+
|
2150
2133
|
|
2151
2134
|
Returns
|
2152
2135
|
-------
|
@@ -2177,15 +2160,15 @@ r replace_all_properties: bool, default = False
|
|
2177
2160
|
|
2178
2161
|
|
2179
2162
|
"""
|
2180
|
-
|
2181
|
-
url = f"{base_path(self, self.view_server)}/data-fields/{data_field_guid}/delete"
|
2163
|
+
cascade_s = str(cascade).lower()
|
2164
|
+
url = f"{base_path(self, self.view_server)}/data-fields/{data_field_guid}/delete?cascadedDelete={cascade_s}"
|
2182
2165
|
|
2183
2166
|
if body is None:
|
2184
2167
|
await self._async_make_request("POST", url)
|
2185
2168
|
else:
|
2186
2169
|
await self._async_make_request("POST", url, body_slimmer(body))
|
2187
2170
|
|
2188
|
-
def delete_data_field(self, data_field_guid: str, body: dict = None) -> None:
|
2171
|
+
def delete_data_field(self, data_field_guid: str, body: dict = None, cascade:bool = False) -> None:
|
2189
2172
|
"""
|
2190
2173
|
Delete a data class. Request body is optional.
|
2191
2174
|
|
@@ -2195,6 +2178,9 @@ r replace_all_properties: bool, default = False
|
|
2195
2178
|
- the GUID of the data class the data class to delete.
|
2196
2179
|
body: dict, optional
|
2197
2180
|
- a dictionary containing additional properties.
|
2181
|
+
cascade: bool, optional
|
2182
|
+
- if True, then all child data fields will be deleted as well.
|
2183
|
+
|
2198
2184
|
|
2199
2185
|
Returns
|
2200
2186
|
-------
|
@@ -2226,9 +2212,10 @@ r replace_all_properties: bool, default = False
|
|
2226
2212
|
"""
|
2227
2213
|
|
2228
2214
|
loop = asyncio.get_event_loop()
|
2229
|
-
loop.run_until_complete(self._async_delete_data_field(data_field_guid, body))
|
2215
|
+
loop.run_until_complete(self._async_delete_data_field(data_field_guid, body, cascade))
|
2230
2216
|
|
2231
|
-
async def _async_find_all_data_fields(self, start_from: int = 0, page_size: int = max_paging_size,
|
2217
|
+
async def _async_find_all_data_fields(self, start_from: int = 0, page_size: int = max_paging_size,
|
2218
|
+
output_format: str = "DICT") -> list | str:
|
2232
2219
|
"""Returns a list of all known data fields. Async version.
|
2233
2220
|
|
2234
2221
|
Parameters
|
@@ -2273,8 +2260,8 @@ r replace_all_properties: bool, default = False
|
|
2273
2260
|
return self.generate_data_field_output(elements, filter, output_format)
|
2274
2261
|
return elements
|
2275
2262
|
|
2276
|
-
|
2277
|
-
|
2263
|
+
def find_all_data_fields(self, start_from: int = 0, page_size: int = max_paging_size,
|
2264
|
+
output_format: str = "DICT") -> list | str:
|
2278
2265
|
""" Returns a list of all known data fields.
|
2279
2266
|
|
2280
2267
|
Parameters
|
@@ -2379,8 +2366,8 @@ r replace_all_properties: bool, default = False
|
|
2379
2366
|
return elements
|
2380
2367
|
|
2381
2368
|
def find_data_fields_w_body(self, body: dict, start_from: int = 0, page_size: int = max_paging_size,
|
2382
|
-
starts_with: bool = True, ends_with: bool = False,
|
2383
|
-
|
2369
|
+
starts_with: bool = True, ends_with: bool = False, ignore_case: bool = True,
|
2370
|
+
output_format: str = "DICT") -> list | str:
|
2384
2371
|
""" Retrieve the list of data class metadata elements that contain the search string.
|
2385
2372
|
|
2386
2373
|
Parameters
|
@@ -2433,13 +2420,12 @@ r replace_all_properties: bool, default = False
|
|
2433
2420
|
|
2434
2421
|
loop = asyncio.get_event_loop()
|
2435
2422
|
response = loop.run_until_complete(
|
2436
|
-
self._async_find_data_fields_w_body(body, start_from, page_size, starts_with,
|
2437
|
-
|
2423
|
+
self._async_find_data_fields_w_body(body, start_from, page_size, starts_with, ends_with, ignore_case,
|
2424
|
+
output_format))
|
2438
2425
|
return response
|
2439
2426
|
|
2440
2427
|
async def _async_find_data_fields(self, filter: str, start_from: int = 0, page_size: int = max_paging_size,
|
2441
|
-
starts_with: bool = True, ends_with: bool = False,
|
2442
|
-
ignore_case: bool = True,
|
2428
|
+
starts_with: bool = True, ends_with: bool = False, ignore_case: bool = True,
|
2443
2429
|
output_format: str = "DICT") -> list | str:
|
2444
2430
|
""" Find the list of data class elements that contain the search string.
|
2445
2431
|
Async version.
|
@@ -2497,8 +2483,8 @@ r replace_all_properties: bool, default = False
|
|
2497
2483
|
return elements
|
2498
2484
|
|
2499
2485
|
def find_data_fields(self, filter: str, start_from: int = 0, page_size: int = max_paging_size,
|
2500
|
-
starts_with: bool = True, ends_with: bool = False,
|
2501
|
-
|
2486
|
+
starts_with: bool = True, ends_with: bool = False, ignore_case: bool = True,
|
2487
|
+
output_format: str = "DICT") -> list | str:
|
2502
2488
|
""" Retrieve the list of data fields elements that contain the search string filter.
|
2503
2489
|
|
2504
2490
|
Parameters
|
@@ -2538,8 +2524,8 @@ r replace_all_properties: bool, default = False
|
|
2538
2524
|
|
2539
2525
|
loop = asyncio.get_event_loop()
|
2540
2526
|
response = loop.run_until_complete(
|
2541
|
-
self._async_find_data_fields(filter, start_from, page_size, starts_with,
|
2542
|
-
|
2527
|
+
self._async_find_data_fields(filter, start_from, page_size, starts_with, ends_with, ignore_case,
|
2528
|
+
output_format))
|
2543
2529
|
return response
|
2544
2530
|
|
2545
2531
|
async def _async_get_data_fields_by_name(self, filter: str, body: dict = None, start_from: int = 0,
|
@@ -2657,11 +2643,12 @@ r replace_all_properties: bool, default = False
|
|
2657
2643
|
"""
|
2658
2644
|
|
2659
2645
|
loop = asyncio.get_event_loop()
|
2660
|
-
response = loop.run_until_complete(
|
2661
|
-
|
2646
|
+
response = loop.run_until_complete(
|
2647
|
+
self._async_get_data_fields_by_name(filter, body, start_from, page_size, output_format))
|
2662
2648
|
return response
|
2663
2649
|
|
2664
|
-
async def _async_get_data_field_by_guid(self, guid: str, body: dict = None,
|
2650
|
+
async def _async_get_data_field_by_guid(self, guid: str, body: dict = None,
|
2651
|
+
output_format: str = "DICT") -> list | str:
|
2665
2652
|
""" Get the data class elements for the specified GUID.
|
2666
2653
|
Async version.
|
2667
2654
|
|
@@ -3381,14 +3368,14 @@ r replace_all_properties: bool, default = False
|
|
3381
3368
|
|
3382
3369
|
Sample body:
|
3383
3370
|
|
3384
|
-
|
3385
|
-
|
3386
|
-
|
3387
|
-
|
3388
|
-
|
3389
|
-
|
3390
|
-
|
3391
|
-
|
3371
|
+
{
|
3372
|
+
"class": "MetadataSourceRequestBody",
|
3373
|
+
"externalSourceGUID": "add guid here",
|
3374
|
+
"externalSourceName": "add qualified name here",
|
3375
|
+
"effectiveTime": "{{$isoTimestamp}}",
|
3376
|
+
"forLineage": false,
|
3377
|
+
"forDuplicateProcessing": false
|
3378
|
+
}
|
3392
3379
|
|
3393
3380
|
"""
|
3394
3381
|
|
@@ -3692,7 +3679,7 @@ r replace_all_properties: bool, default = False
|
|
3692
3679
|
loop.run_until_complete(
|
3693
3680
|
self._async_detach_specialist_data_class(parent_data_class_guid, child_data_class_guid, body))
|
3694
3681
|
|
3695
|
-
async def _async_delete_data_class(self, data_class_guid: str, body: dict = None) -> None:
|
3682
|
+
async def _async_delete_data_class(self, data_class_guid: str, body: dict = None, cascade:bool= False) -> None:
|
3696
3683
|
"""
|
3697
3684
|
Delete a data class. Request body is optional. Async version.
|
3698
3685
|
|
@@ -3702,6 +3689,9 @@ r replace_all_properties: bool, default = False
|
|
3702
3689
|
- the GUID of the data class to delete.
|
3703
3690
|
body: dict, optional
|
3704
3691
|
- a dictionary containing additional properties.
|
3692
|
+
cascade: bool, optional
|
3693
|
+
- if True, then the delete cascades to dependents
|
3694
|
+
|
3705
3695
|
|
3706
3696
|
Returns
|
3707
3697
|
-------
|
@@ -3732,15 +3722,15 @@ r replace_all_properties: bool, default = False
|
|
3732
3722
|
|
3733
3723
|
|
3734
3724
|
"""
|
3735
|
-
|
3736
|
-
url = f"{base_path(self, self.view_server)}/data-classes/{data_class_guid}/delete"
|
3725
|
+
cascade_s = str(cascade).lower()
|
3726
|
+
url = f"{base_path(self, self.view_server)}/data-classes/{data_class_guid}/delete?cascadedDelete={cascade_s}"
|
3737
3727
|
|
3738
3728
|
if body is None:
|
3739
3729
|
await self._async_make_request("POST", url)
|
3740
3730
|
else:
|
3741
3731
|
await self._async_make_request("POST", url, body_slimmer(body))
|
3742
3732
|
|
3743
|
-
def delete_data_class(self, data_class_guid: str, body: dict = None) -> None:
|
3733
|
+
def delete_data_class(self, data_class_guid: str, body: dict = None, cascade:bool= False) -> None:
|
3744
3734
|
"""
|
3745
3735
|
Delete a data class. Request body is optional.
|
3746
3736
|
|
@@ -3750,6 +3740,9 @@ r replace_all_properties: bool, default = False
|
|
3750
3740
|
- the GUID of the data class the data class to delete.
|
3751
3741
|
body: dict, optional
|
3752
3742
|
- a dictionary containing additional properties.
|
3743
|
+
cascade: bool, optional
|
3744
|
+
- if True, then the delete cascades to dependents
|
3745
|
+
|
3753
3746
|
|
3754
3747
|
Returns
|
3755
3748
|
-------
|
@@ -3781,10 +3774,10 @@ r replace_all_properties: bool, default = False
|
|
3781
3774
|
"""
|
3782
3775
|
|
3783
3776
|
loop = asyncio.get_event_loop()
|
3784
|
-
loop.run_until_complete(self._async_delete_data_class(data_class_guid, body))
|
3777
|
+
loop.run_until_complete(self._async_delete_data_class(data_class_guid, body, cascade))
|
3785
3778
|
|
3786
|
-
async def _async_find_all_data_classes(self, start_from: int = 0,
|
3787
|
-
|
3779
|
+
async def _async_find_all_data_classes(self, start_from: int = 0, page_size: int = max_paging_size,
|
3780
|
+
output_format: str = "DICT") -> list | str:
|
3788
3781
|
""" Returns a list of all data classes. Async version.
|
3789
3782
|
|
3790
3783
|
Parameters
|
@@ -3860,14 +3853,12 @@ r replace_all_properties: bool, default = False
|
|
3860
3853
|
"""
|
3861
3854
|
|
3862
3855
|
loop = asyncio.get_event_loop()
|
3863
|
-
response = loop.run_until_complete(self._async_find_all_data_classes(start_from, page_size,
|
3864
|
-
output_format))
|
3856
|
+
response = loop.run_until_complete(self._async_find_all_data_classes(start_from, page_size, output_format))
|
3865
3857
|
return response
|
3866
3858
|
|
3867
3859
|
async def _async_find_data_classes_w_body(self, body: dict, start_from: int = 0, page_size: int = max_paging_size,
|
3868
3860
|
starts_with: bool = True, ends_with: bool = False,
|
3869
|
-
ignore_case: bool = True,
|
3870
|
-
output_format: str = "DICT") -> list | str:
|
3861
|
+
ignore_case: bool = True, output_format: str = "DICT") -> list | str:
|
3871
3862
|
""" Retrieve the list of data class metadata elements that contain the search string.
|
3872
3863
|
Async version.
|
3873
3864
|
|
@@ -3938,8 +3929,8 @@ r replace_all_properties: bool, default = False
|
|
3938
3929
|
return elements
|
3939
3930
|
|
3940
3931
|
def find_data_classes_w_body(self, body: dict, start_from: int = 0, page_size: int = max_paging_size,
|
3941
|
-
starts_with: bool = True, ends_with: bool = False,
|
3942
|
-
|
3932
|
+
starts_with: bool = True, ends_with: bool = False, ignore_case: bool = True,
|
3933
|
+
output_format: str = "DICT") -> list | str:
|
3943
3934
|
""" Retrieve the list of data class metadata elements that contain the search string.
|
3944
3935
|
|
3945
3936
|
Parameters
|
@@ -3992,13 +3983,12 @@ r replace_all_properties: bool, default = False
|
|
3992
3983
|
|
3993
3984
|
loop = asyncio.get_event_loop()
|
3994
3985
|
response = loop.run_until_complete(
|
3995
|
-
self._async_find_data_classes_w_body(body, start_from, page_size, starts_with,
|
3996
|
-
|
3986
|
+
self._async_find_data_classes_w_body(body, start_from, page_size, starts_with, ends_with, ignore_case,
|
3987
|
+
output_format))
|
3997
3988
|
return response
|
3998
3989
|
|
3999
3990
|
async def _async_find_data_classes(self, filter: str, start_from: int = 0, page_size: int = max_paging_size,
|
4000
|
-
starts_with: bool = True, ends_with: bool = False,
|
4001
|
-
ignore_case: bool = True,
|
3991
|
+
starts_with: bool = True, ends_with: bool = False, ignore_case: bool = True,
|
4002
3992
|
output_format: str = "DICT") -> list | str:
|
4003
3993
|
""" Find the list of data class elements that contain the search string.
|
4004
3994
|
Async version.
|
@@ -4056,8 +4046,8 @@ r replace_all_properties: bool, default = False
|
|
4056
4046
|
return elements
|
4057
4047
|
|
4058
4048
|
def find_data_classes(self, filter: str, start_from: int = 0, page_size: int = max_paging_size,
|
4059
|
-
starts_with: bool = True, ends_with: bool = False,
|
4060
|
-
|
4049
|
+
starts_with: bool = True, ends_with: bool = False, ignore_case: bool = True,
|
4050
|
+
output_format: str = "DICT") -> list | str:
|
4061
4051
|
""" Retrieve the list of data fields elements that contain the search string filter.
|
4062
4052
|
|
4063
4053
|
Parameters
|
@@ -4097,12 +4087,13 @@ r replace_all_properties: bool, default = False
|
|
4097
4087
|
|
4098
4088
|
loop = asyncio.get_event_loop()
|
4099
4089
|
response = loop.run_until_complete(
|
4100
|
-
self._async_find_data_classes(filter, start_from, page_size, starts_with,
|
4101
|
-
|
4090
|
+
self._async_find_data_classes(filter, start_from, page_size, starts_with, ends_with, ignore_case,
|
4091
|
+
output_format))
|
4102
4092
|
return response
|
4103
4093
|
|
4104
4094
|
async def _async_get_data_classes_by_name(self, filter: str, body: dict = None, start_from: int = 0,
|
4105
|
-
page_size: int = max_paging_size,
|
4095
|
+
page_size: int = max_paging_size,
|
4096
|
+
output_format: str = "DICT") -> list | str:
|
4106
4097
|
""" Get the list of data class metadata elements with a matching name to the search string filter.
|
4107
4098
|
Async version.
|
4108
4099
|
|
@@ -4215,11 +4206,12 @@ r replace_all_properties: bool, default = False
|
|
4215
4206
|
"""
|
4216
4207
|
|
4217
4208
|
loop = asyncio.get_event_loop()
|
4218
|
-
response = loop.run_until_complete(
|
4219
|
-
|
4209
|
+
response = loop.run_until_complete(
|
4210
|
+
self._async_get_data_classes_by_name(filter, body, start_from, page_size, output_format))
|
4220
4211
|
return response
|
4221
4212
|
|
4222
|
-
async def _async_get_data_class_by_guid(self, guid: str, body: dict = None
|
4213
|
+
async def _async_get_data_class_by_guid(self, guid: str, body: dict = None,
|
4214
|
+
output_format: str = "DICT") -> list | str:
|
4223
4215
|
""" Get the data class elements for the specified GUID.
|
4224
4216
|
Async version.
|
4225
4217
|
|
@@ -4922,23 +4914,179 @@ r replace_all_properties: bool, default = False
|
|
4922
4914
|
self._async_detach_certification_type_from_data_structure(certification_type_guid, data_structure_guid,
|
4923
4915
|
body))
|
4924
4916
|
|
4917
|
+
def _extract_data_structure_properties(self, element: dict) -> dict:
|
4918
|
+
"""
|
4919
|
+
Extract common properties from a data structure element.
|
4920
|
+
|
4921
|
+
Args:
|
4922
|
+
element (dict): The data structure element
|
4923
|
+
|
4924
|
+
Returns:
|
4925
|
+
dict: Dictionary of extracted properties
|
4926
|
+
"""
|
4927
|
+
guid = element['elementHeader'].get("guid", None)
|
4928
|
+
properties = element.get('properties', {})
|
4929
|
+
display_name = properties.get("displayName", "") or ""
|
4930
|
+
description = properties.get("description", "") or ""
|
4931
|
+
qualified_name = properties.get("qualifiedName", "") or ""
|
4932
|
+
namespace = properties.get("namespace", "") or ""
|
4933
|
+
version_id = properties.get("versionIdentifier", "") or ""
|
4934
|
+
|
4935
|
+
return {
|
4936
|
+
'guid': guid, 'properties': properties, 'display_name': display_name, 'description': description,
|
4937
|
+
'qualified_name': qualified_name, 'namespace': namespace, 'version_identifier': version_id
|
4938
|
+
}
|
4939
|
+
|
4940
|
+
def _extract_data_class_properties(self, element: dict) -> dict:
|
4941
|
+
"""
|
4942
|
+
Extract common properties from a data class element.
|
4943
|
+
|
4944
|
+
Args:
|
4945
|
+
element (dict): The data class element
|
4946
|
+
|
4947
|
+
Returns:
|
4948
|
+
dict: Dictionary of extracted properties
|
4949
|
+
"""
|
4950
|
+
guid = element['elementHeader'].get("guid", None)
|
4951
|
+
properties = element.get('properties', {})
|
4952
|
+
display_name = properties.get("displayName", "") or ""
|
4953
|
+
description = properties.get("description", "") or ""
|
4954
|
+
qualified_name = properties.get("qualifiedName", "") or ""
|
4955
|
+
|
4956
|
+
return {
|
4957
|
+
'guid': guid, 'properties': properties, 'display_name': display_name, 'description': description,
|
4958
|
+
'qualified_name': qualified_name
|
4959
|
+
}
|
4960
|
+
|
4961
|
+
def _extract_data_field_properties(self, element: dict) -> dict:
|
4962
|
+
"""
|
4963
|
+
Extract common properties from a data field element.
|
4964
|
+
|
4965
|
+
Args:
|
4966
|
+
element (dict): The data field element
|
4967
|
+
|
4968
|
+
Returns:
|
4969
|
+
dict: Dictionary of extracted properties
|
4970
|
+
"""
|
4971
|
+
guid = element['elementHeader'].get("guid", None)
|
4972
|
+
properties = element.get('properties', {})
|
4973
|
+
display_name = properties.get("displayName", "") or ""
|
4974
|
+
description = properties.get("description", "") or ""
|
4975
|
+
qualified_name = properties.get("qualifiedName", "") or ""
|
4976
|
+
|
4977
|
+
# Get data type from extendedProperties if available
|
4978
|
+
extended_properties = properties.get("extendedProperties", {})
|
4979
|
+
data_type = extended_properties.get("dataType", "")
|
4980
|
+
|
4981
|
+
return {
|
4982
|
+
'guid': guid, 'properties': properties, 'display_name': display_name, 'description': description,
|
4983
|
+
'qualified_name': qualified_name, 'data_type': data_type
|
4984
|
+
}
|
4985
|
+
|
4925
4986
|
def generate_basic_structured_output(self, elements, filter, output_format) -> str | list:
|
4926
|
-
|
4927
|
-
|
4928
|
-
|
4929
|
-
|
4930
|
-
|
4931
|
-
|
4932
|
-
|
4987
|
+
"""
|
4988
|
+
Generate output in the specified format for the given elements.
|
4989
|
+
|
4990
|
+
Args:
|
4991
|
+
elements: Dictionary or list of dictionaries containing element data
|
4992
|
+
filter: The search string used to find the elements
|
4993
|
+
output_format: The desired output format (MD, FORM, REPORT, LIST, DICT, MERMAID)
|
4994
|
+
|
4995
|
+
Returns:
|
4996
|
+
Formatted output as string or list of dictionaries
|
4997
|
+
"""
|
4998
|
+
# Handle MERMAID and DICT formats using existing methods
|
4999
|
+
if output_format == "MERMAID":
|
5000
|
+
return extract_mermaid_only(elements)
|
5001
|
+
elif output_format == "DICT":
|
5002
|
+
return extract_basic_dict(elements)
|
5003
|
+
|
5004
|
+
# For other formats (MD, FORM, REPORT, LIST), use generate_output
|
5005
|
+
elif output_format in ["MD", "FORM", "REPORT", "LIST"]:
|
5006
|
+
# Define columns for LIST format
|
5007
|
+
columns = [{'name': 'Name', 'key': 'display_name'}, {'name': 'Qualified Name', 'key': 'qualified_name'},
|
5008
|
+
{'name': 'Description', 'key': 'description', 'format': True}]
|
5009
|
+
|
5010
|
+
return generate_output(elements=elements, search_string=filter, entity_type="Data Element",
|
5011
|
+
output_format=output_format, extract_properties_func=self._extract_data_structure_properties,
|
5012
|
+
columns=columns if output_format == 'LIST' else None)
|
5013
|
+
|
5014
|
+
# Default case
|
5015
|
+
return None
|
4933
5016
|
|
4934
5017
|
def generate_data_structure_output(self, elements, filter, output_format) -> str | list:
|
4935
|
-
|
5018
|
+
"""
|
5019
|
+
Generate output for data structures in the specified format.
|
5020
|
+
|
5021
|
+
Args:
|
5022
|
+
elements: Dictionary or list of dictionaries containing data structure elements
|
5023
|
+
filter: The search string used to find the elements
|
5024
|
+
output_format: The desired output format (MD, FORM, REPORT, LIST, DICT, MERMAID)
|
5025
|
+
|
5026
|
+
Returns:
|
5027
|
+
Formatted output as string or list of dictionaries
|
5028
|
+
"""
|
5029
|
+
if output_format in ["MD", "FORM", "REPORT", "LIST"]:
|
5030
|
+
# Define columns for LIST format
|
5031
|
+
columns = [{'name': 'Structure Name', 'key': 'display_name'},
|
5032
|
+
{'name': 'Qualified Name', 'key': 'qualified_name'}, {'name': 'Namespace', 'key': 'namespace'},
|
5033
|
+
{'name': 'Version', 'key': 'version_identifier'},
|
5034
|
+
{'name': 'Description', 'key': 'description', 'format': True}]
|
5035
|
+
|
5036
|
+
return generate_output(elements=elements, search_string=filter, entity_type="Data Structure",
|
5037
|
+
output_format=output_format, extract_properties_func=self._extract_data_structure_properties,
|
5038
|
+
columns=columns if output_format == 'LIST' else None)
|
5039
|
+
else:
|
5040
|
+
return self.generate_basic_structured_output(elements, filter, output_format)
|
4936
5041
|
|
4937
5042
|
def generate_data_class_output(self, elements, filter, output_format) -> str | list:
|
4938
|
-
|
5043
|
+
"""
|
5044
|
+
Generate output for data classes in the specified format.
|
5045
|
+
|
5046
|
+
Args:
|
5047
|
+
elements: Dictionary or list of dictionaries containing data class elements
|
5048
|
+
filter: The search string used to find the elements
|
5049
|
+
output_format: The desired output format (MD, FORM, REPORT, LIST, DICT, MERMAID)
|
5050
|
+
|
5051
|
+
Returns:
|
5052
|
+
Formatted output as string or list of dictionaries
|
5053
|
+
"""
|
5054
|
+
if output_format in ["MD", "FORM", "REPORT", "LIST"]:
|
5055
|
+
# Define columns for LIST format
|
5056
|
+
columns = [{'name': 'Class Name', 'key': 'display_name'},
|
5057
|
+
{'name': 'Qualified Name', 'key': 'qualified_name'},
|
5058
|
+
{'name': 'Description', 'key': 'description', 'format': True}]
|
5059
|
+
|
5060
|
+
return generate_output(elements=elements, search_string=filter, entity_type="Data Class",
|
5061
|
+
output_format=output_format, extract_properties_func=self._extract_data_class_properties,
|
5062
|
+
columns=columns if output_format == 'LIST' else None)
|
5063
|
+
else:
|
5064
|
+
return self.generate_basic_structured_output(elements, filter, output_format)
|
4939
5065
|
|
4940
5066
|
def generate_data_field_output(self, elements, filter, output_format) -> str | list:
|
4941
|
-
|
5067
|
+
"""
|
5068
|
+
Generate output for data fields in the specified format.
|
5069
|
+
|
5070
|
+
Args:
|
5071
|
+
elements: Dictionary or list of dictionaries containing data field elements
|
5072
|
+
filter: The search string used to find the elements
|
5073
|
+
output_format: The desired output format (MD, FORM, REPORT, LIST, DICT, MERMAID)
|
5074
|
+
|
5075
|
+
Returns:
|
5076
|
+
Formatted output as a string or list of dictionaries
|
5077
|
+
"""
|
5078
|
+
if output_format in ["MD", "FORM", "REPORT", "LIST", "DICT"]:
|
5079
|
+
# Define columns for LIST format
|
5080
|
+
columns = [{'name': 'Field Name', 'key': 'display_name'},
|
5081
|
+
{'name': 'Qualified Name', 'key': 'qualified_name'}, {'name': 'Data Type', 'key': 'data_type'},
|
5082
|
+
{'name': 'Description', 'key': 'description', 'format': True}]
|
5083
|
+
|
5084
|
+
return generate_output(elements=elements, search_string=filter, entity_type="Data Field",
|
5085
|
+
output_format=output_format, extract_properties_func=self._extract_data_field_properties,
|
5086
|
+
columns=columns if output_format == 'LIST' else None)
|
5087
|
+
else:
|
5088
|
+
return self.generate_basic_structured_output(elements, filter, output_format)
|
5089
|
+
|
4942
5090
|
|
4943
5091
|
if __name__ == "__main__":
|
4944
5092
|
print("Data Designer")
|