pyegeria 5.4.4.8__py3-none-any.whl → 5.4.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.
- commands/cat/dr_egeria_command_help.py +0 -0
- commands/cat/exp_list_glossaries.py +0 -0
- commands/cat/get_collection.py +0 -0
- commands/cat/get_project_dependencies.py +0 -0
- commands/cat/get_project_structure.py +0 -0
- commands/cat/list_assets.py +0 -0
- commands/cat/list_cert_types.py +0 -0
- commands/cat/list_collections.py +0 -0
- commands/cat/list_data_designer.py +0 -0
- commands/cat/list_data_structures_full.py +0 -0
- commands/cat/list_deployed_servers.py +0 -0
- commands/cat/list_glossaries.py +0 -0
- commands/cat/list_projects.py +0 -0
- commands/cat/list_tech_types.py +0 -0
- commands/cat/list_terms.py +0 -0
- commands/cat/list_todos.py +0 -0
- commands/cli/egeria.py +0 -0
- commands/my/list_my_profile.py +0 -0
- commands/my/list_my_roles.py +0 -0
- commands/my/monitor_my_todos.py +0 -0
- commands/my/monitor_open_todos.py +0 -0
- commands/ops/list_archives.py +0 -0
- commands/ops/list_catalog_targets.py +0 -0
- commands/ops/monitor_asset_events.py +0 -0
- commands/ops/monitor_engine_activity.py +0 -0
- commands/ops/monitor_engine_activity_c.py +0 -0
- commands/ops/monitor_gov_eng_status.py +0 -0
- commands/ops/monitor_integ_daemon_status.py +0 -0
- commands/ops/monitor_platform_status.py +0 -0
- commands/ops/monitor_server_startup.py +0 -0
- commands/ops/monitor_server_status.py +0 -0
- commands/ops/orig_monitor_server_list.py +0 -0
- commands/ops/orig_monitor_server_status.py +0 -0
- commands/ops/table_integ_daemon_status.py +0 -0
- commands/tech/get_guid_info.py +0 -0
- commands/tech/get_tech_details.py +0 -0
- commands/tech/list_anchored_elements.py +0 -0
- commands/tech/list_asset_types.py +0 -0
- commands/tech/list_gov_action_processes.py +0 -0
- commands/tech/list_information_supply_chains.py +0 -0
- commands/tech/list_registered_services.py +0 -0
- commands/tech/list_relationship_types.py +0 -0
- commands/tech/list_relationships.py +0 -0
- commands/tech/list_solution_blueprints.py +0 -0
- commands/tech/list_solution_components.py +0 -0
- commands/tech/list_solution_roles.py +0 -0
- commands/tech/list_valid_metadata_values.py +0 -0
- md_processing/__init__.py +2 -0
- md_processing/dr_egeria.py +7 -4
- md_processing/md_commands/data_designer_commands.py +8 -3
- md_processing/md_commands/product_manager_commands.py +115 -12
- md_processing/md_commands/view_commands.py +3 -0
- md_processing/md_processing_utils/md_processing_constants.py +2 -1
- pyegeria/__init__.py +1 -0
- pyegeria/_client_new.py +1 -1
- pyegeria/_output_formats.py +50 -8
- pyegeria/automated_curation.py +122 -15
- pyegeria/collection_manager.py +28 -2
- pyegeria/data_designer.py +3 -3
- pyegeria/format_set_executor.py +159 -0
- pyegeria/mcp_adapter.py +110 -0
- pyegeria/mcp_server.py +176 -0
- pyegeria/project_manager.py +1 -1
- pyegeria/reference_data.py +1 -1
- pyegeria/x_action_author_omvs.py +1 -1
- {pyegeria-5.4.4.8.dist-info → pyegeria-5.4.6.dist-info}/METADATA +26 -29
- pyegeria-5.4.6.dist-info/RECORD +174 -0
- {pyegeria-5.4.4.8.dist-info → pyegeria-5.4.6.dist-info}/WHEEL +2 -1
- pyegeria-5.4.6.dist-info/entry_points.txt +105 -0
- pyegeria-5.4.6.dist-info/top_level.txt +3 -0
- commands/README.md +0 -47
- commands/cat/README.md +0 -16
- commands/cat/debug_log.2025-09-14_11-03-29_316193.log.zip +0 -0
- commands/cat/debug_log.2025-09-15_19-06-37_086464.log.zip +0 -0
- commands/cat/debug_log.2025-09-20_11-10-54_418109.log.zip +0 -0
- commands/cli/debug_log +0 -0
- commands/cli/txt_custom_v2.tcss +0 -19
- commands/doc/README.md +0 -145
- commands/doc/Visual Command Reference/README.md +0 -511
- commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
- commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
- commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
- commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
- commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
- commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
- commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
- commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
- commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
- commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
- commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
- commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/elements/get_elements_of_om_type 2024-12-16 at 14.39.59@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type 2024-12-16 at 14.24.18@2x.png +0 -0
- 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
- 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
- commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/detailed_governance_action_processes 2024-12-16 at 15.16.26@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
- 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
- commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
- commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
- commands/doc/glossary/basic-glossary-tui.md +0 -109
- commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
- commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
- commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
- commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
- commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
- commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
- commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
- commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
- commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
- commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
- commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
- commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
- commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
- commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
- commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
- commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
- commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
- commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
- commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
- commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
- commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
- commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
- commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
- commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
- commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
- commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
- commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
- commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
- commands/doc/glossary/images/tui-load-archive.png +0 -0
- commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
- commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
- commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
- commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
- commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -346
- commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-list 2024-11-12 at 16.45.26.png +0 -0
- 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
- commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status 2024-11-10 at 18.15.42@2x.png +0 -0
- 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
- commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/tui-load-archive 2024-11-10 at 19.19.09@2x.png +0 -0
- 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
- commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
- commands/doc/hey_egeria: a pyegeria command line interface/images/tui-status-paging 2024-11-12 at 16.26.14@2x.png +0 -0
- commands/my/README.md +0 -17
- commands/ops/README.md +0 -24
- commands/tech/README.md +0 -24
- md_processing/.obsidian/app.json +0 -1
- md_processing/.obsidian/appearance.json +0 -1
- md_processing/.obsidian/community-plugins.json +0 -1
- md_processing/.obsidian/core-plugins.json +0 -33
- md_processing/.obsidian/workspace.json +0 -167
- md_processing/data/commands-working.json +0 -34850
- md_processing/data/commands.json +0 -51697
- md_processing/data/generated_format_sets.json +0 -4137
- md_processing/dr-egeria-outbox/DataStruct-DrE-2025-09-19-22-35-57.md +0 -46
- md_processing/dr-egeria-outbox/Digital Products-2025-09-21-16-52-50.md +0 -51
- md_processing/dr-egeria-outbox/Digital-Product-Catalog-2025-09-21-16-55-19.md +0 -77
- md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
- md_processing/md_processing_utils/debug_log +0 -84
- md_processing/md_processing_utils/dr-egeria-help-2025-09-09T11:10:03.md +0 -3305
- md_processing/md_processing_utils/dr-egeria-help-2025-09-10T14:49:49.md +0 -3460
- md_processing/md_processing_utils/dr-egeria-help-2025-09-10T14:57:46.md +0 -472
- pyegeria/README.md +0 -35
- pyegeria-5.4.4.8.dist-info/RECORD +0 -308
- pyegeria-5.4.4.8.dist-info/entry_points.txt +0 -105
- {pyegeria-5.4.4.8.dist-info → pyegeria-5.4.6.dist-info/licenses}/LICENSE +0 -0
File without changes
|
File without changes
|
commands/cat/get_collection.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
commands/cat/list_assets.py
CHANGED
File without changes
|
commands/cat/list_cert_types.py
CHANGED
File without changes
|
commands/cat/list_collections.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
commands/cat/list_glossaries.py
CHANGED
File without changes
|
commands/cat/list_projects.py
CHANGED
File without changes
|
commands/cat/list_tech_types.py
CHANGED
File without changes
|
commands/cat/list_terms.py
CHANGED
File without changes
|
commands/cat/list_todos.py
CHANGED
File without changes
|
commands/cli/egeria.py
CHANGED
File without changes
|
commands/my/list_my_profile.py
CHANGED
File without changes
|
commands/my/list_my_roles.py
CHANGED
File without changes
|
commands/my/monitor_my_todos.py
CHANGED
File without changes
|
File without changes
|
commands/ops/list_archives.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
commands/tech/get_guid_info.py
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
md_processing/__init__.py
CHANGED
@@ -16,6 +16,7 @@ from md_processing.md_commands.product_manager_commands import (process_digital_
|
|
16
16
|
process_product_dependency_command,
|
17
17
|
process_attach_collection_command,
|
18
18
|
process_attach_subscriber_command,
|
19
|
+
process_csv_element_upsert_command,
|
19
20
|
)
|
20
21
|
|
21
22
|
from md_processing.md_commands.solution_architect_commands import (process_blueprint_upsert_command,
|
@@ -41,6 +42,7 @@ from md_processing.md_commands.ext_ref_commands import (process_external_referen
|
|
41
42
|
process_link_to_media_reference_command,
|
42
43
|
process_link_to_external_reference_command,
|
43
44
|
process_link_to_cited_document_command,
|
45
|
+
|
44
46
|
)
|
45
47
|
|
46
48
|
# Re-export all functions from the original md_processing_utils.py to maintain backward compatibility
|
md_processing/dr_egeria.py
CHANGED
@@ -12,8 +12,8 @@ from .md_commands.project_commands import process_link_project_dependency_comman
|
|
12
12
|
|
13
13
|
log_format = "{time} | {level} | {function} | {line} | {message} | {extra}"
|
14
14
|
logger.remove()
|
15
|
-
logger.add(sys.stderr, level="
|
16
|
-
logger.add("debug_log.log", rotation="1 day", retention="1 week", compression="zip", level="
|
15
|
+
logger.add(sys.stderr, level="ERROR", format=log_format, colorize=True)
|
16
|
+
logger.add("debug_log.log", rotation="1 day", retention="1 week", compression="zip", level="INFO", format=log_format,
|
17
17
|
colorize=True)
|
18
18
|
|
19
19
|
from rich import print
|
@@ -23,7 +23,7 @@ from md_processing import (extract_command, process_glossary_upsert_command, pro
|
|
23
23
|
process_provenance_command, get_current_datetime_string,
|
24
24
|
process_project_upsert_command, command_list, process_blueprint_upsert_command,
|
25
25
|
process_solution_component_upsert_command, process_component_link_unlink_command,
|
26
|
-
|
26
|
+
process_csv_element_upsert_command,
|
27
27
|
process_link_term_term_relationship_command,
|
28
28
|
process_information_supply_chain_upsert_command,
|
29
29
|
process_information_supply_chain_link_unlink_command, process_sol_arch_list_command,
|
@@ -202,6 +202,9 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
|
|
202
202
|
"Create Product Subscription", "Update Agreement", "Update Data Sharing Agreement",
|
203
203
|
"Update Digital Subscription", "Update Product Subscription"]:
|
204
204
|
result = process_agreement_upsert_command(client, current_block, directive)
|
205
|
+
elif potential_command in ["Create CSV File"]:
|
206
|
+
result = process_csv_element_upsert_command(client, current_block, directive)
|
207
|
+
|
205
208
|
elif potential_command in SIMPLE_COLLECTIONS:
|
206
209
|
result = process_collection_upsert_command(client, current_block, directive)
|
207
210
|
elif potential_command in GOV_COM_LIST:
|
@@ -296,7 +299,7 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
|
|
296
299
|
process_current_block(current_block)
|
297
300
|
|
298
301
|
# Join the final output list into a single string
|
299
|
-
final_output = "\n".join(final_output)
|
302
|
+
final_output = "\n".join(final_output) if isinstance(final_output, list) else final_output
|
300
303
|
|
301
304
|
try:
|
302
305
|
if updated:
|
@@ -1,6 +1,11 @@
|
|
1
|
-
"""
|
1
|
+
"""PDX-License-Identifier: Apache-2.0
|
2
|
+
Copyright Contributors to the ODPi Egeria project.
|
3
|
+
|
2
4
|
This file contains term-related object_action functions for processing Egeria Markdown
|
5
|
+
|
6
|
+
|
3
7
|
"""
|
8
|
+
|
4
9
|
import json
|
5
10
|
import os
|
6
11
|
import sys
|
@@ -453,7 +458,7 @@ def process_data_spec_upsert_command(egeria_client: EgeriaTech, txt: str, direct
|
|
453
458
|
in_data_spec_valid = attributes.get('In Data Specification', {}).get('valid', None)
|
454
459
|
in_data_spec_exists = attributes.get('In Data Specification', {}).get('exists', None)
|
455
460
|
output_set = make_format_set_name_from_type(object_type)
|
456
|
-
|
461
|
+
object_type = "DataSpec"
|
457
462
|
print(Markdown(parsed_output['display']))
|
458
463
|
|
459
464
|
if directive == "display":
|
@@ -482,7 +487,7 @@ def process_data_spec_upsert_command(egeria_client: EgeriaTech, txt: str, direct
|
|
482
487
|
f"==> Validation of {command} completed successfully! Proceeding to apply the changes.\n"))
|
483
488
|
|
484
489
|
body = set_update_body(object_type, attributes)
|
485
|
-
body['properties'] = set_element_prop_body(
|
490
|
+
body['properties'] = set_element_prop_body(object_type, qualified_name, attributes)
|
486
491
|
|
487
492
|
egeria_client.update_collection(guid, body)
|
488
493
|
if status:
|
@@ -174,16 +174,29 @@ def process_collection_upsert_command(egeria_client: EgeriaTech, txt: str, direc
|
|
174
174
|
|
175
175
|
guid = parsed_output.get('guid', None)
|
176
176
|
|
177
|
-
|
177
|
+
|
178
178
|
|
179
179
|
logger.debug(json.dumps(parsed_output, indent=4))
|
180
180
|
|
181
181
|
attributes = parsed_output['attributes']
|
182
182
|
|
183
183
|
display_name = attributes['Display Name'].get('value', None)
|
184
|
+
version = attributes['Version Identifier'].get('value', None)
|
184
185
|
status = attributes.get('Status', {}).get('value', None)
|
185
186
|
output_set = make_format_set_name_from_type(object_type)
|
187
|
+
if object_type in ["Root Collection", "Folder"]:
|
188
|
+
obj = "Collection"
|
189
|
+
if object_type == "Folder":
|
190
|
+
qn_prefix = "Folder"
|
191
|
+
elif object_type == "Root Collection":
|
192
|
+
qn_prefix = "Root"
|
193
|
+
|
194
|
+
qualified_name = egeria_client.__create_qualified_name__(qn_prefix, display_name, LOCAL_QUALIFIER,
|
195
|
+
version_identifier=version)
|
186
196
|
|
197
|
+
else:
|
198
|
+
obj = object_type
|
199
|
+
print(Markdown(parsed_output['display']))
|
187
200
|
|
188
201
|
if directive == "display":
|
189
202
|
|
@@ -197,17 +210,7 @@ def process_collection_upsert_command(egeria_client: EgeriaTech, txt: str, direc
|
|
197
210
|
|
198
211
|
elif directive == "process":
|
199
212
|
try:
|
200
|
-
if object_type in ["Root Collection", "Folder"]:
|
201
|
-
obj = "Collection"
|
202
|
-
if object_type == "Folder":
|
203
|
-
qn_prefix = "Folder"
|
204
|
-
elif object_type == "Root Collection":
|
205
|
-
qn_prefix = "Root"
|
206
213
|
|
207
|
-
qualified_name = egeria_client.__create_qualified_name__(qn_prefix, element_name, LOCAL_QUALIFIER, version_identifier=version)
|
208
|
-
|
209
|
-
else:
|
210
|
-
obj = object_type
|
211
214
|
|
212
215
|
if object_action == "Update":
|
213
216
|
if not exists:
|
@@ -262,7 +265,7 @@ def process_collection_upsert_command(egeria_client: EgeriaTech, txt: str, direc
|
|
262
265
|
})
|
263
266
|
msg = f"\nCreated Element `{display_name}` with GUID {guid}\n\n___"
|
264
267
|
# todo - add the source member asset to the product manager
|
265
|
-
#
|
268
|
+
# create_elem_from_template
|
266
269
|
# add this guid to the product collection
|
267
270
|
logger.success(msg)
|
268
271
|
return egeria_client.get_collection_by_guid(guid, obj, output_format='MD', output_format_set=output_set)
|
@@ -628,6 +631,106 @@ def process_agreement_upsert_command(egeria_client: EgeriaTech, txt: str, direct
|
|
628
631
|
|
629
632
|
|
630
633
|
|
634
|
+
@logger.catch
|
635
|
+
def process_csv_element_upsert_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
|
636
|
+
"""
|
637
|
+
Processes a create CSV element command by extracting key attributes and calling the pyegeria
|
638
|
+
api that creates a csv element from template.
|
639
|
+
|
640
|
+
:param txt: A string representing the input cell to be processed for
|
641
|
+
extracting glossary-related attributes.
|
642
|
+
:param directive: an optional string indicating the directive to be used - display, validate or execute
|
643
|
+
:return: A string summarizing the outcome of the processing.
|
644
|
+
"""
|
645
|
+
command, object_type, object_action = extract_command_plus(txt)
|
646
|
+
print(Markdown(f"# {command}\n"))
|
647
|
+
|
648
|
+
parsed_output = parse_upsert_command(egeria_client, object_type, object_action, txt, directive)
|
649
|
+
if not parsed_output:
|
650
|
+
logger.error(f"No output for `{object_action}`")
|
651
|
+
return None
|
652
|
+
|
653
|
+
valid = parsed_output['valid']
|
654
|
+
exists = parsed_output['exists']
|
655
|
+
|
656
|
+
qualified_name = parsed_output.get('qualified_name', None)
|
657
|
+
guid = parsed_output.get('guid', None)
|
658
|
+
|
659
|
+
print(Markdown(parsed_output['display']))
|
660
|
+
|
661
|
+
logger.debug(json.dumps(parsed_output, indent=4))
|
662
|
+
|
663
|
+
attributes = parsed_output['attributes']
|
664
|
+
|
665
|
+
display_name = attributes['Display Name'].get('value', None)
|
666
|
+
status = attributes.get('Status', {}).get('value', None)
|
667
|
+
output_set = make_format_set_name_from_type(object_type)
|
668
|
+
|
669
|
+
file_name = attributes.get('File Name', {}).get('value', None)
|
670
|
+
file_type = attributes.get('File Type', {}).get('value', None)
|
671
|
+
file_path = attributes.get('File Path', {}).get('value', None)
|
672
|
+
file_encoding = attributes.get('File Encoding', {}).get('value', 'UTF-8')
|
673
|
+
file_extension = attributes.get('File Extension', {}).get('value', 'csv')
|
674
|
+
file_system_name = attributes.get('File System Name', {}).get('value', None)
|
675
|
+
version_identifier = attributes.get('Version Identifier', {}).get('value', None)
|
676
|
+
description = attributes.get('Description', {}).get('value', None)
|
677
|
+
|
678
|
+
if directive == "display":
|
679
|
+
|
680
|
+
return None
|
681
|
+
elif directive == "validate":
|
682
|
+
if valid:
|
683
|
+
print(Markdown(f"==> Validation of {command} completed successfully!\n"))
|
684
|
+
else:
|
685
|
+
msg = f"Validation failed for object_action `{command}`\n"
|
686
|
+
return valid
|
687
|
+
|
688
|
+
elif directive == "process":
|
689
|
+
try:
|
690
|
+
|
691
|
+
if object_action == "Create":
|
692
|
+
if valid is False and exists:
|
693
|
+
msg = (f" Element `{display_name}` already exists and result document updated changing "
|
694
|
+
f"`Create` to `Update` in processed output\n\n___")
|
695
|
+
logger.error(msg)
|
696
|
+
return update_a_command(txt, object_action, object_type, qualified_name, guid)
|
697
|
+
|
698
|
+
else:
|
699
|
+
guid = egeria_client.get_create_csv_data_file_element_from_template(
|
700
|
+
file_name, file_type, file_path, version_identifier, file_encoding, file_extension, file_system_name, description)
|
701
|
+
|
702
|
+
if guid:
|
703
|
+
update_element_dictionary(qualified_name, {
|
704
|
+
'guid': guid, 'display_name': display_name
|
705
|
+
})
|
706
|
+
msg = f"Created Element `{display_name}` with GUID {guid}\n\n___"
|
707
|
+
logger.success(msg)
|
708
|
+
output_md = (f"# Create CSV File\n\n## Display Name:\n\n {display_name}\n\n"
|
709
|
+
f"## File Type:\n\n {file_type}\n\n## File Path:\n\n {file_path}\n\n"
|
710
|
+
f"## File Encoding:\n\n {file_encoding}\n\n## File Extension:\n\n {file_extension}\n\n"
|
711
|
+
f"## File System Name:\n\n {file_system_name}\n\n## Version Identifier:\n\n {version_identifier}\n\n"
|
712
|
+
f"## Description:\n\n {description}\n\n"
|
713
|
+
f"## Qualified Name\n\n {qualified_name}\n\n"
|
714
|
+
f"## GUID:\n\n {guid}\n\n"
|
715
|
+
)
|
716
|
+
return output_md
|
717
|
+
else:
|
718
|
+
msg = f"Failed to create element `{display_name}` with GUID {guid}\n\n___"
|
719
|
+
logger.error(msg)
|
720
|
+
return None
|
721
|
+
else:
|
722
|
+
logger.error(f"Currently only the Create action is supported for this command: {command}")
|
723
|
+
|
724
|
+
except PyegeriaException as e:
|
725
|
+
logger.error(f"Pyegeria error performing {command}: {e}")
|
726
|
+
print_exception_table(e)
|
727
|
+
return None
|
728
|
+
except Exception as e:
|
729
|
+
logger.error(f"Error performing {command}: {e}")
|
730
|
+
else:
|
731
|
+
logger.error(f"Invalid directive `{directive}`")
|
732
|
+
return None
|
733
|
+
|
631
734
|
|
632
735
|
|
633
736
|
def process_link_agreement_item_command(egeria_client: EgeriaTech, txt: str,
|
@@ -230,6 +230,9 @@ def process_output_command(egeria_client: EgeriaTech, txt: str, directive: str =
|
|
230
230
|
print(Markdown(f"# {command}\n"))
|
231
231
|
|
232
232
|
parsed_output = parse_view_command(egeria_client, object_type, object_action, txt, directive)
|
233
|
+
if parsed_output is None:
|
234
|
+
logger.error(f"No valid output found for command '{command}'.")
|
235
|
+
return None
|
233
236
|
|
234
237
|
attributes = parsed_output['attributes']
|
235
238
|
|
@@ -242,7 +242,8 @@ command_list = ["Provenance", "Create Glossary", "Update Glossary", "Create Term
|
|
242
242
|
"Link Governance Drivers", "Detach Governance Drivers",
|
243
243
|
"Link Governance Policies", "Detach Governance Policies",
|
244
244
|
"Link Governance Controls", "Detach Governance Controls",
|
245
|
-
"Link Governed By", "Attach Governed By", "Detach Governed By"
|
245
|
+
"Link Governed By", "Attach Governed By", "Detach Governed By",
|
246
|
+
"Create CSV File"
|
246
247
|
|
247
248
|
]
|
248
249
|
command_list.extend(LIST_COMMANDS)
|
pyegeria/__init__.py
CHANGED
@@ -68,6 +68,7 @@ from .x_action_author_omvs import ActionAuthor
|
|
68
68
|
from .template_manager_omvs import TemplateManager
|
69
69
|
from .data_designer import DataDesigner
|
70
70
|
from ._output_formats import select_output_format_set
|
71
|
+
from .mcp_adapter import list_reports, describe_report, run_report
|
71
72
|
#
|
72
73
|
global template_guids, integration_guids
|
73
74
|
|
pyegeria/_client_new.py
CHANGED
@@ -1081,7 +1081,7 @@ class Client2:
|
|
1081
1081
|
logger.info(response.json())
|
1082
1082
|
return response.json().get("guid", "NO_GUID_RETURNED")
|
1083
1083
|
|
1084
|
-
async def
|
1084
|
+
async def _async_create_element_from_template(self, url: str, body: dict | TemplateRequestBody = None) -> str:
|
1085
1085
|
validated_body = self.validate_new_element_from_template_request(body)
|
1086
1086
|
json_body = validated_body.model_dump_json(indent=2, exclude_none=True)
|
1087
1087
|
logger.info(json_body)
|
pyegeria/_output_formats.py
CHANGED
@@ -581,6 +581,9 @@ base_output_format_sets = FormatSetDict({
|
|
581
581
|
Column(name='Members', key='members', format=True),
|
582
582
|
Column(name='Uses Products', key='uses_digital_products'),
|
583
583
|
Column(name='Used by Products', key='used_by_digital_products'),
|
584
|
+
Column(name='Product Manager', key='assigned_actors'),
|
585
|
+
Column(name='License', key='governed_by'),
|
586
|
+
Column(name='Solution Blueprint', key='solution_designs'),
|
584
587
|
]),
|
585
588
|
Format(
|
586
589
|
types=[ "REPORT", "HTML"],
|
@@ -595,6 +598,9 @@ base_output_format_sets = FormatSetDict({
|
|
595
598
|
Column(name='Members', key='members', format=True),
|
596
599
|
Column(name='Uses Products', key='uses_digital_products'),
|
597
600
|
Column(name='Used by Products', key='used_by_digital_products'),
|
601
|
+
Column(name='Product Manager', key='assigned_actors'),
|
602
|
+
Column(name='License', key='governed_by'),
|
603
|
+
Column(name='Solution Blueprint', key='solution_designs'),
|
598
604
|
Column(name="Mermaid",key = "mermaid")
|
599
605
|
],
|
600
606
|
)
|
@@ -1163,7 +1169,7 @@ generated_format_sets = FormatSetDict({
|
|
1163
1169
|
'metadata_element_types': ['DataDictionary']})),
|
1164
1170
|
'Data-Field-DrE': FormatSet(target_type='Data-Field-DrE', heading='Data-Field-DrE Attributes',
|
1165
1171
|
description='Auto-generated format for Data Field (Create).', formats=[
|
1166
|
-
Format(types=['ALL'], columns=[Column(name='Display Name', key='display_name'),
|
1172
|
+
Format(types=['ALL', 'MD'], columns=[Column(name='Display Name', key='display_name'),
|
1167
1173
|
Column(name='Description', key='description'),
|
1168
1174
|
Column(name='Category', key='category'),
|
1169
1175
|
Column(name='Status', key='element_status'),
|
@@ -2173,15 +2179,16 @@ output_format_sets = combine_format_set_dicts(base_output_format_sets, generated
|
|
2173
2179
|
|
2174
2180
|
def select_output_format_set(kind: str, output_type: str) -> dict | None:
|
2175
2181
|
"""
|
2176
|
-
|
2177
|
-
If output_type = `ANY` that indicates this is just a test to see of the output format set exists.
|
2182
|
+
Retrieve the appropriate output set configuration dictionary based on `kind` and `output_type`.
|
2178
2183
|
|
2179
|
-
|
2180
|
-
|
2181
|
-
|
2184
|
+
Intent of special output_type values:
|
2185
|
+
- "ANY": Discovery-only. Resolve the FormatSet (including aliases), action, and metadata, but DO NOT
|
2186
|
+
resolve a concrete format. Callers typically use this to check existence or to later pick a specific type
|
2187
|
+
via get_output_format_type_match(...).
|
2182
2188
|
|
2183
|
-
|
2184
|
-
|
2189
|
+
:param kind: The kind of output set (e.g., "Referenceable", "Collections"). Aliases are supported.
|
2190
|
+
:param output_type: The desired output format type (e.g., "DICT", "LIST", "REPORT"), or "ANY".
|
2191
|
+
:return: The matched output set dictionary or None if no match is found.
|
2185
2192
|
"""
|
2186
2193
|
# Normalize the output type to uppercase for consistency
|
2187
2194
|
output_type = output_type.upper()
|
@@ -2250,6 +2257,41 @@ def output_format_set_list() -> list[str]:
|
|
2250
2257
|
return list(output_format_sets.keys())
|
2251
2258
|
|
2252
2259
|
|
2260
|
+
def list_mcp_format_sets() -> dict:
|
2261
|
+
"""
|
2262
|
+
Returns only those format set names that can be safely exposed as MCP tools.
|
2263
|
+
A format set is eligible if it has a DICT format or an ALL catch-all format.
|
2264
|
+
|
2265
|
+
This allows MCP to prefer machine-consumable outputs and avoid side effects.
|
2266
|
+
"""
|
2267
|
+
# eligible: list[str] = []
|
2268
|
+
# for name, fs in output_format_sets.items():
|
2269
|
+
# try:
|
2270
|
+
# # fs is a FormatSet
|
2271
|
+
# has_dict = any("DICT" in f.types for f in fs.formats)
|
2272
|
+
# has_all = any("ALL" in f.types for f in fs.formats)
|
2273
|
+
# if has_dict or has_all:
|
2274
|
+
# eligible.append(name)
|
2275
|
+
# except Exception:
|
2276
|
+
# # Defensive: skip malformed entries
|
2277
|
+
# continue
|
2278
|
+
# return sorted(eligible)
|
2279
|
+
return {
|
2280
|
+
name: {
|
2281
|
+
"description": fs.description,
|
2282
|
+
"target_type": fs.target_type,
|
2283
|
+
"required_params": ", ".join(fs.action.required_params) or "",
|
2284
|
+
"optional_params": ", ".join(fs.action.optional_params) or "",
|
2285
|
+
}
|
2286
|
+
for name, fs in sorted(output_format_sets.items())
|
2287
|
+
if fs and fs.action and any(
|
2288
|
+
format_type in ["DICT", "ALL"]
|
2289
|
+
for format_obj in fs.formats
|
2290
|
+
for format_type in format_obj.types
|
2291
|
+
)
|
2292
|
+
}
|
2293
|
+
|
2294
|
+
|
2253
2295
|
def get_output_format_set_heading(format_set: str) -> str:
|
2254
2296
|
"""
|
2255
2297
|
Gets the heading of a format set.
|