pyegeria 5.2.1.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 +506 -250
  31. {pyegeria/commands → commands}/cli/egeria_cat.py +127 -50
  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 +11 -4
  37. commands/cli/txt_custom_v2.tcss +19 -0
  38. commands/my/__init__.py +22 -0
  39. {pyegeria/commands → commands}/my/list_my_profile.py +6 -8
  40. {pyegeria/commands → commands}/my/list_my_roles.py +4 -4
  41. {pyegeria/commands → commands}/my/monitor_my_todos.py +7 -7
  42. {pyegeria/commands → commands}/my/monitor_open_todos.py +7 -7
  43. {pyegeria/commands → commands}/my/todo_actions.py +3 -2
  44. commands/ops/__init__.py +23 -0
  45. {pyegeria/commands → commands}/ops/gov_server_actions.py +5 -4
  46. {pyegeria/commands → commands}/ops/list_archives.py +7 -6
  47. {pyegeria/commands → commands}/ops/list_catalog_targets.py +4 -4
  48. {pyegeria/commands → commands}/ops/load_archive.py +4 -2
  49. {pyegeria/commands → commands}/ops/monitor_asset_events.py +8 -7
  50. {pyegeria/commands → commands}/ops/monitor_engine_activity.py +5 -5
  51. {pyegeria/commands → commands}/ops/monitor_engine_activity_c.py +3 -3
  52. {pyegeria/commands → commands}/ops/monitor_gov_eng_status.py +3 -2
  53. {pyegeria/commands → commands}/ops/monitor_integ_daemon_status.py +23 -15
  54. {pyegeria/commands → commands}/ops/monitor_platform_status.py +5 -4
  55. {pyegeria/commands → commands}/ops/monitor_server_startup.py +7 -7
  56. {pyegeria/commands → commands}/ops/monitor_server_status.py +16 -11
  57. {pyegeria/commands → commands}/ops/orig_monitor_server_list.py +2 -2
  58. {pyegeria/commands → commands}/ops/orig_monitor_server_status.py +3 -3
  59. {pyegeria/commands → commands}/ops/refresh_integration_daemon.py +4 -4
  60. {pyegeria/commands → commands}/ops/restart_integration_daemon.py +3 -3
  61. {pyegeria/commands → commands}/ops/table_integ_daemon_status.py +3 -3
  62. commands/tech/__init__.py +22 -0
  63. commands/tech/generic_actions.py +74 -0
  64. {pyegeria/commands → commands}/tech/get_element_info.py +5 -7
  65. {pyegeria/commands → commands}/tech/get_guid_info.py +4 -5
  66. {pyegeria/commands → commands}/tech/get_tech_details.py +8 -9
  67. {pyegeria/commands → commands}/tech/get_tech_type_template.py +4 -4
  68. pyegeria/commands/tech/list_elements.py → commands/tech/list_all_om_type_elements.py +11 -10
  69. pyegeria/commands/tech/list_elements_x.py → commands/tech/list_all_om_type_elements_x.py +11 -12
  70. pyegeria/commands/tech/list_related_elements.py → commands/tech/list_all_related_elements.py +11 -9
  71. {pyegeria/commands → commands}/tech/list_anchored_elements.py +16 -16
  72. {pyegeria/commands → commands}/tech/list_asset_types.py +4 -4
  73. commands/tech/list_elements_by_classification_by_property_value.py +200 -0
  74. commands/tech/list_elements_by_property_value.py +180 -0
  75. commands/tech/list_elements_by_property_value_x.py +201 -0
  76. {pyegeria/commands → commands}/tech/list_elements_for_classification.py +11 -9
  77. {pyegeria/commands → commands}/tech/list_gov_action_processes.py +5 -6
  78. commands/tech/list_information_supply_chains.py +167 -0
  79. {pyegeria/commands → commands}/tech/list_registered_services.py +3 -3
  80. commands/tech/list_related_elements_with_prop_value.py +221 -0
  81. {pyegeria/commands → commands}/tech/list_related_specification.py +3 -3
  82. {pyegeria/commands → commands}/tech/list_relationship_types.py +4 -5
  83. {pyegeria/commands → commands}/tech/list_relationships.py +3 -3
  84. commands/tech/list_solution_blueprints.py +181 -0
  85. commands/tech/list_solution_components.py +185 -0
  86. commands/tech/list_solution_roles.py +184 -0
  87. {pyegeria/commands → commands}/tech/list_tech_templates.py +3 -3
  88. {pyegeria/commands → commands}/tech/list_valid_metadata_values.py +5 -6
  89. {pyegeria/commands → commands}/tech/table_tech_templates.py +16 -13
  90. {pyegeria/commands → commands}/tech/x_list_related_elements.py +6 -4
  91. md_processing/__init__.py +49 -0
  92. md_processing/data/commands.json +3252 -0
  93. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +254 -0
  94. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +696 -0
  95. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +254 -0
  96. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +298 -0
  97. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +608 -0
  98. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +94 -0
  99. md_processing/dr_egeria_inbox/archive/freddie_intro.md +284 -0
  100. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +275 -0
  101. md_processing/dr_egeria_inbox/archive/test-term.md +110 -0
  102. md_processing/dr_egeria_inbox/cat_test.md +100 -0
  103. md_processing/dr_egeria_inbox/data_field.md +54 -0
  104. md_processing/dr_egeria_inbox/data_spec.md +77 -0
  105. md_processing/dr_egeria_inbox/data_spec_test.md +2406 -0
  106. md_processing/dr_egeria_inbox/data_test.md +86 -0
  107. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +168 -0
  108. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +280 -0
  109. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +313 -0
  110. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +1073 -0
  111. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +44 -0
  112. md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +341 -0
  113. md_processing/dr_egeria_inbox/glossary_test1.md +324 -0
  114. md_processing/dr_egeria_inbox/rel.md +8 -0
  115. md_processing/dr_egeria_inbox/sb.md +119 -0
  116. md_processing/dr_egeria_inbox/search_test.md +39 -0
  117. md_processing/dr_egeria_inbox/solution-components.md +154 -0
  118. md_processing/dr_egeria_inbox/solution_blueprints.md +118 -0
  119. md_processing/dr_egeria_inbox/synonym_test.md +42 -0
  120. md_processing/dr_egeria_inbox/t2.md +268 -0
  121. md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md +94 -0
  122. md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md +88 -0
  123. md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md +56 -0
  124. md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md +103 -0
  125. md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md +94 -0
  126. md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md +96 -0
  127. md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md +100 -0
  128. md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md +88 -0
  129. md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md +91 -0
  130. md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md +91 -0
  131. md_processing/dr_egeria_outbox/processed-2025-05-19 14:04-data_test.md +91 -0
  132. md_processing/md_commands/__init__.py +3 -0
  133. md_processing/md_commands/blueprint_commands.py +303 -0
  134. md_processing/md_commands/data_designer_commands.py +1182 -0
  135. md_processing/md_commands/glossary_commands.py +1144 -0
  136. md_processing/md_commands/project_commands.py +163 -0
  137. md_processing/md_processing_utils/__init__.py +4 -0
  138. md_processing/md_processing_utils/common_md_proc_utils.py +724 -0
  139. md_processing/md_processing_utils/common_md_utils.py +172 -0
  140. md_processing/md_processing_utils/extraction_utils.py +486 -0
  141. md_processing/md_processing_utils/md_processing_constants.py +128 -0
  142. md_processing/md_processing_utils/message_constants.py +19 -0
  143. pyegeria/.DS_Store +0 -0
  144. pyegeria/__init__.py +231 -146
  145. pyegeria/_client.py +36 -13
  146. pyegeria/_exceptions.py +55 -46
  147. pyegeria/_globals.py +11 -1
  148. pyegeria/_validators.py +5 -5
  149. pyegeria/asset_catalog_omvs.py +78 -21
  150. pyegeria/automated_curation_omvs.py +11 -6
  151. pyegeria/classification_manager_omvs.py +41 -37
  152. pyegeria/collection_manager_omvs.py +722 -705
  153. pyegeria/core_omag_server_config.py +1 -1
  154. pyegeria/create_tech_guid_lists.py +13 -13
  155. pyegeria/data_designer_omvs.py +5104 -0
  156. pyegeria/dr.egeria spec.md +9 -0
  157. pyegeria/egeria_cat_client.py +5 -8
  158. pyegeria/egeria_client.py +39 -24
  159. pyegeria/egeria_config_client.py +2 -1
  160. pyegeria/egeria_my_client.py +4 -4
  161. pyegeria/egeria_tech_client.py +40 -18
  162. pyegeria/feedback_manager_omvs.py +1 -1
  163. pyegeria/full_omag_server_config.py +5 -3
  164. pyegeria/glossary_browser_omvs.py +1915 -694
  165. pyegeria/glossary_manager_omvs.py +685 -1842
  166. pyegeria/m_test.py +118 -0
  167. pyegeria/md_processing_helpers.py +58 -0
  168. pyegeria/md_processing_utils.py +2147 -0
  169. pyegeria/md_processing_utils_orig.py +1103 -0
  170. pyegeria/mermaid_utilities.py +1194 -14
  171. pyegeria/metadata_explorer_omvs.py +5 -50
  172. pyegeria/my_profile_omvs.py +3 -2
  173. pyegeria/output_formatter.py +389 -0
  174. pyegeria/platform_services.py +5 -5
  175. pyegeria/project_manager_omvs.py +97 -18
  176. pyegeria/runtime_manager_omvs.py +8 -10
  177. pyegeria/server_operations.py +2 -2
  178. pyegeria/solution_architect_omvs.py +2156 -0
  179. pyegeria/template_manager_omvs.py +13 -13
  180. pyegeria/utils.py +3 -1
  181. pyegeria/valid_metadata_omvs.py +5 -4
  182. pyegeria/x_action_author_omvs.py +3 -6
  183. {pyegeria-5.2.1.1.dist-info → pyegeria-5.3.dist-info}/METADATA +9 -8
  184. pyegeria-5.3.dist-info/RECORD +196 -0
  185. {pyegeria-5.2.1.1.dist-info → pyegeria-5.3.dist-info}/WHEEL +1 -1
  186. pyegeria-5.3.dist-info/entry_points.txt +99 -0
  187. pyegeria/commands/README.md +0 -47
  188. pyegeria/commands/__init__.py +0 -22
  189. pyegeria/commands/cat/__init__.py +0 -1
  190. pyegeria/commands/doc/README.md +0 -145
  191. pyegeria/commands/doc/Visual Command Reference/README.md +0 -511
  192. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
  193. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
  194. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
  195. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
  196. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
  197. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
  198. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
  199. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
  200. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
  201. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
  202. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
  203. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
  204. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
  205. pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
  206. pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
  207. pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
  208. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
  209. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
  210. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
  211. pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
  212. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
  213. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
  214. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
  215. pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
  216. pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
  217. pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
  218. pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
  219. pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
  220. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
  221. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
  222. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
  223. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
  224. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
  225. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
  226. pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
  227. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
  228. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
  229. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
  230. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
  231. 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
  232. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
  233. 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
  234. 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
  235. 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
  236. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
  237. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
  238. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
  239. 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
  240. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
  241. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
  242. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
  243. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
  244. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
  245. 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
  246. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
  247. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
  248. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
  249. pyegeria/commands/doc/glossary/basic-glossary-tui.md +0 -109
  250. pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
  251. pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
  252. pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
  253. pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
  254. pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
  255. pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
  256. pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
  257. pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
  258. pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
  259. pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
  260. pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
  261. pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
  262. pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
  263. pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
  264. pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
  265. pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
  266. pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
  267. pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
  268. pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
  269. pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
  270. pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
  271. pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
  272. pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
  273. pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
  274. pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
  275. pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
  276. pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
  277. pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
  278. pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
  279. pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
  280. pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
  281. pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
  282. pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
  283. pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
  284. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -346
  285. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
  286. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
  287. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
  288. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
  289. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
  290. 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
  291. 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
  292. 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
  293. 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
  294. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
  295. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
  296. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
  297. 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
  298. 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
  299. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
  300. 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
  301. pyegeria/commands/ops/__init__.py +0 -22
  302. pyegeria/commands/tech/__init__.py +0 -0
  303. pyegeria-5.2.1.1.dist-info/RECORD +0 -231
  304. pyegeria-5.2.1.1.dist-info/entry_points.txt +0 -81
  305. {pyegeria/commands → commands}/cat/README.md +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.1.dist-info → pyegeria-5.3.dist-info}/LICENSE +0 -0
@@ -4,7 +4,7 @@ SPDX-License-Identifier: Apache-2.0
4
4
  Copyright Contributors to the ODPi Egeria project.
5
5
 
6
6
 
7
- Retrieve elements based on a search of a specified properties.
7
+ Retrieve anchored elements based on a search of a specified properties.
8
8
  """
9
9
  import argparse
10
10
  import os
@@ -13,26 +13,26 @@ import time
13
13
 
14
14
  from rich import box
15
15
  from rich.console import Console
16
- from rich.prompt import Prompt
17
16
  from rich.markdown import Markdown
17
+ from rich.prompt import Prompt
18
18
  from rich.table import Table
19
19
 
20
20
  from pyegeria import (
21
+ EgeriaTech,
21
22
  InvalidParameterException,
22
23
  PropertyServerException,
23
24
  UserNotAuthorizedException,
24
25
  print_exception_response,
25
- EgeriaTech,
26
26
  )
27
27
 
28
28
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
29
29
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
30
30
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
31
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
31
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
32
32
  EGERIA_VIEW_SERVER_URL = os.environ.get(
33
33
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
34
34
  )
35
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
35
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
36
36
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
37
37
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
38
38
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
@@ -45,7 +45,7 @@ disable_ssl_warnings = True
45
45
 
46
46
 
47
47
  def display_anchored_elements(
48
- search_string: str,
48
+ property_value: str,
49
49
  prop_list: list[str],
50
50
  server: str,
51
51
  url: str,
@@ -56,19 +56,19 @@ def display_anchored_elements(
56
56
  width: int = EGERIA_WIDTH,
57
57
  ):
58
58
  console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
59
- if (search_string is None) or (len(search_string) < 3):
59
+ if (property_value is None) or (len(property_value) < 3):
60
60
  print(
61
61
  "\nError --> Invalid Search String - must be greater than four characters long"
62
62
  )
63
63
  sys.exit(3)
64
64
  g_client = EgeriaTech(server, url, username, user_password)
65
65
  token = g_client.create_egeria_bearer_token()
66
- print(f"search string is {search_string} and prop_list is {prop_list}\n")
66
+ print(f"search value is {property_value} and prop_list is {prop_list}\n")
67
67
 
68
- def generate_table(search_string: str, prop_list: [str]) -> Table:
68
+ def generate_table(property_value: str, prop_list: [str]) -> Table:
69
69
  """Make a new table."""
70
70
  table = Table(
71
- title=f"Elements containing the string {search_string} @ {time.asctime()}",
71
+ title=f"Elements containing the string {property_value} @ {time.asctime()}",
72
72
  header_style="white on dark_blue",
73
73
  style="bold white on black",
74
74
  row_styles=["bold white on black"],
@@ -88,7 +88,7 @@ def display_anchored_elements(
88
88
 
89
89
  classification = "Anchors"
90
90
  open_type_name = None
91
- property_value = search_string
91
+ property_value = property_value
92
92
 
93
93
  property_names = prop_list
94
94
 
@@ -150,7 +150,7 @@ def display_anchored_elements(
150
150
 
151
151
  try:
152
152
  with console.pager(styles=True):
153
- console.print(generate_table(search_string, prop_list), soft_wrap=True)
153
+ console.print(generate_table(property_value, prop_list), soft_wrap=True)
154
154
 
155
155
  except (
156
156
  InvalidParameterException,
@@ -183,19 +183,19 @@ def main():
183
183
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
184
184
  time_out = args.time_out if args.time_out is not None else 60
185
185
  try:
186
- search_string = Prompt.ask("Enter an property search string:", default="")
186
+ property_value = Prompt.ask("Enter an property search string:", default="")
187
187
  prop_list = Prompt.ask(
188
188
  "Enter the list of properties to search", default="anchorTypeName"
189
189
  )
190
- if search_string == "":
190
+ if property_value == "":
191
191
  print("\nError --> Search string can't be empty")
192
192
  sys.exit(1)
193
- elif len(search_string) <= 4:
193
+ elif len(property_value) <= 4:
194
194
  print("\nError --> Search string must be greater than four characters long")
195
195
  sys.exit(2)
196
196
  else:
197
197
  display_anchored_elements(
198
- search_string, [prop_list], server, url, userid, user_pass, time_out
198
+ property_value, [prop_list], server, url, userid, user_pass, time_out
199
199
  )
200
200
  except KeyboardInterrupt:
201
201
  pass
@@ -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 time
14
14
 
15
15
  from rich import box
@@ -19,19 +19,19 @@ from rich.table import Table
19
19
  from pyegeria import (
20
20
  InvalidParameterException,
21
21
  PropertyServerException,
22
+ RegisteredInfo,
22
23
  UserNotAuthorizedException,
23
24
  print_exception_response,
24
- RegisteredInfo,
25
25
  )
26
26
 
27
27
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
28
28
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
29
29
  EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
30
- EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
30
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
31
31
  EGERIA_VIEW_SERVER_URL = os.environ.get(
32
32
  "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
33
33
  )
34
- EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
34
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
35
35
  EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
36
36
  EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
37
37
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
@@ -0,0 +1,200 @@
1
+ """This finds all elements of a classification that match the property value for the properties specified"""
2
+
3
+ import argparse
4
+ import os
5
+ import sys
6
+ import time
7
+
8
+ from rich import box
9
+ from rich.console import Console
10
+ from rich.markdown import Markdown
11
+ from rich.prompt import Prompt
12
+ from rich.table import Table
13
+
14
+ from pyegeria import (
15
+ EgeriaTech,
16
+ InvalidParameterException,
17
+ PropertyServerException,
18
+ UserNotAuthorizedException,
19
+ print_exception_response,
20
+ )
21
+
22
+ console = Console()
23
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
24
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
25
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
26
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
27
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
28
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
29
+ )
30
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
31
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
32
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
33
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
35
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
36
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
37
+
38
+
39
+ def find_elements_by_classification_by_prop_value(
40
+ om_type: str,
41
+ classification: str,
42
+ property_value: str,
43
+ property_names: [str],
44
+ server: str,
45
+ url: str,
46
+ username: str,
47
+ password: str,
48
+ jupyter: bool = EGERIA_JUPYTER,
49
+ width: int = EGERIA_WIDTH,
50
+ ):
51
+ c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
52
+ token = c_client.create_egeria_bearer_token()
53
+
54
+ om_typedef = c_client.get_typedef_by_name(om_type)
55
+ if type(om_typedef) is str:
56
+ print(
57
+ f"The type name '{om_type}' is not known to the Egeria platform at {url} - {server}"
58
+ )
59
+ sys.exit(0)
60
+
61
+ class_def = c_client.get_typedef_by_name(classification)
62
+ if type(class_def) is str:
63
+ print(
64
+ f"The Classification {classification} is not known to the Egeria platform at {url} - {server}"
65
+ )
66
+ sys.exit(0)
67
+
68
+ elements = c_client.find_elements_by_classification_with_property_value(
69
+ classification, property_value, property_names, om_type
70
+ )
71
+ c = classification
72
+
73
+ def generate_table() -> Table:
74
+ """Make a new table."""
75
+ table = Table(
76
+ caption=f"Find Metadata Elements for: {url} - {server} @ {time.asctime()}",
77
+ style="bold bright_white on black",
78
+ row_styles=["bold bright_white on black"],
79
+ header_style="white on dark_blue",
80
+ title_style="bold bright_white on black",
81
+ caption_style="white on black",
82
+ show_lines=True,
83
+ box=box.ROUNDED,
84
+ title=f"Elements for Classification: {c}, Open Metadata Type: {om_type}, property value: {property_value}, "
85
+ f"properties: {property_names}",
86
+ expand=True,
87
+ width=width,
88
+ )
89
+
90
+ table.add_column("Qualified Name")
91
+ table.add_column("Type")
92
+ table.add_column("Created")
93
+ table.add_column("Home Store")
94
+ table.add_column("GUID", width=38, no_wrap=True)
95
+ table.add_column("Properties")
96
+ table.add_column("Classifications")
97
+
98
+ if type(elements) is list:
99
+ for element in elements:
100
+ header = element["elementHeader"]
101
+ el_q_name = element["properties"].get("qualifiedName", "---")
102
+ el_type = header["type"]["typeName"]
103
+ el_home = header["origin"]["homeMetadataCollectionName"]
104
+ el_create_time = header["versions"]["createTime"][:-10]
105
+ el_guid = header["guid"]
106
+ el_class = header.get("classifications", "---")
107
+
108
+ el_props_md = ""
109
+ for prop in element["properties"].keys():
110
+ el_props_md += f"* **{prop}**: {element['properties'][prop]}\n"
111
+ el_props_out = Markdown(el_props_md)
112
+
113
+ c_md = ""
114
+ if type(el_class) is list:
115
+ for classification in el_class:
116
+ classification_name = classification.get(
117
+ "classificationName", "---"
118
+ )
119
+ c_md = f"* **{classification_name}**\n"
120
+ class_props = classification.get(
121
+ "classificationProperties", "---"
122
+ )
123
+ if type(class_props) is dict:
124
+ for prop in class_props.keys():
125
+ c_md += f" * **{prop}**: {class_props[prop]}\n"
126
+ c_md_out = Markdown(c_md)
127
+
128
+ table.add_row(
129
+ el_q_name,
130
+ el_type,
131
+ el_create_time,
132
+ el_home,
133
+ el_guid,
134
+ el_props_out,
135
+ c_md_out,
136
+ )
137
+
138
+ return table
139
+ else:
140
+ print("No instances found")
141
+ sys.exit(1)
142
+
143
+ try:
144
+ console = Console(width=width, force_terminal=not jupyter)
145
+
146
+ with console.pager(styles=True):
147
+ console.print(generate_table())
148
+
149
+ except (
150
+ InvalidParameterException,
151
+ PropertyServerException,
152
+ UserNotAuthorizedException,
153
+ ) as e:
154
+ print_exception_response(e)
155
+ print("\n\nPerhaps the type name isn't known")
156
+ finally:
157
+ c_client.close_session()
158
+
159
+
160
+ def main():
161
+ parser = argparse.ArgumentParser()
162
+ parser.add_argument("--server", help="Name of the server to display status for")
163
+ parser.add_argument("--url", help="URL Platform to connect to")
164
+ parser.add_argument("--userid", help="User Id")
165
+ parser.add_argument("--password", help="Password")
166
+
167
+ args = parser.parse_args()
168
+
169
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
170
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
171
+ userid = args.userid if args.userid is not None else EGERIA_USER
172
+ password = args.password if args.password is not None else EGERIA_USER_PASSWORD
173
+
174
+ try:
175
+ classification = Prompt.ask(
176
+ "Enter the Classification to filter on", default="Anchors"
177
+ )
178
+ om_type = Prompt.ask(
179
+ "Enter the Open Metadata Type to find elements of", default="Referenceable"
180
+ )
181
+ property_value = Prompt.ask("Enter the property value to search for")
182
+ property_names = Prompt.ask(
183
+ "Enter a comma seperated list of properties to search"
184
+ )
185
+ find_elements_by_classification_by_prop_value(
186
+ om_type,
187
+ classification,
188
+ property_value,
189
+ [property_names],
190
+ server,
191
+ url,
192
+ userid,
193
+ password,
194
+ )
195
+ except KeyboardInterrupt:
196
+ pass
197
+
198
+
199
+ if __name__ == "__main__":
200
+ main()
@@ -0,0 +1,180 @@
1
+ """This creates a templates guid file from the core metadata archive"""
2
+
3
+ import argparse
4
+ import os
5
+ import sys
6
+ import time
7
+
8
+ from rich import box
9
+ from rich.console import Console
10
+ from rich.markdown import Markdown
11
+ from rich.prompt import Prompt
12
+ from rich.table import Table
13
+
14
+ from pyegeria import (
15
+ EgeriaTech,
16
+ InvalidParameterException,
17
+ PropertyServerException,
18
+ UserNotAuthorizedException,
19
+ print_exception_response,
20
+ )
21
+
22
+ console = Console()
23
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
24
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
25
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
26
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
27
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
28
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
29
+ )
30
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
31
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
32
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
33
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
35
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
36
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
37
+
38
+
39
+ def find_elements_by_prop_value(
40
+ om_type: str,
41
+ property_value: str,
42
+ property_names: [str],
43
+ server: str,
44
+ url: str,
45
+ username: str,
46
+ password: str,
47
+ jupyter: bool = EGERIA_JUPYTER,
48
+ width: int = EGERIA_WIDTH,
49
+ ):
50
+ c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
51
+ token = c_client.create_egeria_bearer_token()
52
+
53
+ om_typedef = c_client.get_typedef_by_name(om_type)
54
+ if type(om_typedef) is str:
55
+ print(
56
+ f"The type name '{om_type}' is not known to the Egeria platform at {url} - {server}"
57
+ )
58
+ sys.exit(1)
59
+ elements = c_client.find_elements_by_property_value(
60
+ property_value, property_names, om_type
61
+ )
62
+
63
+ def generate_table() -> Table:
64
+ """Make a new table."""
65
+ table = Table(
66
+ caption=f"Find Metadata Elements for: {url} - {server} @ {time.asctime()}",
67
+ style="bold bright_white on black",
68
+ row_styles=["bold bright_white on black"],
69
+ header_style="white on dark_blue",
70
+ title_style="bold bright_white on black",
71
+ caption_style="white on black",
72
+ show_lines=True,
73
+ box=box.ROUNDED,
74
+ title=f"Elements for Open Metadata Type: {om_type}, property value: {property_value}, "
75
+ f"properties: {property_names}",
76
+ expand=True,
77
+ width=width,
78
+ )
79
+
80
+ table.add_column("Qualified Name")
81
+ table.add_column("Type")
82
+ table.add_column("Created")
83
+ table.add_column("Home Store")
84
+ table.add_column("GUID", width=38, no_wrap=True)
85
+ table.add_column("Properties")
86
+ table.add_column("Classifications")
87
+
88
+ if type(elements) is list:
89
+ for element in elements:
90
+ header = element["elementHeader"]
91
+ el_q_name = element["properties"].get("qualifiedName", "---")
92
+ el_type = header["type"]["typeName"]
93
+ el_home = header["origin"]["homeMetadataCollectionName"]
94
+ el_create_time = header["versions"]["createTime"][:-10]
95
+ el_guid = header["guid"]
96
+ el_class = header.get("classifications", "---")
97
+
98
+ el_props_md = ""
99
+ for prop in element["properties"].keys():
100
+ el_props_md += f"* **{prop}**: {element['properties'][prop]}\n"
101
+ el_props_out = Markdown(el_props_md)
102
+
103
+ c_md = ""
104
+ if type(el_class) is list:
105
+ for classification in el_class:
106
+ classification_name = classification.get(
107
+ "classificationName", "---"
108
+ )
109
+ c_md = f"* **{classification_name}**\n"
110
+ class_props = classification.get(
111
+ "classificationProperties", "---"
112
+ )
113
+ if type(class_props) is dict:
114
+ for prop in class_props.keys():
115
+ c_md += f" * **{prop}**: {class_props[prop]}\n"
116
+ c_md_out = Markdown(c_md)
117
+
118
+ table.add_row(
119
+ el_q_name,
120
+ el_type,
121
+ el_create_time,
122
+ el_home,
123
+ el_guid,
124
+ el_props_out,
125
+ c_md_out,
126
+ )
127
+
128
+ return table
129
+ else:
130
+ print("No instances found")
131
+ sys.exit(1)
132
+
133
+ try:
134
+ console = Console(width=width, force_terminal=not jupyter)
135
+
136
+ with console.pager(styles=True):
137
+ console.print(generate_table())
138
+
139
+ except (
140
+ InvalidParameterException,
141
+ PropertyServerException,
142
+ UserNotAuthorizedException,
143
+ ) as e:
144
+ print_exception_response(e)
145
+ print("\n\nPerhaps the type name isn't known")
146
+ finally:
147
+ c_client.close_session()
148
+
149
+
150
+ def main():
151
+ parser = argparse.ArgumentParser()
152
+ parser.add_argument("--server", help="Name of the server to display status for")
153
+ parser.add_argument("--url", help="URL Platform to connect to")
154
+ parser.add_argument("--userid", help="User Id")
155
+ parser.add_argument("--password", help="Password")
156
+
157
+ args = parser.parse_args()
158
+
159
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
160
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
161
+ userid = args.userid if args.userid is not None else EGERIA_USER
162
+ password = args.password if args.password is not None else EGERIA_USER_PASSWORD
163
+
164
+ try:
165
+ om_type = Prompt.ask(
166
+ "Enter the Open Metadata Type to find elements of", default="Referenceable"
167
+ )
168
+ property_value = Prompt.ask("Enter the property value to search for")
169
+ property_names = Prompt.ask(
170
+ "Enter a comma seperated list of properties to search"
171
+ )
172
+ find_elements_by_prop_value(
173
+ om_type, property_value, [property_names], server, url, userid, password
174
+ )
175
+ except KeyboardInterrupt:
176
+ pass
177
+
178
+
179
+ if __name__ == "__main__":
180
+ main()