pyegeria 0.2.4__py3-none-any.whl → 5.3.0.dev3__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 (239) hide show
  1. pyegeria/README.md +35 -0
  2. pyegeria/__init__.py +345 -14
  3. pyegeria/_client.py +376 -126
  4. pyegeria/_deprecated_gov_engine.py +451 -0
  5. pyegeria/_exceptions.py +6 -6
  6. pyegeria/_globals.py +7 -1
  7. pyegeria/_validators.py +9 -6
  8. pyegeria/asset_catalog_omvs.py +807 -0
  9. pyegeria/automated_curation_omvs.py +3760 -0
  10. pyegeria/classification_manager_omvs.py +5238 -0
  11. pyegeria/collection_manager_omvs.py +2727 -0
  12. pyegeria/commands/README.md +47 -0
  13. pyegeria/commands/__init__.py +22 -0
  14. pyegeria/commands/cat/README.md +16 -0
  15. pyegeria/commands/cat/__init__.py +1 -0
  16. pyegeria/commands/cat/exp_list_glossaries.py +156 -0
  17. pyegeria/commands/cat/get_asset_graph.py +319 -0
  18. pyegeria/commands/cat/get_collection.py +148 -0
  19. pyegeria/commands/cat/get_project_dependencies.py +168 -0
  20. pyegeria/commands/cat/get_project_structure.py +168 -0
  21. pyegeria/commands/cat/get_tech_type_elements.py +174 -0
  22. pyegeria/commands/cat/glossary_actions.py +362 -0
  23. pyegeria/commands/cat/list_assets.py +176 -0
  24. pyegeria/commands/cat/list_cert_types.py +194 -0
  25. pyegeria/commands/cat/list_collections.py +162 -0
  26. pyegeria/commands/cat/list_deployed_catalogs.py +217 -0
  27. pyegeria/commands/cat/list_deployed_database_schemas.py +251 -0
  28. pyegeria/commands/cat/list_deployed_databases.py +202 -0
  29. pyegeria/commands/cat/list_glossaries.py +150 -0
  30. pyegeria/commands/cat/list_projects.py +221 -0
  31. pyegeria/commands/cat/list_servers_deployed_imp.py +158 -0
  32. pyegeria/commands/cat/list_tech_type_elements.py +190 -0
  33. pyegeria/commands/cat/list_tech_types.py +140 -0
  34. pyegeria/commands/cat/list_terms.py +242 -0
  35. pyegeria/commands/cat/list_todos.py +189 -0
  36. pyegeria/commands/cat/list_user_ids.py +145 -0
  37. pyegeria/commands/cli/__init__.py +13 -0
  38. pyegeria/commands/cli/egeria.py +1844 -0
  39. pyegeria/commands/cli/egeria_cat.py +638 -0
  40. pyegeria/commands/cli/egeria_login_tui.py +313 -0
  41. pyegeria/commands/cli/egeria_my.py +248 -0
  42. pyegeria/commands/cli/egeria_ops.py +502 -0
  43. pyegeria/commands/cli/egeria_tech.py +618 -0
  44. pyegeria/commands/cli/ops_config.py +45 -0
  45. pyegeria/commands/cli/txt_custom_v2.tcss +19 -0
  46. pyegeria/commands/doc/README.md +145 -0
  47. pyegeria/commands/doc/Visual Command Reference/README.md +511 -0
  48. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
  49. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
  50. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
  51. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
  52. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
  53. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
  54. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
  55. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
  56. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
  57. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
  58. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
  59. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
  60. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
  61. pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
  62. pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
  63. pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
  64. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
  65. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
  66. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
  67. pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
  68. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
  69. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
  70. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
  71. pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
  72. pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
  73. pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
  74. pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
  75. pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
  76. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
  77. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
  78. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
  79. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
  80. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
  81. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
  82. pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
  83. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
  84. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
  85. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
  86. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
  87. 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
  88. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
  89. 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
  90. 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
  91. 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
  92. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
  93. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
  94. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
  95. 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
  96. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
  97. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
  98. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
  99. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
  100. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
  101. 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
  102. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
  103. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
  104. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
  105. pyegeria/commands/doc/glossary/basic-glossary-tui.md +109 -0
  106. pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
  107. pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
  108. pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
  109. pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
  110. pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
  111. pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
  112. pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
  113. pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
  114. pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
  115. pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
  116. pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
  117. pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
  118. pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
  119. pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
  120. pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
  121. pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
  122. pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
  123. pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
  124. pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
  125. pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
  126. pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
  127. pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
  128. pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
  129. pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
  130. pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
  131. pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
  132. pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
  133. pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
  134. pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
  135. pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
  136. pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
  137. pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
  138. pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
  139. pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
  140. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +346 -0
  141. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
  142. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
  143. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
  144. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
  145. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
  146. 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
  147. 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
  148. 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
  149. 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
  150. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
  151. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
  152. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
  153. 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
  154. 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
  155. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
  156. 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
  157. pyegeria/commands/my/README.md +17 -0
  158. pyegeria/commands/my/__init__.py +0 -0
  159. pyegeria/commands/my/list_my_profile.py +163 -0
  160. pyegeria/commands/my/list_my_roles.py +151 -0
  161. pyegeria/commands/my/monitor_my_todos.py +205 -0
  162. pyegeria/commands/my/monitor_open_todos.py +175 -0
  163. pyegeria/commands/my/todo_actions.py +242 -0
  164. pyegeria/commands/ops/README.md +24 -0
  165. pyegeria/commands/ops/__init__.py +22 -0
  166. pyegeria/commands/ops/gov_server_actions.py +177 -0
  167. pyegeria/commands/ops/list_archives.py +161 -0
  168. pyegeria/commands/ops/list_catalog_targets.py +203 -0
  169. pyegeria/commands/ops/load_archive.py +75 -0
  170. pyegeria/commands/ops/monitor_asset_events.py +107 -0
  171. pyegeria/commands/ops/monitor_engine_activity.py +270 -0
  172. pyegeria/commands/ops/monitor_engine_activity_c.py +286 -0
  173. pyegeria/commands/ops/monitor_gov_eng_status.py +288 -0
  174. pyegeria/commands/ops/monitor_integ_daemon_status.py +321 -0
  175. pyegeria/commands/ops/monitor_platform_status.py +188 -0
  176. pyegeria/commands/ops/monitor_server_startup.py +117 -0
  177. pyegeria/commands/ops/monitor_server_status.py +182 -0
  178. pyegeria/commands/ops/orig_monitor_server_list.py +140 -0
  179. pyegeria/commands/ops/orig_monitor_server_status.py +124 -0
  180. pyegeria/commands/ops/refresh_integration_daemon.py +83 -0
  181. pyegeria/commands/ops/restart_integration_daemon.py +82 -0
  182. pyegeria/commands/ops/table_integ_daemon_status.py +237 -0
  183. pyegeria/commands/ops/x_engine_actions.py +76 -0
  184. pyegeria/commands/tech/README.md +24 -0
  185. pyegeria/commands/tech/__init__.py +0 -0
  186. pyegeria/commands/tech/get_element_info.py +144 -0
  187. pyegeria/commands/tech/get_guid_info.py +134 -0
  188. pyegeria/commands/tech/get_tech_details.py +173 -0
  189. pyegeria/commands/tech/get_tech_type_template.py +166 -0
  190. pyegeria/commands/tech/list_anchored_elements.py +205 -0
  191. pyegeria/commands/tech/list_asset_types.py +123 -0
  192. pyegeria/commands/tech/list_elements.py +168 -0
  193. pyegeria/commands/tech/list_elements_for_classification.py +171 -0
  194. pyegeria/commands/tech/list_elements_x.py +191 -0
  195. pyegeria/commands/tech/list_gov_action_processes.py +139 -0
  196. pyegeria/commands/tech/list_registered_services.py +180 -0
  197. pyegeria/commands/tech/list_related_elements.py +207 -0
  198. pyegeria/commands/tech/list_related_specification.py +169 -0
  199. pyegeria/commands/tech/list_relationship_types.py +164 -0
  200. pyegeria/commands/tech/list_relationships.py +179 -0
  201. pyegeria/commands/tech/list_tech_templates.py +360 -0
  202. pyegeria/commands/tech/list_valid_metadata_values.py +178 -0
  203. pyegeria/commands/tech/table_tech_templates.py +238 -0
  204. pyegeria/commands/tech/x_list_related_elements.py +165 -0
  205. pyegeria/core_omag_server_config.py +550 -313
  206. pyegeria/create_tech_guid_lists.py +105 -0
  207. pyegeria/egeria_cat_client.py +78 -0
  208. pyegeria/egeria_client.py +117 -0
  209. pyegeria/egeria_config_client.py +45 -0
  210. pyegeria/egeria_my_client.py +56 -0
  211. pyegeria/egeria_tech_client.py +93 -0
  212. pyegeria/feedback_manager_omvs.py +4573 -0
  213. pyegeria/full_omag_server_config.py +1337 -0
  214. pyegeria/glossary_browser_omvs.py +2507 -0
  215. pyegeria/glossary_manager_omvs.py +3597 -0
  216. pyegeria/mermaid_utilities.py +218 -0
  217. pyegeria/metadata_explorer_omvs.py +2371 -0
  218. pyegeria/my_profile_omvs.py +1021 -0
  219. pyegeria/platform_services.py +259 -218
  220. pyegeria/project_manager_omvs.py +1854 -0
  221. pyegeria/registered_info.py +111 -108
  222. pyegeria/runtime_manager_omvs.py +2299 -0
  223. pyegeria/server_operations.py +178 -71
  224. pyegeria/template_manager_omvs.py +1414 -0
  225. pyegeria/utils.py +75 -85
  226. pyegeria/valid_metadata_omvs.py +1911 -0
  227. pyegeria/x_action_author_omvs.py +200 -0
  228. pyegeria-5.3.0.dev3.dist-info/METADATA +70 -0
  229. pyegeria-5.3.0.dev3.dist-info/RECORD +232 -0
  230. {pyegeria-0.2.4.dist-info → pyegeria-5.3.0.dev3.dist-info}/WHEEL +1 -1
  231. pyegeria-5.3.0.dev3.dist-info/entry_points.txt +81 -0
  232. pyegeria/config.toml +0 -11
  233. pyegeria/curation_omvs.py +0 -458
  234. pyegeria/exceptions.py +0 -382
  235. pyegeria/glossary_omvs.py +0 -639
  236. pyegeria/gov_engine.py +0 -573
  237. pyegeria-0.2.4.dist-info/METADATA +0 -57
  238. pyegeria-0.2.4.dist-info/RECORD +0 -19
  239. {pyegeria-0.2.4.dist-info/licenses → pyegeria-5.3.0.dev3.dist-info}/LICENSE +0 -0
@@ -0,0 +1,221 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ SPDX-Lic
4
+ ense-Identifier: Apache-2.0
5
+ Copyright Contributors to the ODPi Egeria project.
6
+
7
+ Unit tests for the Utils helper functions using the Pytest framework.
8
+
9
+
10
+ A simple display for glossary terms
11
+ """
12
+ import argparse
13
+ import json
14
+ import os
15
+ import time
16
+
17
+ from rich import box
18
+ from rich import print
19
+ from rich.console import Console
20
+ from rich.prompt import Prompt
21
+ from rich.table import Table
22
+
23
+ from pyegeria import (
24
+ InvalidParameterException,
25
+ PropertyServerException,
26
+ UserNotAuthorizedException,
27
+ print_exception_response,
28
+ )
29
+ from pyegeria import ProjectManager, ClassificationManager
30
+
31
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
32
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
33
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
34
+ EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
35
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
36
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
37
+ )
38
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
39
+ EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
40
+ "EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
41
+ )
42
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
43
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
44
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
45
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
46
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
47
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
48
+
49
+
50
+ def display_project_list(
51
+ project_name: str,
52
+ server: str,
53
+ url: str,
54
+ username: str,
55
+ user_pass: str,
56
+ save_output: bool,
57
+ jupyter: bool = EGERIA_JUPYTER,
58
+ width: int = EGERIA_WIDTH,
59
+ ):
60
+ p_client = ProjectManager(server, url, user_id=username)
61
+ token = p_client.create_egeria_bearer_token(username, user_pass)
62
+ c_client = ClassificationManager(server, url, token=token)
63
+
64
+ def generate_table(project_name: str) -> Table:
65
+ """Make a new table."""
66
+ table = Table(
67
+ title=f"Project List: {project_name} @ {time.asctime()}",
68
+ header_style="white on dark_blue",
69
+ show_lines=True,
70
+ box=box.ROUNDED,
71
+ caption=f"Project list for Server '{server}' @ Platform - {url}",
72
+ expand=True,
73
+ )
74
+
75
+ table.add_column("Project Name")
76
+ table.add_column("Description")
77
+
78
+ table.add_column("Classifications")
79
+ table.add_column("Qualified Name")
80
+ table.add_column("Identifier")
81
+ table.add_column("Phase")
82
+ table.add_column("Health")
83
+ table.add_column("Status")
84
+ table.add_column("Start Date")
85
+ table.add_column("End Date")
86
+ table.add_column("Contracts")
87
+
88
+ projects = p_client.find_projects(project_name)
89
+
90
+ if projects is None:
91
+ name = " "
92
+ guid = " "
93
+ classification = " "
94
+ qualified_name = " "
95
+ identifier = " "
96
+ phase = " "
97
+ health = " "
98
+ status = " "
99
+ start = " "
100
+ end = " "
101
+ description = " "
102
+ elif type(projects) == str:
103
+ raise ValueError("-->This is not a known project")
104
+ else:
105
+ sorted_projects = sorted(
106
+ projects, key=lambda k: k["properties"].get("name", "---")
107
+ )
108
+
109
+ for project in sorted_projects:
110
+ classification = ""
111
+ guid = project["elementHeader"]["guid"]
112
+ props = project["properties"]
113
+ name = props.get("name", "None")
114
+ p_class = project["elementHeader"].get("classifications")
115
+ if p_class:
116
+ for classif in p_class:
117
+ classification += f"* {classif.get('classificationName')}\n"
118
+ qualified_name = props.get("qualifiedName", " ")
119
+ identifier = props.get("identifier", " ")
120
+ phase = props.get("projectPhase", " ")
121
+ health = props.get("projectHealth", " ")
122
+ status = props.get("projectStatus", " ")
123
+ description = props.get("description", " ")
124
+ start = props.get("startDate", " ")[0:10]
125
+ end = props.get("plannedEndDate", " ")
126
+ additional_properties = project.get("additionalProperties")
127
+ if additional_properties is not None:
128
+ props = json.dumps(additional_properties)
129
+
130
+ governed_by = c_client.get_related_elements(guid, "GovernedBy")
131
+ if type(governed_by) is list:
132
+ for gov in governed_by:
133
+ rel_guid = gov["relatedElement"]["elementHeader"]["guid"]
134
+ rel_title = gov["relatedElement"]["properties"].get(
135
+ "title", "---"
136
+ )
137
+ certified_partner = f"{rel_title}: \n"
138
+ certified = c_client.get_related_elements(
139
+ rel_guid, "Certification"
140
+ )
141
+ if type(certified) is list:
142
+ for rel_elem in certified:
143
+ p_name = rel_elem["relatedElement"]["properties"][
144
+ "name"
145
+ ]
146
+ certified_partner += f"* {p_name}\n"
147
+ else:
148
+ certified_partner = "---"
149
+
150
+ table.add_row(
151
+ name,
152
+ description,
153
+ classification,
154
+ qualified_name,
155
+ identifier,
156
+ phase,
157
+ health,
158
+ status,
159
+ start,
160
+ end,
161
+ certified_partner,
162
+ )
163
+
164
+ p_client.close_session()
165
+ return table
166
+
167
+ try:
168
+ # with Live(generate_table(), refresh_per_second=4, screen=True) as live:
169
+ # while True:
170
+ # time.sleep(2)
171
+ # live.update(generate_table())
172
+ console = Console(
173
+ record=True, width=width, force_terminal=not jupyter, soft_wrap=True
174
+ )
175
+ with console.pager():
176
+ console.print(generate_table(project_name), soft_wrap=True)
177
+ if save_output:
178
+ console.save_html("projects.html")
179
+
180
+ except (
181
+ InvalidParameterException,
182
+ PropertyServerException,
183
+ UserNotAuthorizedException,
184
+ ValueError,
185
+ ) as e:
186
+ if type(e) is str:
187
+ print(e)
188
+ else:
189
+ print_exception_response(e)
190
+ except KeyboardInterrupt:
191
+ pass
192
+ finally:
193
+ p_client.close_session()
194
+
195
+
196
+ def main():
197
+ parser = argparse.ArgumentParser()
198
+ parser.add_argument("--server", help="Name of the server to display status for")
199
+ parser.add_argument("--url", help="URL Platform to connect to")
200
+ parser.add_argument("--userid", help="User Id")
201
+ parser.add_argument("--save-output", help="Save output to file?")
202
+ parser.add_argument("--password", help="User Password")
203
+ # parser.add_argument("--sponsor", help="Name of sponsor to search")
204
+ args = parser.parse_args()
205
+
206
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
207
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
208
+ userid = args.userid if args.userid is not None else EGERIA_USER
209
+ user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
210
+
211
+ try:
212
+ save_output = args.save_output if args.save_output is not None else False
213
+ project_name = Prompt.ask("Enter the Project to retrieve:", default="*")
214
+ display_project_list(project_name, server, url, userid, user_pass, save_output)
215
+
216
+ except KeyboardInterrupt:
217
+ pass
218
+
219
+
220
+ if __name__ == "__main__":
221
+ main()
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ SPDX-License-Identifier: Apache-2.0
4
+ Copyright Contributors to the ODPi Egeria project.
5
+
6
+ Display by deployed implementation type.
7
+
8
+ Note: This implementation is using the runtime manager.
9
+
10
+
11
+
12
+ A simple server status display
13
+ """
14
+ import argparse
15
+ import os
16
+ import sys
17
+ import time
18
+
19
+ from rich.console import Console
20
+ from rich.markdown import Markdown
21
+ from rich.prompt import Prompt
22
+ from rich.table import Table
23
+ from rich.text import Text
24
+
25
+ from pyegeria import (
26
+ InvalidParameterException,
27
+ PropertyServerException,
28
+ UserNotAuthorizedException,
29
+ print_exception_response,
30
+ RuntimeManager,
31
+ )
32
+
33
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
34
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
35
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
36
+ EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
37
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
38
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
39
+ )
40
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
41
+ EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
42
+ "EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
43
+ )
44
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
45
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
46
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
47
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
48
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
49
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
50
+
51
+
52
+ def display_servers_by_dep_imp(
53
+ filter: str = "*",
54
+ view_server: str = EGERIA_VIEW_SERVER,
55
+ view_url: str = EGERIA_VIEW_SERVER_URL,
56
+ user: str = EGERIA_USER,
57
+ user_pass: str = EGERIA_USER_PASSWORD,
58
+ jupyter: bool = EGERIA_JUPYTER,
59
+ width: int = EGERIA_WIDTH,
60
+ ):
61
+ p_client = RuntimeManager(view_server, view_url, user, user_pass)
62
+ token = p_client.create_egeria_bearer_token()
63
+
64
+ def generate_table() -> Table:
65
+ """Make a new table."""
66
+ table = Table(
67
+ title=f"Servers by Deployed Implementation Type - {time.asctime()}",
68
+ style="bold white on black",
69
+ row_styles=["bold white on black"],
70
+ header_style="white on dark_blue",
71
+ title_style="bold white on black",
72
+ caption_style="white on black",
73
+ caption=f"Platform - '{view_url}'",
74
+ show_lines=True,
75
+ )
76
+
77
+ table.add_column("Server")
78
+ table.add_column("Deployed Impl Type")
79
+ table.add_column("Zones")
80
+
81
+ table.add_column("Description")
82
+ table.add_column("Qualified Name & GUID", no_wrap=True)
83
+
84
+ unsorted_server_list = p_client.get_servers_by_dep_impl_type(filter)
85
+ if type(unsorted_server_list) is str:
86
+ print("No matching Software Servers found?")
87
+ sys.exit(1)
88
+ server_list = sorted(
89
+ unsorted_server_list,
90
+ key=lambda x: x["properties"].get("displayName", "---").lower(),
91
+ )
92
+
93
+ for server in server_list:
94
+ display_name = server["properties"].get("displayName", "---")
95
+ qualified_name = server["properties"].get("qualifiedName", "---")
96
+ classifications = server["elementHeader"].get("classifications", None)
97
+ zones = ""
98
+ if classifications:
99
+ for clas in classifications:
100
+ if clas["classificationName"] == "AssetZoneMembership":
101
+ classification_props = clas["classificationProperties"]
102
+ zone_membership = classification_props.get(
103
+ "zoneMembership", None
104
+ )
105
+ if zone_membership:
106
+ for z in zone_membership.keys():
107
+ zones += f"{zone_membership[z]}, "
108
+ zones = zones[:-2]
109
+
110
+ impl_type = server["properties"].get("deployedImplementationType", "---")
111
+ server_guid = server["elementHeader"]["guid"]
112
+ server_desc = server["properties"].get("resourceDescription", "---")
113
+
114
+ server_id = Text(f"{qualified_name}\n&\n{server_guid}", justify="center")
115
+
116
+ table.add_row(display_name, impl_type, zones, server_desc, server_id)
117
+
118
+ return table
119
+
120
+ try:
121
+ console = Console(width=width, force_terminal=not jupyter)
122
+
123
+ with console.pager(styles=True):
124
+ console.print(generate_table())
125
+
126
+ except (
127
+ InvalidParameterException,
128
+ PropertyServerException,
129
+ UserNotAuthorizedException,
130
+ ) as e:
131
+ print_exception_response(e)
132
+ except KeyboardInterrupt:
133
+ pass
134
+ finally:
135
+ p_client.close_session()
136
+
137
+
138
+ def main():
139
+ parser = argparse.ArgumentParser()
140
+
141
+ parser.add_argument("--server", help="Name of the server to display status for")
142
+ parser.add_argument("--url", help="URL Platform to connect to")
143
+ parser.add_argument("--userid", help="User Id")
144
+ parser.add_argument("--password", help="User Password")
145
+ args = parser.parse_args()
146
+
147
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
148
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
149
+ userid = args.userid if args.userid is not None else EGERIA_ADMIN_USER
150
+ user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
151
+ filter = Prompt.ask(
152
+ "Filter deployed for deployed implementation type by search string", default="*"
153
+ )
154
+ display_servers_by_dep_imp(filter, server, url, userid, user_pass)
155
+
156
+
157
+ if __name__ == "__main__":
158
+ main()
@@ -0,0 +1,190 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ SPDX-License-Identifier: Apache-2.0
4
+ Copyright Contributors to the ODPi Egeria project.
5
+
6
+ Display the status of cataloged platforms and servers.
7
+ """
8
+ import argparse
9
+ import os
10
+ import sys
11
+ import time
12
+
13
+ import rich.box as box
14
+ from rich import print
15
+ from rich.console import Console
16
+ from rich.markdown import Markdown
17
+ from rich.panel import Panel
18
+ from rich.prompt import Prompt
19
+ from rich.table import Table
20
+
21
+ from pyegeria import (
22
+ InvalidParameterException,
23
+ PropertyServerException,
24
+ UserNotAuthorizedException,
25
+ print_exception_response,
26
+ AutomatedCuration,
27
+ )
28
+
29
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
30
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
31
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
32
+ EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
33
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
34
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
35
+ )
36
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
37
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
38
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
39
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
40
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
41
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
42
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
43
+
44
+
45
+ disable_ssl_warnings = True
46
+ console = Console(width=200)
47
+
48
+ guid_list = []
49
+
50
+
51
+ def list_tech_elements(
52
+ tech_name: str,
53
+ server_name: str,
54
+ platform_url: str,
55
+ user: str,
56
+ user_pass: str,
57
+ jupyter: bool = EGERIA_JUPYTER,
58
+ width: int = EGERIA_WIDTH,
59
+ ):
60
+ console = Console(width=width, force_terminal=not jupyter)
61
+
62
+ a_client = AutomatedCuration(server_name, platform_url, user_id=user)
63
+ token = a_client.create_egeria_bearer_token(user, user_pass)
64
+
65
+ def build_classifications(classification: dict) -> Markdown:
66
+ class_md = "\n"
67
+ for c in classification:
68
+ c_type = c["classificationName"]
69
+ if c_type == "Anchors":
70
+ continue
71
+ class_md += f"* Classification: {c_type}\n"
72
+ class_props = c.get("classificationProperties", None)
73
+ if class_props is None:
74
+ continue
75
+ for prop in class_props.keys():
76
+ class_md += f"\t* {prop}: {class_props[prop]}\n"
77
+ if class_md == "-":
78
+ output = None
79
+ else:
80
+ output = class_md
81
+ return output
82
+
83
+ def generate_table() -> Table:
84
+ """Make a new table."""
85
+ table = Table(
86
+ title=f"Tech Type Elements for {tech_name} @ {time.asctime()}",
87
+ caption=f"{platform_url} - {server_name} @ {time.asctime()}",
88
+ style="bold bright_white on black",
89
+ row_styles=["bold bright_white on black"],
90
+ header_style="white on dark_blue",
91
+ title_style="bold bright_white on black",
92
+ caption_style="white on black",
93
+ show_lines=True,
94
+ box=box.ROUNDED,
95
+ expand=True,
96
+ )
97
+
98
+ table.add_column("Qualified Name/GUID", width=38, no_wrap=True)
99
+ table.add_column("Properties", width=40)
100
+ table.add_column("Classifications", width=50)
101
+
102
+ tech_elements = a_client.get_technology_type_elements(
103
+ tech_name, get_templates=False
104
+ )
105
+ if type(tech_elements) is str:
106
+ console.print(f"No elements found for {tech_name}")
107
+ sys.exit(1)
108
+
109
+ note: str = " "
110
+ for element in tech_elements:
111
+ header = element["elementHeader"]
112
+ tech_type = header["type"]["typeName"]
113
+ tech_collection = header["origin"]["homeMetadataCollectionName"]
114
+ tech_created_by = header["versions"]["createdBy"]
115
+ tech_created_at = header["versions"]["createTime"]
116
+ tech_guid = header["guid"]
117
+ tech_classifications = header["classifications"]
118
+ class_md = build_classifications(tech_classifications)
119
+
120
+ referenceables = element["referenceableProperties"]
121
+ tech_qualified_name = referenceables["qualifiedName"]
122
+ extended = referenceables["extendedProperties"]
123
+ ex_md: str = ""
124
+ for key, value in extended.items():
125
+ ex_md += f"* {key}: {value}\n"
126
+
127
+ note = (
128
+ f"{ex_md}\n"
129
+ f"* Created by: {tech_created_by}\n"
130
+ f"* Created at: {tech_created_at}\n"
131
+ f"* Home Collection: {tech_collection}\n"
132
+ )
133
+
134
+ interfaces = extended.get("connectorInterfaces", None)
135
+ if interfaces is not None:
136
+ interface_type_name = interfaces["typeName"]
137
+ interface_array_cnt = interfaces["arrayCount"]
138
+ note += f"* Interface Type: {interface_type_name}\n"
139
+ for i in range(0, int(interface_array_cnt)):
140
+ note += (
141
+ f"\t* Type: {interfaces['arrayValues']['propertyValueMap'][str(i)]['typeName']}"
142
+ f"\tName: {interfaces['arrayValues']['propertiesAsStrings'][str(i)]}\n"
143
+ )
144
+ note_md = Markdown(note)
145
+ qn = Markdown(f"\n{tech_qualified_name}\n \n--- \n\n\n{tech_guid}")
146
+ cm = Markdown(class_md)
147
+ table.add_row(qn, note_md, cm)
148
+ return table
149
+
150
+ try:
151
+ console = Console(width=width, force_terminal=not jupyter)
152
+
153
+ with console.pager(styles=True):
154
+ console.print(generate_table())
155
+
156
+ except (
157
+ InvalidParameterException,
158
+ PropertyServerException,
159
+ UserNotAuthorizedException,
160
+ ) as e:
161
+ print_exception_response(e)
162
+ print("\n\nPerhaps the type name isn't known")
163
+ finally:
164
+ a_client.close_session()
165
+
166
+
167
+ def main():
168
+ parser = argparse.ArgumentParser()
169
+
170
+ parser.add_argument("--server", help="Name of the server to display status for")
171
+ parser.add_argument("--url", help="URL Platform to connect to")
172
+ parser.add_argument("--userid", help="User Id")
173
+ parser.add_argument("--password", help="User Password")
174
+ args = parser.parse_args()
175
+
176
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
177
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
178
+ userid = args.userid if args.userid is not None else EGERIA_USER
179
+ user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
180
+ try:
181
+ tech_name = Prompt.ask(
182
+ "Enter the tech type to view:", default="PostgreSQL Server"
183
+ )
184
+ list_tech_elements(tech_name, server, url, userid, user_pass)
185
+ except KeyboardInterrupt:
186
+ pass
187
+
188
+
189
+ if __name__ == "__main__":
190
+ main()