pyegeria 5.3.9.5__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.
Files changed (240) hide show
  1. {pyegeria/commands → commands}/cat/Dr-Egeria_md-orig.py +10 -11
  2. {pyegeria/commands → commands}/cat/dr_egeria_jupyter.py +4 -4
  3. {pyegeria/commands → commands}/cat/dr_egeria_md.py +36 -16
  4. {pyegeria/commands → commands}/cat/list_categories.py +3 -3
  5. {pyegeria/commands → commands}/cat/list_collections.py +59 -16
  6. commands/cat/list_data_structures.py +223 -0
  7. {pyegeria/commands → commands}/cat/list_glossaries.py +3 -3
  8. {pyegeria/commands → commands}/cat/list_terms.py +4 -4
  9. {pyegeria/commands → commands}/cli/__init__.py +1 -1
  10. {pyegeria/commands → commands}/cli/egeria.py +91 -87
  11. {pyegeria/commands → commands}/cli/egeria_cat.py +29 -29
  12. {pyegeria/commands → commands}/cli/egeria_login_tui.py +1 -1
  13. {pyegeria/commands → commands}/cli/egeria_my.py +8 -8
  14. {pyegeria/commands → commands}/cli/egeria_ops.py +24 -24
  15. {pyegeria/commands → commands}/cli/egeria_tech.py +34 -34
  16. commands/tech/generic_actions.py +74 -0
  17. {pyegeria/commands → commands}/tech/list_information_supply_chains.py +3 -1
  18. pyegeria/__init__.py +10 -9
  19. pyegeria/_client.py +2 -49
  20. pyegeria/collection_manager_omvs.py +484 -735
  21. pyegeria/data_designer_omvs.py +251 -103
  22. pyegeria/egeria_client.py +5 -0
  23. pyegeria/egeria_tech_client.py +10 -1
  24. pyegeria/glossary_browser_omvs.py +144 -260
  25. pyegeria/md_processing_helpers.py +1 -1
  26. pyegeria/md_processing_utils.py +114 -32
  27. pyegeria/md_processing_utils_orig.py +19 -19
  28. pyegeria/mermaid_utilities.py +2 -2
  29. pyegeria/output_formatter.py +389 -0
  30. {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.6.dist-info}/METADATA +1 -1
  31. pyegeria-5.3.9.6.dist-info/RECORD +141 -0
  32. pyegeria-5.3.9.6.dist-info/entry_points.txt +99 -0
  33. pyegeria/commands/README.md +0 -47
  34. pyegeria/commands/__init__.py +0 -30
  35. pyegeria/commands/cat/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
  36. pyegeria/commands/doc/README.md +0 -145
  37. pyegeria/commands/doc/Visual Command Reference/README.md +0 -511
  38. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
  39. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
  40. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
  41. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
  42. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
  43. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
  44. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
  45. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
  46. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
  47. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
  48. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
  49. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
  50. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
  51. pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
  52. pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
  53. pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
  54. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
  55. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
  56. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
  57. pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
  58. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
  59. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
  60. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
  61. pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
  62. pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
  63. pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
  64. pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
  65. pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
  66. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
  67. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
  68. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
  69. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
  70. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
  71. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
  72. pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
  73. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
  74. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
  75. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
  76. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
  77. 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
  78. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
  79. 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
  80. 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
  81. 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
  82. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
  83. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
  84. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
  85. 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
  86. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
  87. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
  88. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
  89. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
  90. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
  91. 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
  92. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
  93. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
  94. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
  95. pyegeria/commands/doc/glossary/basic-glossary-tui.md +0 -109
  96. pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
  97. pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
  98. pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
  99. pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
  100. pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
  101. pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
  102. pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
  103. pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
  104. pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
  105. pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
  106. pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
  107. pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
  108. pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
  109. pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
  110. pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
  111. pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
  112. pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
  113. pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
  114. pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
  115. pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
  116. pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
  117. pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
  118. pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
  119. pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
  120. pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
  121. pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
  122. pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
  123. pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
  124. pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
  125. pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
  126. pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
  127. pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
  128. pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
  129. pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
  130. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -346
  131. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
  132. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
  133. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
  134. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
  135. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
  136. 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
  137. 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
  138. 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
  139. 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
  140. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
  141. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
  142. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
  143. 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
  144. 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
  145. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
  146. 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
  147. pyegeria/dr_egeria_state.py +0 -67
  148. pyegeria/md_processing/__init__.py +0 -51
  149. pyegeria/md_processing/commands/__init__.py +0 -3
  150. pyegeria/md_processing/commands/blueprint_commands.py +0 -307
  151. pyegeria/md_processing/commands/category_commands.py +0 -242
  152. pyegeria/md_processing/commands/glossary_commands.py +0 -225
  153. pyegeria/md_processing/commands/project_commands.py +0 -169
  154. pyegeria/md_processing/commands/term_commands.py +0 -524
  155. pyegeria/md_processing/utils/__init__.py +0 -3
  156. pyegeria/md_processing/utils/common_utils.py +0 -101
  157. pyegeria/md_processing/utils/display_utils.py +0 -53
  158. pyegeria/md_processing/utils/extraction_utils.py +0 -177
  159. pyegeria/md_processing/utils/validation_utils.py +0 -208
  160. pyegeria-5.3.9.5.dist-info/RECORD +0 -265
  161. pyegeria-5.3.9.5.dist-info/entry_points.txt +0 -98
  162. {pyegeria/commands → commands}/cat/README.md +0 -0
  163. {pyegeria/commands → commands}/cat/__init__.py +0 -0
  164. {pyegeria/commands → commands}/cat/exp_list_glossaries.py +0 -0
  165. {pyegeria/commands → commands}/cat/get_asset_graph.py +0 -0
  166. {pyegeria/commands → commands}/cat/get_collection.py +0 -0
  167. {pyegeria/commands → commands}/cat/get_project_dependencies.py +0 -0
  168. {pyegeria/commands → commands}/cat/get_project_structure.py +0 -0
  169. {pyegeria/commands → commands}/cat/get_tech_type_elements.py +0 -0
  170. {pyegeria/commands → commands}/cat/glossary_actions.py +0 -0
  171. {pyegeria/commands → commands}/cat/list_assets.py +0 -0
  172. {pyegeria/commands → commands}/cat/list_cert_types.py +0 -0
  173. {pyegeria/commands → commands}/cat/list_deployed_catalogs.py +0 -0
  174. {pyegeria/commands → commands}/cat/list_deployed_database_schemas.py +0 -0
  175. {pyegeria/commands → commands}/cat/list_deployed_databases.py +0 -0
  176. {pyegeria/commands → commands}/cat/list_deployed_servers.py +0 -0
  177. {pyegeria/commands → commands}/cat/list_projects.py +0 -0
  178. {pyegeria/commands → commands}/cat/list_tech_type_elements.py +0 -0
  179. {pyegeria/commands → commands}/cat/list_tech_types.py +0 -0
  180. {pyegeria/commands → commands}/cat/list_todos.py +0 -0
  181. {pyegeria/commands → commands}/cat/list_user_ids.py +0 -0
  182. {pyegeria/commands → commands}/cli/ops_config.py +0 -0
  183. {pyegeria/commands → commands}/cli/txt_custom_v2.tcss +0 -0
  184. {pyegeria/commands → commands}/my/README.md +0 -0
  185. {pyegeria/commands → commands}/my/__init__.py +0 -0
  186. {pyegeria/commands → commands}/my/list_my_profile.py +0 -0
  187. {pyegeria/commands → commands}/my/list_my_roles.py +0 -0
  188. {pyegeria/commands → commands}/my/monitor_my_todos.py +0 -0
  189. {pyegeria/commands → commands}/my/monitor_open_todos.py +0 -0
  190. {pyegeria/commands → commands}/my/todo_actions.py +0 -0
  191. {pyegeria/commands → commands}/ops/README.md +0 -0
  192. {pyegeria/commands → commands}/ops/__init__.py +0 -0
  193. {pyegeria/commands → commands}/ops/gov_server_actions.py +0 -0
  194. {pyegeria/commands → commands}/ops/list_archives.py +0 -0
  195. {pyegeria/commands → commands}/ops/list_catalog_targets.py +0 -0
  196. {pyegeria/commands → commands}/ops/load_archive.py +0 -0
  197. {pyegeria/commands → commands}/ops/monitor_asset_events.py +0 -0
  198. {pyegeria/commands → commands}/ops/monitor_engine_activity.py +0 -0
  199. {pyegeria/commands → commands}/ops/monitor_engine_activity_c.py +0 -0
  200. {pyegeria/commands → commands}/ops/monitor_gov_eng_status.py +0 -0
  201. {pyegeria/commands → commands}/ops/monitor_integ_daemon_status.py +0 -0
  202. {pyegeria/commands → commands}/ops/monitor_platform_status.py +0 -0
  203. {pyegeria/commands → commands}/ops/monitor_server_startup.py +0 -0
  204. {pyegeria/commands → commands}/ops/monitor_server_status.py +0 -0
  205. {pyegeria/commands → commands}/ops/orig_monitor_server_list.py +0 -0
  206. {pyegeria/commands → commands}/ops/orig_monitor_server_status.py +0 -0
  207. {pyegeria/commands → commands}/ops/refresh_integration_daemon.py +0 -0
  208. {pyegeria/commands → commands}/ops/restart_integration_daemon.py +0 -0
  209. {pyegeria/commands → commands}/ops/table_integ_daemon_status.py +0 -0
  210. {pyegeria/commands → commands}/ops/x_engine_actions.py +0 -0
  211. {pyegeria/commands → commands}/tech/README.md +0 -0
  212. {pyegeria/commands → commands}/tech/__init__.py +0 -0
  213. {pyegeria/commands → commands}/tech/get_element_info.py +0 -0
  214. {pyegeria/commands → commands}/tech/get_guid_info.py +0 -0
  215. {pyegeria/commands → commands}/tech/get_tech_details.py +0 -0
  216. {pyegeria/commands → commands}/tech/get_tech_type_template.py +0 -0
  217. {pyegeria/commands → commands}/tech/list_all_om_type_elements.py +0 -0
  218. {pyegeria/commands → commands}/tech/list_all_om_type_elements_x.py +0 -0
  219. {pyegeria/commands → commands}/tech/list_all_related_elements.py +0 -0
  220. {pyegeria/commands → commands}/tech/list_anchored_elements.py +0 -0
  221. {pyegeria/commands → commands}/tech/list_asset_types.py +0 -0
  222. {pyegeria/commands → commands}/tech/list_elements_by_classification_by_property_value.py +0 -0
  223. {pyegeria/commands → commands}/tech/list_elements_by_property_value.py +0 -0
  224. {pyegeria/commands → commands}/tech/list_elements_by_property_value_x.py +0 -0
  225. {pyegeria/commands → commands}/tech/list_elements_for_classification.py +0 -0
  226. {pyegeria/commands → commands}/tech/list_gov_action_processes.py +0 -0
  227. {pyegeria/commands → commands}/tech/list_registered_services.py +0 -0
  228. {pyegeria/commands → commands}/tech/list_related_elements_with_prop_value.py +0 -0
  229. {pyegeria/commands → commands}/tech/list_related_specification.py +0 -0
  230. {pyegeria/commands → commands}/tech/list_relationship_types.py +0 -0
  231. {pyegeria/commands → commands}/tech/list_relationships.py +0 -0
  232. {pyegeria/commands → commands}/tech/list_solution_blueprints.py +0 -0
  233. {pyegeria/commands → commands}/tech/list_solution_components.py +0 -0
  234. {pyegeria/commands → commands}/tech/list_solution_roles.py +0 -0
  235. {pyegeria/commands → commands}/tech/list_tech_templates.py +0 -0
  236. {pyegeria/commands → commands}/tech/list_valid_metadata_values.py +0 -0
  237. {pyegeria/commands → commands}/tech/table_tech_templates.py +0 -0
  238. {pyegeria/commands → commands}/tech/x_list_related_elements.py +0 -0
  239. {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.6.dist-info}/LICENSE +0 -0
  240. {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.6.dist-info}/WHEEL +0 -0
@@ -1,53 +0,0 @@
1
- """
2
- This file contains display-related constants and formatting functions for Egeria Markdown processing
3
- """
4
-
5
- # Constants for element labels
6
- GLOSSARY_NAME_LABELS = ["Glossary Name", "Glossary", "Glossaries", "Owning Glossary", "In Glossary"]
7
- CATEGORY_NAME_LABELS = ["Glossary Category Name", "Glossary Category", "Glossary Categories", "Category Name",
8
- "Category", "Categories"]
9
- PARENT_CATEGORY_LABELS = ["Parent Category Name", "Parent Category", "parent category name", "parent category"]
10
- CHILD_CATEGORY_LABELS = ["Child Categories", "Child Category", "child category names", "child categories",
11
- "Child Category Names"]
12
- TERM_NAME_LABELS = ["Glossary Term Name", "Glossary Term", "Glossary Terms", "Term Name", "Term", "Terms", "Term Names"]
13
- PROJECT_NAME_LABELS = ["Project Name", "Project", "Project Names", "Projects"]
14
- BLUEPRINT_NAME_LABELS = ["Solution Blueprint Name", "Solution Blueprint", "Solution Blueprints", "Blueprint Name",
15
- "Blueprint", "Blueprints"]
16
- COMPONENT_NAME_LABELS = ["Solution Component Name", "Solution Component", "Solution Components", "Component Name",
17
- "Component", "Components", "Parent Components", "Parent Component"]
18
- SOLUTION_ROLE_LABELS = ["Solution Role Name", "Solution Role", "Solution Roles", "Role Name", "Role", "Roles"]
19
- SOLUTION_ACTOR_ROLE_LABELS = ["Solution Actor Role Name", "Solution Actor Role Names", "Solution Actor Role",
20
- "Solution Actor Roles", "Actor Role Name", "Actor Role", "Actor Roles",
21
- "Actor Role Names"]
22
- SOLUTION_LINKING_ROLE_LABELS = ["Solution Linking Role Name", "Solution Linking Role Names", "Solution Linking Role",
23
- "Solution Linking Roles", "Linking Role Name", "Linking Role", "Linking Roles",
24
- "Linking Role Names"]
25
- OUTPUT_LABELS = ["Output", "Output Format"]
26
- SEARCH_LABELS = ['Search String', 'Filter']
27
- GUID_LABELS = ['GUID', 'guid']
28
-
29
- # Constants for output formats
30
- ELEMENT_OUTPUT_FORMATS = ["LIST", "DICT", "MD", "FORM", "REPORT"]
31
-
32
- # Constants for term relationships
33
- TERM_RELATIONSHPS = [
34
- "Synonym",
35
- "Translation",
36
- "PreferredTerm",
37
- "TermISATYPEOFRelationship",
38
- "TermTYPEDBYRelationship",
39
- "Antonym",
40
- "ReplacementTerm",
41
- "ValidValue",
42
- "TermHASARelationship",
43
- "RelatedTerm",
44
- "ISARelationship"
45
- ]
46
-
47
- # List of supported commands
48
- command_list = ["Provenance", "Create Glossary", "Update Glossary", "Create Term", "Update Term", "List Terms", "List Term Details",
49
- "List Glossary Terms", "List Term History", "List Term Revision History", "List Term Update History",
50
- "List Glossary Structure", "List Glossaries", "List Categories", "List Glossary Categories",
51
- "Create Personal Project", "Update Personal Project", "Create Category", "Update Category",
52
- "Create Solution Blueprint", "Update Solution Blueprint", "Create Solution Component",
53
- "Update Solution Component", "Create Term-Term Relationship", "Update Term-Term Relationship",]
@@ -1,177 +0,0 @@
1
- """
2
- This file contains functions for extracting data from text for Egeria Markdown processing
3
- """
4
- import re
5
- from typing import List, Optional, Any, Tuple
6
-
7
- from pyegeria.md_processing.utils.common_utils import print_msg, INFO
8
-
9
- def extract_command_plus(block: str) -> tuple[str, str, str] | None:
10
- """
11
- Extracts a multi-word object and its associated action from the given block of text.
12
-
13
- This function searches for a pattern in the format of `#...##` or `#...\n`
14
- inside the provided string `block`. The matched pattern is split into
15
- two parts: the action and the object type. The action is expected to
16
- be the first part, while the rest is treated as the object type. If
17
- no match is found, the function returns None.
18
-
19
- Lines beginning with '>' are ignored.
20
-
21
- Args:
22
- block: A string containing the block of text to search for the
23
- command and action.
24
-
25
- Returns:
26
- A tuple containing the command, the object type and the object action if a
27
- match is found. Otherwise, returns None.
28
- """
29
- # Filter out lines beginning with '>'
30
- filtered_lines = [line for line in block.split('\n') if not line.strip().startswith('>')]
31
- filtered_block = '\n'.join(filtered_lines)
32
-
33
- match = re.search(r"#(.*?)(?:##|\n|$)", filtered_block) # Using a non capturing group
34
- if match:
35
- clean_match = match.group(1).strip()
36
- if ' ' in clean_match:
37
- parts = clean_match.split(' ')
38
- object_action = parts[0].strip()
39
- # Join the rest of the parts to allow object_type to be one or two words
40
- object_type = ' '.join(parts[1:]).strip()
41
- else:
42
- object_type = clean_match.split(' ')[1].strip()
43
- object_action = clean_match.split(' ')[0].strip()
44
-
45
- return clean_match, object_type, object_action
46
- return None
47
-
48
-
49
- def extract_command(block: str) -> str | None:
50
- """
51
- Extracts a command from a block of text that is contained between a single hash ('#') and
52
- either a double hash ('##'), a newline character, or the end of the string.
53
-
54
- The function searches for a specific pattern within the block of text and extracts the
55
- content that appears immediately after a single hash ('#'). Ensures that the extracted
56
- content is appropriately trimmed of leading or trailing whitespace, if present.
57
-
58
- Args:
59
- block: A string representing the block of text to process. Contains the content
60
- in which the command and delimiters are expected to be present.
61
-
62
- Returns:
63
- The extracted command as a string if a match is found, otherwise None.
64
- """
65
- match = re.search(r"#(.*?)(?:##|\n|$)", block) # Using a non capturing group
66
- if match:
67
- return match.group(1).strip()
68
- return None
69
-
70
-
71
- def extract_attribute(text: str, labels: list[str]) -> str | None:
72
- """
73
- Extracts the attribute value from a string.
74
-
75
- Args:
76
- text: The input string.
77
- labels: List of equivalent labels to search for
78
-
79
- Returns:
80
- The value of the attribute, or None if not found.
81
-
82
- Note:
83
- Lines beginning with '>' are ignored.
84
- """
85
- # Iterate over the list of labels
86
- for label in labels:
87
- # Construct pattern for the current label
88
- pattern = rf"## {re.escape(label)}\n(.*?)(?:#|___|>|$)" # modified from --- to enable embedded tables
89
- match = re.search(pattern, text, re.DOTALL)
90
- if match:
91
- # Extract matched text
92
- matched_text = match.group(1).strip()
93
-
94
- # Filter out lines beginning with '>'
95
- filtered_lines = [line for line in matched_text.split('\n') if not line.strip().startswith('>')]
96
- filtered_text = '\n'.join(filtered_lines)
97
-
98
- # Replace consecutive \n with a single \n
99
- extracted_text = re.sub(r'\n+', '\n', filtered_text)
100
- if not extracted_text.isspace() and extracted_text:
101
- return extracted_text # Return the cleaned text - I removed the title casing
102
-
103
- return None
104
-
105
-
106
- def process_simple_attribute(txt: str, labels: list[str], if_missing: str = INFO) -> str | None:
107
- """
108
- Processes a simple attribute from a string.
109
-
110
- Args:
111
- txt: The input string.
112
- labels: List of equivalent labels to search for
113
- if_missing: The message level to use if the attribute is missing.
114
-
115
- Returns:
116
- The value of the attribute, or None if not found.
117
- """
118
- from pyegeria.md_processing.utils.common_utils import debug_level, print_msg
119
-
120
- attribute = extract_attribute(txt, labels)
121
- if attribute is None and if_missing:
122
- msg = f"No {labels[0]} found"
123
- print_msg(if_missing, msg, debug_level)
124
- return attribute
125
-
126
-
127
- def process_name_list(egeria_client, element_type: str, txt: str, element_labels: list[str]) -> tuple[list, list, bool, bool]:
128
- """
129
- Processes a list of names from a string.
130
-
131
- Args:
132
- egeria_client: The Egeria client to use for validation.
133
- element_type: The type of element to process.
134
- txt: The input string.
135
- element_labels: List of equivalent labels to search for
136
-
137
- Returns:
138
- A tuple containing:
139
- - A list of element names
140
- - A list of element qualified names
141
- - A boolean indicating if all elements are valid
142
- - A boolean indicating if any elements exist
143
- """
144
- from pyegeria.md_processing.utils.common_utils import debug_level, print_msg
145
- from pyegeria.md_processing.utils.validation_utils import get_element_by_name
146
-
147
- element_names = []
148
- element_q_names = []
149
- all_valid = True
150
- any_exist = False
151
-
152
- # Get the list of element names
153
- element_list = process_simple_attribute(txt, element_labels)
154
- if element_list:
155
- # Split the list by commas or newlines
156
- element_names = list(filter(None, re.split(r'[,\n]+', element_list.strip())))
157
-
158
- # Validate each element
159
- for element_name in element_names:
160
- element_name = element_name.strip()
161
- if element_name:
162
- element = get_element_by_name(egeria_client, element_type, element_name)
163
- if element:
164
- any_exist = True
165
- element_q_name = element.get('qualifiedName', None)
166
- if element_q_name:
167
- element_q_names.append(element_q_name)
168
- else:
169
- all_valid = False
170
- msg = f"Element {element_name} has no qualified name"
171
- print_msg("ERROR", msg, debug_level)
172
- else:
173
- all_valid = False
174
- msg = f"Element {element_name} not found"
175
- print_msg("ERROR", msg, debug_level)
176
-
177
- return element_names, element_q_names, all_valid, any_exist
@@ -1,208 +0,0 @@
1
- """
2
- This file contains functions for validating data for Egeria Markdown processing
3
- """
4
- import re
5
- from typing import List, Optional, Any, Tuple
6
-
7
- from pyegeria._globals import NO_ELEMENTS_FOUND
8
- from pyegeria.dr_egeria_state import get_element_dictionary, update_element_dictionary, find_key_with_value
9
-
10
- def process_element_identifiers(egeria_client, element_type: str, element_labels: list[str], txt: str, action: str, version: str = None) -> tuple[str, str, bool, bool]:
11
- """
12
- Processes element identifiers from a string.
13
-
14
- Args:
15
- egeria_client: The Egeria client to use for validation.
16
- element_type: The type of element to process.
17
- element_labels: List of equivalent labels to search for
18
- txt: The input string.
19
- action: The action to perform (Create, Update, or Exists Required).
20
- version: The version of the element.
21
-
22
- Returns:
23
- A tuple containing:
24
- - The qualified name of the element
25
- - The GUID of the element
26
- - A boolean indicating if the element is valid
27
- - A boolean indicating if the element exists
28
- """
29
- from pyegeria.md_processing.utils.common_utils import debug_level, print_msg, EXISTS_REQUIRED
30
- from pyegeria.md_processing.utils.extraction_utils import process_simple_attribute
31
-
32
- element_name = process_simple_attribute(txt, element_labels)
33
- if element_name is None:
34
- return None, None, False, False
35
-
36
- element = get_element_by_name(egeria_client, element_type, element_name)
37
- if element is None:
38
- if action == EXISTS_REQUIRED or action == "Update":
39
- msg = f"{element_type} {element_name} not found"
40
- print_msg("ERROR", msg, debug_level)
41
- return None, None, False, False
42
- else:
43
- return None, None, True, False
44
- else:
45
- element_guid = element.get('guid', None)
46
- element_q_name = element.get('qualifiedName', None)
47
- if element_guid and element_q_name:
48
- if action == "Create":
49
- msg = f"{element_type} {element_name} already exists with GUID {element_guid}"
50
- print_msg("WARNING", msg, debug_level)
51
- else:
52
- msg = f"{element_type} {element_name} exists with GUID {element_guid}"
53
- print_msg("INFO", msg, debug_level)
54
- return element_q_name, element_guid, True, True
55
- else:
56
- msg = f"{element_type} {element_name} exists but has no GUID or qualified name"
57
- print_msg("ERROR", msg, debug_level)
58
- return None, None, False, True
59
-
60
-
61
- def get_element_by_name(egeria_client, element_type: str, element_name: str) -> dict | None:
62
- """
63
- Gets an element by name.
64
-
65
- Args:
66
- egeria_client: The Egeria client to use for validation.
67
- element_type: The type of element to get.
68
- element_name: The name of the element to get.
69
-
70
- Returns:
71
- The element if found, otherwise None.
72
- """
73
- from pyegeria.md_processing.utils.common_utils import debug_level, print_msg
74
- from pyegeria.md_processing.utils.display_utils import (
75
- GLOSSARY_NAME_LABELS, CATEGORY_NAME_LABELS, TERM_NAME_LABELS, PROJECT_NAME_LABELS,
76
- BLUEPRINT_NAME_LABELS, COMPONENT_NAME_LABELS
77
- )
78
-
79
- # Check if we already have this element in our dictionary
80
- element_dict = get_element_dictionary()
81
- if element_dict:
82
- for q_name, details in element_dict.items():
83
- if details.get('display_name', '').lower() == element_name.lower():
84
- if element_type.lower() in q_name.lower():
85
- msg = f"Found {element_type} {element_name} in dictionary with qualified name {q_name}"
86
- print_msg("DEBUG-INFO", msg, debug_level)
87
- return {'qualifiedName': q_name, 'guid': details.get('guid', None)}
88
-
89
- # If not in dictionary, query Egeria
90
- try:
91
- if element_type in GLOSSARY_NAME_LABELS:
92
- glossaries = egeria_client.list_glossaries()
93
- if glossaries == NO_ELEMENTS_FOUND:
94
- return None
95
- for glossary in glossaries:
96
- if glossary.get('displayName', '').lower() == element_name.lower():
97
- q_name = glossary.get('qualifiedName', None)
98
- guid = glossary.get('guid', None)
99
- if q_name and guid:
100
- update_element_dictionary(q_name, {'guid': guid, 'display_name': element_name})
101
- return {'qualifiedName': q_name, 'guid': guid}
102
- elif element_type in CATEGORY_NAME_LABELS:
103
- categories = egeria_client.list_categories()
104
- if categories == NO_ELEMENTS_FOUND:
105
- return None
106
- for category in categories:
107
- if category.get('displayName', '').lower() == element_name.lower():
108
- q_name = category.get('qualifiedName', None)
109
- guid = category.get('guid', None)
110
- if q_name and guid:
111
- update_element_dictionary(q_name, {'guid': guid, 'display_name': element_name})
112
- return {'qualifiedName': q_name, 'guid': guid}
113
- elif element_type in TERM_NAME_LABELS:
114
- terms = egeria_client.list_terms()
115
- if terms == NO_ELEMENTS_FOUND:
116
- return None
117
- for term in terms:
118
- if term.get('displayName', '').lower() == element_name.lower():
119
- q_name = term.get('qualifiedName', None)
120
- guid = term.get('guid', None)
121
- if q_name and guid:
122
- update_element_dictionary(q_name, {'guid': guid, 'display_name': element_name})
123
- return {'qualifiedName': q_name, 'guid': guid}
124
- elif element_type in PROJECT_NAME_LABELS:
125
- projects = egeria_client.list_projects()
126
- if projects == NO_ELEMENTS_FOUND:
127
- return None
128
- for project in projects:
129
- if project.get('displayName', '').lower() == element_name.lower():
130
- q_name = project.get('qualifiedName', None)
131
- guid = project.get('guid', None)
132
- if q_name and guid:
133
- update_element_dictionary(q_name, {'guid': guid, 'display_name': element_name})
134
- return {'qualifiedName': q_name, 'guid': guid}
135
- elif element_type in BLUEPRINT_NAME_LABELS:
136
- blueprints = egeria_client.list_solution_blueprints()
137
- if blueprints == NO_ELEMENTS_FOUND:
138
- return None
139
- for blueprint in blueprints:
140
- if blueprint.get('displayName', '').lower() == element_name.lower():
141
- q_name = blueprint.get('qualifiedName', None)
142
- guid = blueprint.get('guid', None)
143
- if q_name and guid:
144
- update_element_dictionary(q_name, {'guid': guid, 'display_name': element_name})
145
- return {'qualifiedName': q_name, 'guid': guid}
146
- elif element_type in COMPONENT_NAME_LABELS:
147
- components = egeria_client.list_solution_components()
148
- if components == NO_ELEMENTS_FOUND:
149
- return None
150
- for component in components:
151
- if component.get('displayName', '').lower() == element_name.lower():
152
- q_name = component.get('qualifiedName', None)
153
- guid = component.get('guid', None)
154
- if q_name and guid:
155
- update_element_dictionary(q_name, {'guid': guid, 'display_name': element_name})
156
- return {'qualifiedName': q_name, 'guid': guid}
157
- except Exception as e:
158
- msg = f"Error getting {element_type} {element_name}: {e}"
159
- print_msg("ERROR", msg, debug_level)
160
- return None
161
-
162
- return None
163
-
164
-
165
- def update_a_command(txt: str, command: str, obj_type: str, q_name: str, u_guid: str) -> str:
166
- """
167
- Updates a command in a string.
168
-
169
- Args:
170
- txt: The input string.
171
- command: The command to update.
172
- obj_type: The type of object to update.
173
- q_name: The qualified name of the object.
174
- u_guid: The GUID of the object.
175
-
176
- Returns:
177
- The updated string.
178
- """
179
- # Split the command into action and object
180
- parts = command.split()
181
- action = parts[0]
182
-
183
- # Determine the new action
184
- new_action = "Update" if action == "Create" else "Create"
185
-
186
- # Replace the command
187
- new_command = f"{new_action} {obj_type}"
188
- pattern = rf"#{command}(?:##|\n|$)"
189
- replacement = f"#{new_command}\n"
190
- updated_txt = re.sub(pattern, replacement, txt)
191
-
192
- # Add qualified name and GUID if updating
193
- if new_action == "Update" and q_name and u_guid:
194
- # Check if Qualified Name section exists
195
- if "## Qualified Name" not in updated_txt:
196
- # Add Qualified Name section before the first ## that's not part of the command
197
- pattern = r"(##\s+[^#\n]+)"
198
- replacement = f"## Qualified Name\n{q_name}\n\n\\1"
199
- updated_txt = re.sub(pattern, replacement, updated_txt, count=1)
200
-
201
- # Check if GUID section exists
202
- if "## GUID" not in updated_txt and "## guid" not in updated_txt:
203
- # Add GUID section before the first ## that's not part of the command or Qualified Name
204
- pattern = r"(##\s+(?!Qualified Name)[^#\n]+)"
205
- replacement = f"## GUID\n{u_guid}\n\n\\1"
206
- updated_txt = re.sub(pattern, replacement, updated_txt, count=1)
207
-
208
- return updated_txt