pyegeria 5.2.1__py3-none-any.whl → 5.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. commands/cat/.DS_Store +0 -0
  2. commands/cat/Dr-Egeria_md-orig.py +166 -0
  3. commands/cat/__init__.py +23 -0
  4. commands/cat/dr_egeria_jupyter.py +122 -0
  5. commands/cat/dr_egeria_md.py +247 -0
  6. {pyegeria/commands → commands}/cat/exp_list_glossaries.py +3 -4
  7. {pyegeria/commands → commands}/cat/get_asset_graph.py +4 -4
  8. {pyegeria/commands → commands}/cat/get_collection.py +8 -9
  9. {pyegeria/commands → commands}/cat/get_project_dependencies.py +6 -8
  10. {pyegeria/commands → commands}/cat/get_project_structure.py +6 -8
  11. {pyegeria/commands → commands}/cat/get_tech_type_elements.py +13 -15
  12. {pyegeria/commands → commands}/cat/glossary_actions.py +184 -34
  13. {pyegeria/commands → commands}/cat/list_assets.py +9 -6
  14. commands/cat/list_categories.py +192 -0
  15. {pyegeria/commands → commands}/cat/list_cert_types.py +6 -6
  16. {pyegeria/commands → commands}/cat/list_collections.py +62 -19
  17. commands/cat/list_data_structures.py +223 -0
  18. {pyegeria/commands → commands}/cat/list_deployed_catalogs.py +9 -8
  19. {pyegeria/commands → commands}/cat/list_deployed_database_schemas.py +10 -9
  20. {pyegeria/commands → commands}/cat/list_deployed_databases.py +9 -8
  21. pyegeria/commands/cat/list_servers_deployed_imp.py → commands/cat/list_deployed_servers.py +3 -3
  22. {pyegeria/commands → commands}/cat/list_glossaries.py +57 -15
  23. {pyegeria/commands → commands}/cat/list_projects.py +5 -5
  24. {pyegeria/commands → commands}/cat/list_tech_type_elements.py +3 -3
  25. {pyegeria/commands → commands}/cat/list_tech_types.py +4 -4
  26. {pyegeria/commands → commands}/cat/list_terms.py +93 -45
  27. {pyegeria/commands → commands}/cat/list_todos.py +3 -3
  28. {pyegeria/commands → commands}/cat/list_user_ids.py +9 -8
  29. {pyegeria/commands → commands}/cli/__init__.py +1 -1
  30. {pyegeria/commands → commands}/cli/egeria.py +513 -250
  31. {pyegeria/commands → commands}/cli/egeria_cat.py +128 -51
  32. {pyegeria/commands → commands}/cli/egeria_login_tui.py +15 -17
  33. {pyegeria/commands → commands}/cli/egeria_my.py +22 -15
  34. {pyegeria/commands → commands}/cli/egeria_ops.py +54 -55
  35. {pyegeria/commands → commands}/cli/egeria_tech.py +364 -152
  36. {pyegeria/commands → commands}/cli/ops_config.py +18 -11
  37. commands/my/__init__.py +22 -0
  38. {pyegeria/commands → commands}/my/list_my_profile.py +6 -8
  39. {pyegeria/commands → commands}/my/list_my_roles.py +4 -4
  40. {pyegeria/commands → commands}/my/monitor_my_todos.py +7 -7
  41. {pyegeria/commands → commands}/my/monitor_open_todos.py +7 -7
  42. {pyegeria/commands → commands}/my/todo_actions.py +3 -2
  43. commands/ops/__init__.py +23 -0
  44. {pyegeria/commands → commands}/ops/gov_server_actions.py +5 -4
  45. {pyegeria/commands → commands}/ops/list_archives.py +7 -6
  46. {pyegeria/commands → commands}/ops/list_catalog_targets.py +4 -4
  47. {pyegeria/commands → commands}/ops/load_archive.py +4 -2
  48. {pyegeria/commands → commands}/ops/monitor_asset_events.py +8 -7
  49. {pyegeria/commands → commands}/ops/monitor_engine_activity.py +5 -5
  50. {pyegeria/commands → commands}/ops/monitor_engine_activity_c.py +3 -3
  51. {pyegeria/commands → commands}/ops/monitor_gov_eng_status.py +3 -2
  52. {pyegeria/commands → commands}/ops/monitor_integ_daemon_status.py +23 -15
  53. {pyegeria/commands → commands}/ops/monitor_platform_status.py +5 -4
  54. {pyegeria/commands → commands}/ops/monitor_server_startup.py +7 -7
  55. {pyegeria/commands → commands}/ops/monitor_server_status.py +16 -11
  56. {pyegeria/commands → commands}/ops/orig_monitor_server_list.py +2 -2
  57. {pyegeria/commands → commands}/ops/orig_monitor_server_status.py +3 -3
  58. {pyegeria/commands → commands}/ops/refresh_integration_daemon.py +4 -4
  59. {pyegeria/commands → commands}/ops/restart_integration_daemon.py +3 -3
  60. {pyegeria/commands → commands}/ops/table_integ_daemon_status.py +3 -3
  61. commands/tech/__init__.py +22 -0
  62. commands/tech/generic_actions.py +74 -0
  63. {pyegeria/commands → commands}/tech/get_element_info.py +5 -7
  64. {pyegeria/commands → commands}/tech/get_guid_info.py +4 -5
  65. {pyegeria/commands → commands}/tech/get_tech_details.py +8 -9
  66. {pyegeria/commands → commands}/tech/get_tech_type_template.py +4 -4
  67. pyegeria/commands/tech/list_elements.py → commands/tech/list_all_om_type_elements.py +11 -10
  68. pyegeria/commands/tech/list_elements_x.py → commands/tech/list_all_om_type_elements_x.py +11 -12
  69. pyegeria/commands/tech/list_related_elements.py → commands/tech/list_all_related_elements.py +11 -9
  70. {pyegeria/commands → commands}/tech/list_anchored_elements.py +16 -16
  71. {pyegeria/commands → commands}/tech/list_asset_types.py +4 -4
  72. commands/tech/list_elements_by_classification_by_property_value.py +200 -0
  73. commands/tech/list_elements_by_property_value.py +180 -0
  74. commands/tech/list_elements_by_property_value_x.py +201 -0
  75. {pyegeria/commands → commands}/tech/list_elements_for_classification.py +11 -9
  76. {pyegeria/commands → commands}/tech/list_gov_action_processes.py +5 -6
  77. commands/tech/list_information_supply_chains.py +167 -0
  78. {pyegeria/commands → commands}/tech/list_registered_services.py +3 -3
  79. commands/tech/list_related_elements_with_prop_value.py +221 -0
  80. {pyegeria/commands → commands}/tech/list_related_specification.py +3 -3
  81. {pyegeria/commands → commands}/tech/list_relationship_types.py +4 -5
  82. {pyegeria/commands → commands}/tech/list_relationships.py +3 -3
  83. commands/tech/list_solution_blueprints.py +181 -0
  84. commands/tech/list_solution_components.py +185 -0
  85. commands/tech/list_solution_roles.py +184 -0
  86. {pyegeria/commands → commands}/tech/list_tech_templates.py +3 -3
  87. {pyegeria/commands → commands}/tech/list_valid_metadata_values.py +5 -6
  88. {pyegeria/commands → commands}/tech/table_tech_templates.py +16 -13
  89. {pyegeria/commands → commands}/tech/x_list_related_elements.py +6 -4
  90. md_processing/__init__.py +49 -0
  91. md_processing/data/commands.json +3252 -0
  92. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +254 -0
  93. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +696 -0
  94. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +254 -0
  95. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +298 -0
  96. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +608 -0
  97. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +94 -0
  98. md_processing/dr_egeria_inbox/archive/freddie_intro.md +284 -0
  99. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +275 -0
  100. md_processing/dr_egeria_inbox/archive/test-term.md +110 -0
  101. md_processing/dr_egeria_inbox/cat_test.md +100 -0
  102. md_processing/dr_egeria_inbox/data_field.md +54 -0
  103. md_processing/dr_egeria_inbox/data_spec.md +77 -0
  104. md_processing/dr_egeria_inbox/data_spec_test.md +2406 -0
  105. md_processing/dr_egeria_inbox/data_test.md +86 -0
  106. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +168 -0
  107. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +280 -0
  108. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +313 -0
  109. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +1073 -0
  110. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +44 -0
  111. md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +341 -0
  112. md_processing/dr_egeria_inbox/glossary_test1.md +324 -0
  113. md_processing/dr_egeria_inbox/rel.md +8 -0
  114. md_processing/dr_egeria_inbox/sb.md +119 -0
  115. md_processing/dr_egeria_inbox/search_test.md +39 -0
  116. md_processing/dr_egeria_inbox/solution-components.md +154 -0
  117. md_processing/dr_egeria_inbox/solution_blueprints.md +118 -0
  118. md_processing/dr_egeria_inbox/synonym_test.md +42 -0
  119. md_processing/dr_egeria_inbox/t2.md +268 -0
  120. md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md +94 -0
  121. md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md +88 -0
  122. md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md +56 -0
  123. md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md +103 -0
  124. md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md +94 -0
  125. md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md +96 -0
  126. md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md +100 -0
  127. md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md +88 -0
  128. md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md +91 -0
  129. md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md +91 -0
  130. md_processing/dr_egeria_outbox/processed-2025-05-19 14:04-data_test.md +91 -0
  131. md_processing/md_commands/__init__.py +3 -0
  132. md_processing/md_commands/blueprint_commands.py +303 -0
  133. md_processing/md_commands/data_designer_commands.py +1182 -0
  134. md_processing/md_commands/glossary_commands.py +1144 -0
  135. md_processing/md_commands/project_commands.py +163 -0
  136. md_processing/md_processing_utils/__init__.py +4 -0
  137. md_processing/md_processing_utils/common_md_proc_utils.py +724 -0
  138. md_processing/md_processing_utils/common_md_utils.py +172 -0
  139. md_processing/md_processing_utils/extraction_utils.py +486 -0
  140. md_processing/md_processing_utils/md_processing_constants.py +128 -0
  141. md_processing/md_processing_utils/message_constants.py +19 -0
  142. pyegeria/.DS_Store +0 -0
  143. pyegeria/__init__.py +231 -146
  144. pyegeria/_client.py +36 -13
  145. pyegeria/_exceptions.py +55 -46
  146. pyegeria/_globals.py +11 -1
  147. pyegeria/_validators.py +5 -5
  148. pyegeria/asset_catalog_omvs.py +78 -21
  149. pyegeria/automated_curation_omvs.py +11 -6
  150. pyegeria/classification_manager_omvs.py +41 -37
  151. pyegeria/collection_manager_omvs.py +722 -705
  152. pyegeria/core_omag_server_config.py +1 -1
  153. pyegeria/create_tech_guid_lists.py +13 -13
  154. pyegeria/data_designer_omvs.py +5104 -0
  155. pyegeria/dr.egeria spec.md +9 -0
  156. pyegeria/egeria_cat_client.py +5 -8
  157. pyegeria/egeria_client.py +39 -24
  158. pyegeria/egeria_config_client.py +2 -1
  159. pyegeria/egeria_my_client.py +4 -4
  160. pyegeria/egeria_tech_client.py +40 -18
  161. pyegeria/feedback_manager_omvs.py +1 -1
  162. pyegeria/full_omag_server_config.py +5 -3
  163. pyegeria/glossary_browser_omvs.py +1915 -694
  164. pyegeria/glossary_manager_omvs.py +685 -1842
  165. pyegeria/m_test.py +118 -0
  166. pyegeria/md_processing_helpers.py +58 -0
  167. pyegeria/md_processing_utils.py +2147 -0
  168. pyegeria/md_processing_utils_orig.py +1103 -0
  169. pyegeria/mermaid_utilities.py +1194 -14
  170. pyegeria/metadata_explorer_omvs.py +5 -50
  171. pyegeria/my_profile_omvs.py +3 -2
  172. pyegeria/output_formatter.py +389 -0
  173. pyegeria/platform_services.py +5 -5
  174. pyegeria/project_manager_omvs.py +97 -18
  175. pyegeria/runtime_manager_omvs.py +8 -10
  176. pyegeria/server_operations.py +2 -2
  177. pyegeria/solution_architect_omvs.py +2156 -0
  178. pyegeria/template_manager_omvs.py +13 -13
  179. pyegeria/utils.py +3 -1
  180. pyegeria/valid_metadata_omvs.py +5 -4
  181. pyegeria/x_action_author_omvs.py +3 -6
  182. {pyegeria-5.2.1.dist-info → pyegeria-5.3.dist-info}/METADATA +9 -8
  183. pyegeria-5.3.dist-info/RECORD +196 -0
  184. {pyegeria-5.2.1.dist-info → pyegeria-5.3.dist-info}/WHEEL +1 -1
  185. pyegeria-5.3.dist-info/entry_points.txt +99 -0
  186. pyegeria/commands/README.md +0 -47
  187. pyegeria/commands/__init__.py +0 -22
  188. pyegeria/commands/cat/__init__.py +0 -1
  189. pyegeria/commands/doc/README.md +0 -145
  190. pyegeria/commands/doc/Visual Command Reference/README.md +0 -511
  191. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
  192. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
  193. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
  194. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
  195. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
  196. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
  197. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
  198. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
  199. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
  200. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
  201. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
  202. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
  203. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
  204. pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
  205. pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
  206. pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
  207. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
  208. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
  209. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
  210. pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
  211. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
  212. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
  213. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
  214. pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
  215. pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
  216. pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
  217. pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
  218. pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
  219. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
  220. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
  221. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
  222. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
  223. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
  224. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
  225. pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
  226. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
  227. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
  228. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
  229. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
  230. 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
  231. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
  232. 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
  233. 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
  234. 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
  235. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
  236. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
  237. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
  238. 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
  239. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
  240. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
  241. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
  242. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
  243. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
  244. 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
  245. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
  246. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
  247. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
  248. pyegeria/commands/doc/glossary/basic-glossary-tui.md +0 -109
  249. pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
  250. pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
  251. pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
  252. pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
  253. pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
  254. pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
  255. pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
  256. pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
  257. pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
  258. pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
  259. pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
  260. pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
  261. pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
  262. pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
  263. pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
  264. pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
  265. pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
  266. pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
  267. pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
  268. pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
  269. pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
  270. pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
  271. pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
  272. pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
  273. pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
  274. pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
  275. pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
  276. pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
  277. pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
  278. pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
  279. pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
  280. pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
  281. pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
  282. pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
  283. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -346
  284. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
  285. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
  286. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
  287. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
  288. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
  289. 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
  290. 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
  291. 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
  292. 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
  293. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
  294. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
  295. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
  296. 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
  297. 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
  298. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
  299. 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
  300. pyegeria/commands/ops/__init__.py +0 -22
  301. pyegeria/commands/tech/__init__.py +0 -0
  302. pyegeria-5.2.1.dist-info/RECORD +0 -232
  303. pyegeria-5.2.1.dist-info/entry_points.txt +0 -81
  304. {pyegeria/commands → commands}/cat/README.md +0 -0
  305. {pyegeria/commands → commands}/cli/txt_custom_v2.tcss +0 -0
  306. {pyegeria/commands → commands}/my/README.md +0 -0
  307. {pyegeria/commands → commands}/ops/README.md +0 -0
  308. {pyegeria/commands → commands}/ops/x_engine_actions.py +0 -0
  309. {pyegeria/commands → commands}/tech/README.md +0 -0
  310. /pyegeria/commands/my/__init__.py → /md_processing/dr_egeria_inbox/t1.md +0 -0
  311. {pyegeria-5.2.1.dist-info → pyegeria-5.3.dist-info}/LICENSE +0 -0
@@ -1,32 +1,33 @@
1
1
  """This creates a templates guid file from the core metadata archive"""
2
- from rich.markdown import Markdown
3
- from rich.prompt import Prompt
4
- import os
2
+
5
3
  import argparse
6
- import time
4
+ import os
7
5
  import sys
6
+ import time
7
+
8
8
  from rich import box
9
9
  from rich.console import Console
10
+ from rich.markdown import Markdown
11
+ from rich.prompt import Prompt
10
12
  from rich.table import Table
11
13
 
12
14
  from pyegeria import (
15
+ EgeriaTech,
13
16
  InvalidParameterException,
14
17
  PropertyServerException,
15
18
  UserNotAuthorizedException,
16
19
  print_exception_response,
17
- EgeriaTech,
18
20
  )
19
21
 
20
-
21
22
  console = Console()
22
23
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
23
24
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
24
25
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
25
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
26
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
26
27
  EGERIA_VIEW_SERVER_URL = os.environ.get(
27
28
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
28
29
  )
29
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
30
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
30
31
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
31
32
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
32
33
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
@@ -136,7 +137,7 @@ def list_deployed_database_schemas(
136
137
  for c in el_classification:
137
138
  el_cat_guid = "---"
138
139
  if c["type"]["typeName"] == "Anchors":
139
- el_anchor_guid = c["classificationProperties"]["anchorGUID"]
140
+ el_anchor_guid = c["classificationProperties"].get("anchorGUID",'---')
140
141
  el_anchor_type_name = c["classificationProperties"][
141
142
  "anchorTypeName"
142
143
  ]
@@ -1,32 +1,33 @@
1
1
  """This displays deployed databases"""
2
- from rich.markdown import Markdown
3
- from rich.prompt import Prompt
4
- import os
2
+
5
3
  import argparse
6
- import time
4
+ import os
7
5
  import sys
6
+ import time
7
+
8
8
  from rich import box
9
9
  from rich.console import Console
10
+ from rich.markdown import Markdown
11
+ from rich.prompt import Prompt
10
12
  from rich.table import Table
11
13
 
12
14
  from pyegeria import (
15
+ EgeriaTech,
13
16
  InvalidParameterException,
14
17
  PropertyServerException,
15
18
  UserNotAuthorizedException,
16
19
  print_exception_response,
17
- EgeriaTech,
18
20
  )
19
21
 
20
-
21
22
  console = Console()
22
23
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
23
24
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
24
25
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
25
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
26
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
26
27
  EGERIA_VIEW_SERVER_URL = os.environ.get(
27
28
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
28
29
  )
29
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
30
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
30
31
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
31
32
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
32
33
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
@@ -25,19 +25,19 @@ from rich.text import Text
25
25
  from pyegeria import (
26
26
  InvalidParameterException,
27
27
  PropertyServerException,
28
+ RuntimeManager,
28
29
  UserNotAuthorizedException,
29
30
  print_exception_response,
30
- RuntimeManager,
31
31
  )
32
32
 
33
33
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
34
34
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
35
35
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
36
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
36
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
37
37
  EGERIA_VIEW_SERVER_URL = os.environ.get(
38
38
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
39
39
  )
40
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
40
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
41
41
  EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
42
42
  "EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
43
43
  )
@@ -15,15 +15,16 @@ import time
15
15
 
16
16
  from rich import box
17
17
  from rich.console import Console
18
+ from rich.markdown import Markdown
18
19
  from rich.prompt import Prompt
19
20
  from rich.table import Table
20
21
  from rich.text import Text
21
22
 
22
23
  from pyegeria import (
24
+ EgeriaTech,
23
25
  InvalidParameterException,
24
26
  PropertyServerException,
25
27
  UserNotAuthorizedException,
26
- EgeriaTech,
27
28
  print_exception_response,
28
29
  )
29
30
 
@@ -32,17 +33,22 @@ disable_ssl_warnings = True
32
33
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
33
34
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
34
35
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
35
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
36
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
36
37
  EGERIA_VIEW_SERVER_URL = os.environ.get(
37
38
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
38
39
  )
39
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
40
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
40
41
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
41
42
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
42
43
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
43
44
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
44
45
  EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
45
46
  EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
47
+ EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
48
+ EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
49
+ EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
50
+ EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
51
+
46
52
 
47
53
 
48
54
  def display_glossaries(
@@ -53,6 +59,7 @@ def display_glossaries(
53
59
  user_pass: str = EGERIA_USER_PASSWORD,
54
60
  jupyter: bool = EGERIA_JUPYTER,
55
61
  width: int = EGERIA_WIDTH,
62
+ output_format: str = "JSON"
56
63
  ):
57
64
  """Display either a specified glossary or all glossaries if the search_string is '*'.
58
65
  Parameters
@@ -71,10 +78,39 @@ def display_glossaries(
71
78
  A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
72
79
  width : int, optional
73
80
  The width of the console output (default is EGERIA_WIDTH).
81
+ output_format: str, optional, default is 'JSON'
82
+ One of TABLE, FORM, REPORT
74
83
  """
75
84
  m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
76
85
  token = m_client.create_egeria_bearer_token()
86
+ console = Console(
87
+ style="bold bright_white on black",
88
+ width=width,
89
+ force_terminal=not jupyter,
90
+ )
91
+
77
92
  try:
93
+ if output_format == "FORM":
94
+ action = "Update-Form"
95
+ elif output_format == "REPORT":
96
+ action = "Report"
97
+ if output_format != "TABLE":
98
+ file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH)
99
+ file_name = f"Glossaries-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
100
+ full_file_path = os.path.join(file_path, file_name)
101
+ os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
102
+ output = m_client.find_glossaries(search_string, None, output_format=output_format)
103
+ if output == "NO_GLOSSARIES_FOUND":
104
+ print(f"\n==> No glossaries found for search string '{search_string}'")
105
+ return
106
+ try:
107
+ with open(full_file_path, 'w') as f:
108
+ f.write(output)
109
+ print(f"\n==> Glossaries output written to {full_file_path}")
110
+ return
111
+ except Exception:
112
+ console.print_exception()
113
+
78
114
  table = Table(
79
115
  title=f"Glossary List @ {time.asctime()}",
80
116
  style="bright_white on black",
@@ -93,6 +129,7 @@ def display_glossaries(
93
129
  table.add_column("Language")
94
130
  table.add_column("Description")
95
131
  table.add_column("Usage")
132
+ table.add_column("Categories")
96
133
 
97
134
  glossaries = m_client.find_glossaries(search_string)
98
135
  if type(glossaries) is list:
@@ -100,19 +137,23 @@ def display_glossaries(
100
137
  glossaries, key=lambda k: k["glossaryProperties"]["displayName"]
101
138
  )
102
139
  for glossary in sorted_glossary_list:
103
- display_name = glossary["glossaryProperties"]["displayName"]
140
+ display_name = glossary["glossaryProperties"].get("displayName",'---')
104
141
  qualified_name = glossary["glossaryProperties"]["qualifiedName"]
105
142
  guid = glossary["elementHeader"]["guid"]
106
143
  q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
107
- language = glossary["glossaryProperties"]["language"]
108
- description = glossary["glossaryProperties"]["description"]
109
- usage = glossary["glossaryProperties"]["usage"]
110
- table.add_row(display_name, q_name, language, description, usage)
111
- console = Console(
112
- style="bold bright_white on black",
113
- width=width,
114
- force_terminal=not jupyter,
115
- )
144
+ language = glossary["glossaryProperties"].get("language",'---')
145
+ description = glossary["glossaryProperties"].get("description",'---')
146
+ usage = glossary["glossaryProperties"].get("usage",'---')
147
+
148
+ categories = m_client.get_categories_for_glossary(guid)
149
+ cat_md = ''
150
+ if type(categories) is list:
151
+ for category in categories:
152
+ cat_md += f"* {category['glossaryCategoryProperties'][('displayName')]}\n"
153
+ cat_md = cat_md.strip()
154
+
155
+ table.add_row(display_name, q_name, language, description, usage, Markdown(cat_md))
156
+
116
157
  console.print(table)
117
158
 
118
159
  except (InvalidParameterException, PropertyServerException) as e:
@@ -139,8 +180,9 @@ def main():
139
180
  search_string = Prompt.ask(
140
181
  "Enter the glossary you are searching for or '*' for all:", default="*"
141
182
  )
142
-
143
- display_glossaries(search_string, server, url, userid, user_pass)
183
+ output_format = Prompt.ask("What output format do you want?", choices=["TABLE", "FORM", "REPORT"], default="TABLE")
184
+ display_glossaries(search_string, server, url, userid,
185
+ user_pass, output_format=output_format)
144
186
 
145
187
  except KeyboardInterrupt:
146
188
  pass
@@ -14,28 +14,28 @@ import json
14
14
  import os
15
15
  import time
16
16
 
17
- from rich import box
18
- from rich import print
17
+ from rich import box, print
19
18
  from rich.console import Console
20
19
  from rich.prompt import Prompt
21
20
  from rich.table import Table
22
21
 
23
22
  from pyegeria import (
23
+ ClassificationManager,
24
24
  InvalidParameterException,
25
+ ProjectManager,
25
26
  PropertyServerException,
26
27
  UserNotAuthorizedException,
27
28
  print_exception_response,
28
29
  )
29
- from pyegeria import ProjectManager, ClassificationManager
30
30
 
31
31
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
32
32
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
33
33
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
34
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
34
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
35
35
  EGERIA_VIEW_SERVER_URL = os.environ.get(
36
36
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
37
37
  )
38
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
38
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
39
39
  EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
40
40
  "EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
41
41
  )
@@ -19,21 +19,21 @@ from rich.prompt import Prompt
19
19
  from rich.table import Table
20
20
 
21
21
  from pyegeria import (
22
+ AutomatedCuration,
22
23
  InvalidParameterException,
23
24
  PropertyServerException,
24
25
  UserNotAuthorizedException,
25
26
  print_exception_response,
26
- AutomatedCuration,
27
27
  )
28
28
 
29
29
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
30
30
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
31
31
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
32
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
32
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
33
33
  EGERIA_VIEW_SERVER_URL = os.environ.get(
34
34
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
35
35
  )
36
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
36
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
37
37
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
38
38
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
39
39
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
@@ -8,8 +8,8 @@ Unit tests for the Utils helper functions using the Pytest framework.
8
8
 
9
9
  A simple display for my profile
10
10
  """
11
- import os
12
11
  import argparse
12
+ import os
13
13
  import sys
14
14
  import time
15
15
 
@@ -19,21 +19,21 @@ from rich.prompt import Prompt
19
19
  from rich.table import Table
20
20
 
21
21
  from pyegeria import (
22
+ AutomatedCuration,
22
23
  InvalidParameterException,
23
24
  PropertyServerException,
24
25
  UserNotAuthorizedException,
25
26
  print_exception_response,
26
- AutomatedCuration,
27
27
  )
28
28
 
29
29
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
30
30
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
31
31
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
32
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
32
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
33
33
  EGERIA_VIEW_SERVER_URL = os.environ.get(
34
34
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
35
35
  )
36
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
36
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
37
37
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
38
38
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
39
39
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
@@ -3,8 +3,6 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  Copyright Contributors to the ODPi Egeria project.
5
5
 
6
- Unit tests for the Utils helper functions using the Pytest framework.
7
-
8
6
 
9
7
  A simple display for glossary terms
10
8
  """
@@ -15,35 +13,40 @@ import time
15
13
 
16
14
  from rich import box
17
15
  from rich.console import Console
16
+ from rich.markdown import Markdown
18
17
  from rich.prompt import Prompt
19
18
  from rich.table import Table
20
19
  from rich.text import Text
21
20
 
22
21
  from pyegeria import (
22
+ EgeriaTech,
23
23
  InvalidParameterException,
24
24
  PropertyServerException,
25
- UserNotAuthorizedException,
26
- EgeriaTech,
27
- )
28
- from pyegeria.commands.cat.glossary_actions import EGERIA_HOME_GLOSSARY_GUID
25
+ UserNotAuthorizedException, NO_CATEGORIES_FOUND,
26
+ )
27
+ from commands.cat.glossary_actions import EGERIA_HOME_GLOSSARY_GUID
28
+ from pyegeria._globals import NO_GLOSSARIES_FOUND
29
29
 
30
30
  disable_ssl_warnings = True
31
31
 
32
32
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
33
33
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
34
34
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
35
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
35
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
36
36
  EGERIA_VIEW_SERVER_URL = os.environ.get(
37
37
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
38
38
  )
39
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
39
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
40
40
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
41
41
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
42
42
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
43
43
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
44
44
  EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
45
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
46
- EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
45
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "250"))
46
+ EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
47
+ EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
48
+ EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
49
+ EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
47
50
 
48
51
 
49
52
  def display_glossary_terms(
@@ -56,6 +59,7 @@ def display_glossary_terms(
56
59
  user_pass: str = EGERIA_USER_PASSWORD,
57
60
  jupyter: bool = EGERIA_JUPYTER,
58
61
  width: int = EGERIA_WIDTH,
62
+ output_format: str = "TABLE",
59
63
  ):
60
64
  """Display a table of glossary terms filtered by search_string and glossary, if specified. If no
61
65
  filters then all terms are displayed. If glossary_guid or name is specified, then only terms from that
@@ -84,22 +88,54 @@ def display_glossary_terms(
84
88
  Flag to indicate if the output should be formatted for Jupyter notebook. Defaults to EGERIA_JUPYTER.
85
89
  width : int
86
90
  The width of the console output. Defaults to EGERIA_WIDTH.
91
+ output_format: str, optional, default is 'JSON'
92
+ One of TABLE, FORM, REPORT
87
93
  """
88
94
 
89
95
  console = Console(
90
96
  style="bold bright_white on black", width=width, force_terminal=not jupyter
91
97
  )
92
- g_client = EgeriaTech(view_server, view_url, user_id, user_pass)
93
- token = g_client.create_egeria_bearer_token()
94
- if (glossary_name is not None) and (glossary_name != "*"):
95
- glossary_guid = g_client.get_guid_for_name(glossary_name)
96
- if glossary_guid == "No elements found":
97
- console.print(
98
- f"\nThe glossary name {glossary_name} was not found. Please try using the glossary guid"
99
- )
100
- sys.exit(0)
98
+ try:
99
+ g_client = EgeriaTech(view_server, view_url, user_id, user_pass)
100
+ token = g_client.create_egeria_bearer_token(user_id, user_pass)
101
+ if (glossary_name is not None) and (glossary_name != "*"):
102
+ glossary_guid = g_client.get_guid_for_name(glossary_name)
103
+ if glossary_guid == NO_GLOSSARIES_FOUND:
104
+ console.print(
105
+ f"\nThe glossary name {glossary_name} was not found. Please try using the glossary guid"
106
+ )
107
+ sys.exit(1)
108
+ elif (glossary_guid is not None) and (len(glossary_guid) < 10):
109
+ glossary_guid = None
110
+
111
+ if output_format == "FORM":
112
+ action = "Update-Form"
113
+ elif output_format == "REPORT":
114
+ action = "Report"
115
+ if output_format != "TABLE":
116
+ file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH)
117
+ file_name = f"Terms-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
118
+ full_file_path = os.path.join(file_path, file_name)
119
+ os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
120
+ output = g_client.find_glossary_terms(search_string, glossary_guid, output_format=output_format)
121
+ if output == "NO_TERMS_FOUND":
122
+ print(f"\n==> No terms found for search string '{search_string}'")
123
+ return
124
+ with open(full_file_path, 'w') as f:
125
+ f.write(output)
126
+ print(f"\n==> Terms output written to {full_file_path}")
127
+ return
128
+
129
+ except (
130
+ InvalidParameterException,
131
+ PropertyServerException,
132
+ UserNotAuthorizedException,
133
+ ) as e:
134
+ console.print_exception()
101
135
 
102
- def generate_table(search_string: str, glossary_guid: str = None) -> Table:
136
+
137
+
138
+ def generate_table(search_string: str, glossary_guid: str) -> Table:
103
139
  """Make a new table."""
104
140
  table = Table(
105
141
  title=f"Glossary Definitions for Terms like {search_string} @ {time.asctime()}",
@@ -113,15 +149,14 @@ def display_glossary_terms(
113
149
  caption=f"View Server '{view_server}' @ Platform - {view_url}",
114
150
  expand=True,
115
151
  )
116
- table.add_column("Term Name")
117
- table.add_column("Qualified Name / GUID", width=38, no_wrap=True)
118
- table.add_column("Abbreviation")
152
+ table.add_column("Term Name / Abbreviation / Version")
153
+ table.add_column("Qualified Name / GUID / Aliases", width=38, no_wrap=True)
119
154
  table.add_column("Summary")
120
155
  table.add_column("Description")
121
- table.add_column("Version Id")
122
156
  table.add_column("Glossary")
123
157
  table.add_column("Status")
124
- table.add_column("Example")
158
+ table.add_column("Categories")
159
+ table.add_column("Example/Usage", min_width=50)
125
160
 
126
161
  terms = g_client.find_glossary_terms(
127
162
  search_string,
@@ -133,10 +168,10 @@ def display_glossary_terms(
133
168
  )
134
169
 
135
170
  if type(terms) is str:
136
- print(f"No terms found!")
171
+ print(f"No terms found! - {search_string} : {glossary_guid} ")
137
172
  sys.exit(0)
138
173
  sorted_terms = sorted(
139
- terms, key=lambda k: k["glossaryTermProperties"]["displayName"]
174
+ terms, key=lambda k: k["glossaryTermProperties"].get("displayName","---")
140
175
  )
141
176
  style = "bright_white on black"
142
177
  if type(terms) is str:
@@ -147,27 +182,26 @@ def display_glossary_terms(
147
182
  if props == "None":
148
183
  return table
149
184
 
150
- display_name = Text(props["displayName"], style=style, justify="center")
185
+ display_name = props.get("displayName","---")
151
186
  qualified_name = props["qualifiedName"]
152
187
  term_guid = term["elementHeader"]["guid"]
188
+ aliases = props.get("aliases", "---")
153
189
  q_name = Text(
154
- f"{qualified_name}\n&\n{term_guid}", style=style, justify="center"
155
- )
156
- abbrev = Text(props.get("abbreviation", " "), style=style, justify="center")
157
- summary = Text(props.get("summary", " "), style=style)
158
- description = Text(props.get("description", " "), style=style)
159
- version = Text(
160
- props.get("publishVersionIdentifier", " "),
161
- style=style,
162
- justify="center",
190
+ f"{qualified_name}\n&\n{term_guid}\n&\n{aliases}", style=style, justify="center"
163
191
  )
164
- example = Text(props.get("example", " "), style=style)
192
+ abbrev = props.get("abbreviation", "---")
193
+ summary = props.get("summary", "---")
194
+ description = Markdown(props.get("description",'---'))
195
+ version = props.get("publishVersionIdentifier", "---")
196
+ example = props.get("example", "---")
197
+ usage = props.get("usage", "---")
198
+ ex_us_out = Markdown(f"Example:\n{example}\n---\nUsage: \n{usage}")
165
199
 
166
200
  classifications = term["elementHeader"]["classifications"]
167
201
  glossary_guid = None
168
202
  for c in classifications:
169
203
  if c["classificationName"] == "Anchors":
170
- glossary_guid = c["classificationProperties"]["anchorGUID"]
204
+ glossary_guid = c["classificationProperties"]["anchorScopeGUID"]
171
205
 
172
206
  if glossary_guid and glossary_guid in glossary_info:
173
207
  glossary_name = glossary_info[glossary_guid]
@@ -177,18 +211,27 @@ def display_glossary_terms(
177
211
  glossary_info[glossary_guid] = glossary_name
178
212
  else:
179
213
  glossary_name = "---"
214
+ category_list_md = ""
215
+ category_list = g_client.get_categories_for_term(term_guid)
216
+ if type(category_list) is str and category_list == NO_CATEGORIES_FOUND:
217
+ category_list_md = '---'
218
+ elif isinstance(category_list, list) and len(category_list) > 0:
219
+ for category in category_list:
220
+ category_name = category["glossaryCategoryProperties"].get("displayName",'---')
221
+ category_list_md += f"* {category_name}\n"
222
+ term_abb_ver_out = Markdown(f"{display_name}\n---\n{abbrev}\n---\n{version}")
223
+ category_list_out = Markdown(category_list_md)
180
224
 
181
- term_status = term["elementHeader"]["status"]
225
+ term_status = term["elementHeader"].get("status","---")
182
226
  table.add_row(
183
- display_name,
227
+ term_abb_ver_out,
184
228
  q_name,
185
- abbrev,
186
229
  summary,
187
230
  description,
188
- version,
189
231
  glossary_name,
190
232
  term_status,
191
- example,
233
+ category_list_out,
234
+ ex_us_out,
192
235
  style="bold white on black",
193
236
  )
194
237
 
@@ -218,7 +261,9 @@ def main():
218
261
 
219
262
  args = parser.parse_args()
220
263
 
264
+ # server = args.server if args.server is not None else EGERIA_VIEW_SERVER
221
265
  server = args.server if args.server is not None else EGERIA_VIEW_SERVER
266
+
222
267
  url = args.url if args.url is not None else EGERIA_PLATFORM_URL
223
268
  userid = args.userid if args.userid is not None else EGERIA_USER
224
269
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
@@ -230,8 +275,11 @@ def main():
230
275
  "Enter the name of the glossary to search or '*' for all glossaries:",
231
276
  default="*",
232
277
  )
278
+ output_format = Prompt.ask("What output format do you want?", choices=["TABLE", "FORM", "REPORT"], default="TABLE")
279
+
233
280
  display_glossary_terms(
234
- search_string, guid, glossary_name, server, url, userid, user_pass
281
+ search_string, guid, glossary_name, server, url,
282
+ userid, user_pass, output_format= output_format
235
283
  )
236
284
 
237
285
  except KeyboardInterrupt:
@@ -9,8 +9,8 @@ Unit tests for the Utils helper functions using the Pytest framework.
9
9
 
10
10
  A simple display for glossary terms
11
11
  """
12
- import os
13
12
  import argparse
13
+ import os
14
14
  import time
15
15
 
16
16
  from rich import box
@@ -30,11 +30,11 @@ from pyegeria.my_profile_omvs import MyProfile
30
30
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
31
31
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
32
32
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
33
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
33
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
34
34
  EGERIA_VIEW_SERVER_URL = os.environ.get(
35
35
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
36
36
  )
37
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
37
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
38
38
  EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
39
39
  "EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
40
40
  )