pyegeria 5.3.9.9.3__py3-none-any.whl → 5.5.3.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.

Potentially problematic release.


This version of pyegeria might be problematic. Click here for more details.

Files changed (272) hide show
  1. commands/__init__.py +24 -0
  2. commands/cat/Dr-Egeria_md-orig.py +2 -2
  3. commands/cat/__init__.py +1 -17
  4. commands/cat/collection_actions.py +197 -0
  5. commands/cat/dr_egeria_command_help.py +372 -0
  6. commands/cat/dr_egeria_jupyter.py +7 -7
  7. commands/cat/dr_egeria_md.py +27 -182
  8. commands/cat/exp_list_glossaries.py +11 -14
  9. commands/cat/get_asset_graph.py +37 -267
  10. commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
  11. commands/cat/get_project_dependencies.py +14 -14
  12. commands/cat/get_project_structure.py +15 -14
  13. commands/cat/get_tech_type_elements.py +16 -116
  14. commands/cat/glossary_actions.py +145 -298
  15. commands/cat/list_assets.py +3 -11
  16. commands/cat/list_cert_types.py +17 -63
  17. commands/cat/list_collections.py +46 -138
  18. commands/cat/list_deployed_catalogs.py +15 -27
  19. commands/cat/list_deployed_database_schemas.py +27 -43
  20. commands/cat/list_deployed_databases.py +16 -31
  21. commands/cat/list_deployed_servers.py +35 -54
  22. commands/cat/list_glossaries.py +18 -17
  23. commands/cat/list_projects.py +10 -12
  24. commands/cat/list_tech_type_elements.py +21 -37
  25. commands/cat/list_tech_types.py +13 -25
  26. commands/cat/list_terms.py +38 -79
  27. commands/cat/list_todos.py +4 -11
  28. commands/cat/list_user_ids.py +3 -10
  29. commands/cat/my_reports.py +559 -0
  30. commands/cat/run_report.py +394 -0
  31. commands/cat/run_report_orig.py +528 -0
  32. commands/cli/egeria.py +222 -247
  33. commands/cli/egeria_cat.py +68 -81
  34. commands/cli/egeria_my.py +13 -0
  35. commands/cli/egeria_ops.py +69 -74
  36. commands/cli/egeria_tech.py +17 -93
  37. commands/cli/ops_config.py +3 -6
  38. commands/{cat/list_categories.py → deprecated/list_data_designer.py} +53 -64
  39. commands/{cat/list_data_structures.py → deprecated/list_data_structures_full.py} +3 -6
  40. commands/deprecated/old_get_asset_graph.py +315 -0
  41. commands/my/__init__.py +0 -2
  42. commands/my/list_my_profile.py +27 -34
  43. commands/my/list_my_roles.py +1 -7
  44. commands/my/monitor_my_todos.py +1 -7
  45. commands/my/monitor_open_todos.py +6 -7
  46. commands/my/todo_actions.py +4 -5
  47. commands/ops/__init__.py +0 -2
  48. commands/ops/gov_server_actions.py +17 -21
  49. commands/ops/list_archives.py +17 -38
  50. commands/ops/list_catalog_targets.py +33 -40
  51. commands/ops/load_archive.py +35 -26
  52. commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
  53. commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
  54. commands/ops/monitor_engine_activity.py +79 -77
  55. commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
  56. commands/ops/monitor_platform_status.py +38 -50
  57. commands/ops/monitor_server_startup.py +6 -11
  58. commands/ops/monitor_server_status.py +7 -11
  59. commands/ops/orig_monitor_server_list.py +8 -8
  60. commands/ops/orig_monitor_server_status.py +1 -5
  61. commands/ops/refresh_integration_daemon.py +5 -5
  62. commands/ops/restart_integration_daemon.py +5 -5
  63. commands/ops/table_integ_daemon_status.py +6 -6
  64. commands/ops/x_engine_actions.py +7 -7
  65. commands/tech/__init__.py +0 -2
  66. commands/tech/{generic_actions.py → element_actions.py} +6 -11
  67. commands/tech/get_element_info.py +20 -29
  68. commands/tech/get_guid_info.py +23 -42
  69. commands/tech/get_tech_details.py +20 -35
  70. commands/tech/get_tech_type_template.py +28 -39
  71. commands/tech/list_all_om_type_elements.py +24 -30
  72. commands/tech/list_all_om_type_elements_x.py +22 -28
  73. commands/tech/list_all_related_elements.py +19 -28
  74. commands/tech/list_anchored_elements.py +22 -30
  75. commands/tech/list_asset_types.py +19 -24
  76. commands/tech/list_elements_by_classification_by_property_value.py +26 -32
  77. commands/tech/list_elements_by_property_value.py +19 -25
  78. commands/tech/list_elements_by_property_value_x.py +20 -28
  79. commands/tech/list_elements_for_classification.py +28 -41
  80. commands/tech/list_gov_action_processes.py +16 -27
  81. commands/tech/list_information_supply_chains.py +22 -30
  82. commands/tech/list_registered_services.py +14 -26
  83. commands/tech/list_related_elements_with_prop_value.py +15 -25
  84. commands/tech/list_related_specification.py +1 -4
  85. commands/tech/list_relationship_types.py +15 -25
  86. commands/tech/list_relationships.py +20 -36
  87. commands/tech/list_solution_blueprints.py +28 -33
  88. commands/tech/list_solution_components.py +23 -29
  89. commands/tech/list_solution_roles.py +21 -32
  90. commands/tech/list_tech_templates.py +51 -54
  91. commands/tech/list_valid_metadata_values.py +5 -9
  92. commands/tech/table_tech_templates.py +2 -6
  93. commands/tech/x_list_related_elements.py +1 -4
  94. examples/GeoSpatial Products Example.py +524 -0
  95. examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
  96. examples/Jupyter Notebooks/README.md +2 -0
  97. examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
  98. examples/Jupyter Notebooks/common/__init__.py +14 -0
  99. examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
  100. examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
  101. examples/Jupyter Notebooks/common/globals.ipynb +184 -0
  102. examples/Jupyter Notebooks/common/globals.py +154 -0
  103. examples/Jupyter Notebooks/common/orig_globals.py +152 -0
  104. examples/format_sets/all_format_sets.json +910 -0
  105. examples/format_sets/custom_format_sets.json +268 -0
  106. examples/format_sets/subset_format_sets.json +187 -0
  107. examples/format_sets_save_load_example.py +291 -0
  108. examples/jacquard_data_sets.py +129 -0
  109. examples/output_formats_example.py +193 -0
  110. examples/test_jacquard_data_sets.py +54 -0
  111. examples/test_jacquard_data_sets_scenarios.py +94 -0
  112. md_processing/__init__.py +90 -0
  113. md_processing/command_dispatcher.py +33 -0
  114. md_processing/command_mapping.py +221 -0
  115. md_processing/data/commands/commands_data_designer.json +537 -0
  116. md_processing/data/commands/commands_external_reference.json +733 -0
  117. md_processing/data/commands/commands_feedback.json +155 -0
  118. md_processing/data/commands/commands_general.json +204 -0
  119. md_processing/data/commands/commands_glossary.json +218 -0
  120. md_processing/data/commands/commands_governance.json +3678 -0
  121. md_processing/data/commands/commands_product_manager.json +865 -0
  122. md_processing/data/commands/commands_project.json +642 -0
  123. md_processing/data/commands/commands_solution_architect.json +366 -0
  124. md_processing/data/commands.json +17568 -0
  125. md_processing/data/commands_working.json +30641 -0
  126. md_processing/data/gened_report_specs.py +6584 -0
  127. md_processing/data/generated_format_sets.json +6533 -0
  128. md_processing/data/generated_format_sets_old.json +4137 -0
  129. md_processing/data/generated_format_sets_old.py +45 -0
  130. md_processing/dr_egeria.py +182 -0
  131. md_processing/md_commands/__init__.py +3 -0
  132. md_processing/md_commands/data_designer_commands.py +1276 -0
  133. md_processing/md_commands/ext_ref_commands.py +530 -0
  134. md_processing/md_commands/feedback_commands.py +726 -0
  135. md_processing/md_commands/glossary_commands.py +684 -0
  136. md_processing/md_commands/governance_officer_commands.py +600 -0
  137. md_processing/md_commands/product_manager_commands.py +1266 -0
  138. md_processing/md_commands/project_commands.py +383 -0
  139. md_processing/md_commands/solution_architect_commands.py +1184 -0
  140. md_processing/md_commands/view_commands.py +295 -0
  141. md_processing/md_processing_utils/__init__.py +4 -0
  142. md_processing/md_processing_utils/common_md_proc_utils.py +1249 -0
  143. md_processing/md_processing_utils/common_md_utils.py +578 -0
  144. md_processing/md_processing_utils/determine_width.py +103 -0
  145. md_processing/md_processing_utils/extraction_utils.py +547 -0
  146. md_processing/md_processing_utils/gen_report_specs.py +643 -0
  147. md_processing/md_processing_utils/generate_dr_help.py +193 -0
  148. md_processing/md_processing_utils/generate_md_cmd_templates.py +144 -0
  149. md_processing/md_processing_utils/generate_md_templates.py +83 -0
  150. md_processing/md_processing_utils/md_processing_constants.py +1228 -0
  151. md_processing/md_processing_utils/message_constants.py +19 -0
  152. pyegeria/__init__.py +201 -443
  153. pyegeria/core/__init__.py +40 -0
  154. pyegeria/core/_base_platform_client.py +574 -0
  155. pyegeria/core/_base_server_client.py +573 -0
  156. pyegeria/core/_exceptions.py +457 -0
  157. pyegeria/core/_globals.py +60 -0
  158. pyegeria/core/_server_client.py +6073 -0
  159. pyegeria/core/_validators.py +257 -0
  160. pyegeria/core/config.py +654 -0
  161. pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
  162. pyegeria/core/load_config.py +37 -0
  163. pyegeria/core/logging_configuration.py +207 -0
  164. pyegeria/core/mcp_adapter.py +144 -0
  165. pyegeria/core/mcp_server.py +212 -0
  166. pyegeria/core/utils.py +405 -0
  167. pyegeria/deprecated/__init__.py +0 -0
  168. pyegeria/{_client.py → deprecated/_client.py} +62 -24
  169. pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
  170. pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1988 -1878
  171. pyegeria/deprecated/output_formatter_with_machine_keys.py +1127 -0
  172. pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +216 -229
  173. pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
  174. pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
  175. pyegeria/egeria_cat_client.py +25 -51
  176. pyegeria/egeria_client.py +140 -98
  177. pyegeria/egeria_config_client.py +48 -24
  178. pyegeria/egeria_tech_client.py +170 -83
  179. pyegeria/models/__init__.py +150 -0
  180. pyegeria/models/collection_models.py +168 -0
  181. pyegeria/models/models.py +654 -0
  182. pyegeria/omvs/__init__.py +84 -0
  183. pyegeria/omvs/action_author.py +342 -0
  184. pyegeria/omvs/actor_manager.py +5980 -0
  185. pyegeria/omvs/asset_catalog.py +842 -0
  186. pyegeria/omvs/asset_maker.py +2736 -0
  187. pyegeria/omvs/automated_curation.py +4403 -0
  188. pyegeria/omvs/classification_manager.py +11213 -0
  189. pyegeria/omvs/collection_manager.py +5780 -0
  190. pyegeria/omvs/community_matters_omvs.py +468 -0
  191. pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
  192. pyegeria/{data_designer_omvs.py → omvs/data_designer.py} +1991 -1691
  193. pyegeria/omvs/data_discovery.py +869 -0
  194. pyegeria/omvs/data_engineer.py +372 -0
  195. pyegeria/omvs/digital_business.py +1133 -0
  196. pyegeria/omvs/external_links.py +1752 -0
  197. pyegeria/omvs/feedback_manager.py +834 -0
  198. pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
  199. pyegeria/omvs/glossary_manager.py +3231 -0
  200. pyegeria/omvs/governance_officer.py +3009 -0
  201. pyegeria/omvs/lineage_linker.py +314 -0
  202. pyegeria/omvs/location_arena.py +1525 -0
  203. pyegeria/omvs/metadata_expert.py +668 -0
  204. pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
  205. pyegeria/omvs/my_profile.py +1042 -0
  206. pyegeria/omvs/notification_manager.py +358 -0
  207. pyegeria/omvs/people_organizer.py +394 -0
  208. pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
  209. pyegeria/omvs/product_manager.py +1825 -0
  210. pyegeria/omvs/project_manager.py +1907 -0
  211. pyegeria/omvs/reference_data.py +1140 -0
  212. pyegeria/omvs/registered_info.py +334 -0
  213. pyegeria/omvs/runtime_manager.py +2817 -0
  214. pyegeria/omvs/schema_maker.py +446 -0
  215. pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
  216. pyegeria/omvs/solution_architect.py +6490 -0
  217. pyegeria/omvs/specification_properties.py +37 -0
  218. pyegeria/omvs/subject_area.py +1042 -0
  219. pyegeria/omvs/template_manager_omvs.py +236 -0
  220. pyegeria/omvs/time_keeper.py +1761 -0
  221. pyegeria/omvs/valid_metadata.py +3221 -0
  222. pyegeria/omvs/valid_metadata_lists.py +37 -0
  223. pyegeria/omvs/valid_type_lists.py +37 -0
  224. pyegeria/view/__init__.py +28 -0
  225. pyegeria/view/_output_format_models.py +514 -0
  226. pyegeria/view/_output_formats.py +14 -0
  227. pyegeria/view/base_report_formats.py +2719 -0
  228. pyegeria/view/dr_egeria_reports.py +56 -0
  229. pyegeria/view/format_set_executor.py +397 -0
  230. pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
  231. pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
  232. pyegeria/view/output_formatter.py +1297 -0
  233. pyegeria-5.5.3.3.dist-info/METADATA +218 -0
  234. pyegeria-5.5.3.3.dist-info/RECORD +241 -0
  235. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
  236. pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
  237. pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
  238. commands/cat/.DS_Store +0 -0
  239. commands/cat/README.md +0 -16
  240. commands/cli/txt_custom_v2.tcss +0 -19
  241. commands/my/README.md +0 -17
  242. commands/ops/README.md +0 -24
  243. commands/ops/monitor_asset_events.py +0 -108
  244. commands/tech/README.md +0 -24
  245. pyegeria/.DS_Store +0 -0
  246. pyegeria/README.md +0 -35
  247. pyegeria/_globals.py +0 -47
  248. pyegeria/_validators.py +0 -385
  249. pyegeria/asset_catalog_omvs.py +0 -864
  250. pyegeria/automated_curation_omvs.py +0 -3765
  251. pyegeria/collection_manager_omvs.py +0 -2744
  252. pyegeria/dr.egeria spec.md +0 -9
  253. pyegeria/egeria_my_client.py +0 -56
  254. pyegeria/feedback_manager_omvs.py +0 -4573
  255. pyegeria/glossary_browser_omvs.py +0 -3728
  256. pyegeria/glossary_manager_omvs.py +0 -2440
  257. pyegeria/m_test.py +0 -118
  258. pyegeria/md_processing_helpers.py +0 -58
  259. pyegeria/md_processing_utils_orig.py +0 -1103
  260. pyegeria/metadata_explorer_omvs.py +0 -2326
  261. pyegeria/my_profile_omvs.py +0 -1022
  262. pyegeria/output_formatter.py +0 -389
  263. pyegeria/project_manager_omvs.py +0 -1933
  264. pyegeria/registered_info.py +0 -167
  265. pyegeria/solution_architect_omvs.py +0 -2156
  266. pyegeria/template_manager_omvs.py +0 -1414
  267. pyegeria/utils.py +0 -197
  268. pyegeria-5.3.9.9.3.dist-info/METADATA +0 -72
  269. pyegeria-5.3.9.9.3.dist-info/RECORD +0 -143
  270. pyegeria-5.3.9.9.3.dist-info/entry_points.txt +0 -99
  271. /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
  272. {pyegeria-5.3.9.9.3.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
@@ -18,11 +18,9 @@ from rich.tree import Tree
18
18
 
19
19
  from pyegeria import (
20
20
  CollectionManager,
21
- InvalidParameterException,
22
- PropertyServerException,
23
- UserNotAuthorizedException, NO_ELEMENTS_FOUND,
24
- )
25
- from pyegeria._exceptions import print_exception_response
21
+ NO_ELEMENTS_FOUND,
22
+ PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table
23
+ )
26
24
 
27
25
  disable_ssl_warnings = True
28
26
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
@@ -74,9 +72,9 @@ def collection_viewer(
74
72
  )
75
73
  text_guid = Text(f"* GUID: {member['guid']}", "green")
76
74
  text_collection_type = Text(
77
- f"* Collection Type: {member['collectionType']}"
75
+ f"* Collection Type: {member.get('typeName','')}"
78
76
  )
79
- text_description = Text(f"* Description: {member['description']}")
77
+ text_description = Text(f"* Description: {member.get('description','')}")
80
78
  p = Panel.fit(
81
79
  f"{text_collection_name}[green]\n{text_qualified_name}\n{text_guid}\n"
82
80
  f"{text_collection_type}\n{text_description}"
@@ -94,9 +92,7 @@ def collection_viewer(
94
92
  )
95
93
  walk_collection_hierarchy(branch, collection_client, member["guid"])
96
94
  else:
97
- tt = tree.add(
98
- f"[bold magenta on black]No collections found in {root_collection_name}"
99
- )
95
+ tt = tree.add("[bold magenta on black]No Members found")
100
96
 
101
97
  try:
102
98
  tree = Tree(f"[bold bright green]{root}", guide_style="bold bright_blue")
@@ -106,15 +102,11 @@ def collection_viewer(
106
102
  walk_collection_hierarchy(tree, c_client, None, root)
107
103
  print(tree)
108
104
 
109
- except (
110
- InvalidParameterException,
111
- PropertyServerException,
112
- UserNotAuthorizedException,
113
- ) as e:
114
- if e.exception_error_message_parameters[1] == NO_ELEMENTS_FOUND:
105
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
106
+ if hasattr(e, 'exception_error_message_parameters') and len(e.exception_error_message_parameters) > 1 and e.exception_error_message_parameters[1] == NO_ELEMENTS_FOUND:
115
107
  print("The collection was not found.")
116
108
  else:
117
- print_exception_response(e)
109
+ print_basic_exception(e)
118
110
  finally:
119
111
  c_client.close_session()
120
112
 
@@ -136,7 +128,7 @@ def main():
136
128
  try:
137
129
  root_collection = Prompt.ask(
138
130
  "Enter the Root Collection to start from:",
139
- default="Digital Products Root",
131
+ default="GeoSpatial-Root",
140
132
  )
141
133
  collection_viewer(root_collection, server, url, userid, user_pass)
142
134
  except KeyboardInterrupt:
@@ -10,6 +10,7 @@ A simple viewer for project dependencies - provide the root and we display the d
10
10
  import argparse
11
11
  import os
12
12
 
13
+ from pydantic import ValidationError
13
14
  from rich import print
14
15
  from rich.console import Console
15
16
  from rich.markdown import Markdown
@@ -18,12 +19,11 @@ from rich.prompt import Prompt
18
19
  from rich.tree import Tree
19
20
 
20
21
  from pyegeria import (
21
- InvalidParameterException,
22
22
  ProjectManager,
23
- PropertyServerException,
24
- UserNotAuthorizedException,
23
+ PyegeriaAPIException, PyegeriaClientException,
24
+ print_basic_exception,
25
+ print_validation_error,
25
26
  )
26
- from pyegeria._exceptions import print_exception_response
27
27
 
28
28
  disable_ssl_warnings = True
29
29
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
@@ -72,7 +72,7 @@ def project_dependency_viewer(
72
72
  proj_type = proj_props.get("typeName", "---")
73
73
  proj_unique = proj_props.get("qualifiedName", "---")
74
74
  proj_identifier = proj_props.get("identifier", "---")
75
- proj_name = proj_props.get("name", "---")
75
+ proj_name = proj_props.get("displayName", "---")
76
76
  proj_desc = proj_props.get("description", "---")
77
77
  proj_status = proj_props.get("projectStatus", "---")
78
78
  proj_priority = proj_props.get("priority", "---")
@@ -90,12 +90,12 @@ def project_dependency_viewer(
90
90
  else:
91
91
  return
92
92
 
93
- team = project_client.get_project_team(proj_guid)
93
+ team = project_client.get_project_team(proj_guid,"")
94
94
  member_md = ""
95
95
  if type(team) is list:
96
96
  for member in team:
97
- member_guid = member["member"]["guid"]
98
- member_unique = member["member"]["uniqueName"]
97
+ member_guid = member["elementHeader"]["guid"]
98
+ member_unique = member["properties"]["qualifiedName"]
99
99
  member_md += f"* Member Unique Name: {member_unique}\n* Member GUID: {member_guid}"
100
100
  proj_props_md += f"\n### Team Members\n {member_md}"
101
101
 
@@ -131,12 +131,12 @@ def project_dependency_viewer(
131
131
  walk_project_hierarchy(p_client, root, tree, root=True)
132
132
  print(tree)
133
133
 
134
- except (
135
- InvalidParameterException,
136
- PropertyServerException,
137
- UserNotAuthorizedException,
138
- ) as e:
139
- print_exception_response(e)
134
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
135
+ print_basic_exception(e)
136
+ except ValidationError as e:
137
+ print_validation_error(e)
138
+ except Exception as e:
139
+ print_basic_exception(e)
140
140
 
141
141
 
142
142
  def main():
@@ -10,6 +10,7 @@ A simple viewer for project structure - provide the root and we display the hier
10
10
  import argparse
11
11
  import os
12
12
 
13
+ from pydantic import ValidationError
13
14
  from rich import print
14
15
  from rich.console import Console
15
16
  from rich.markdown import Markdown
@@ -18,12 +19,9 @@ from rich.prompt import Prompt
18
19
  from rich.tree import Tree
19
20
 
20
21
  from pyegeria import (
21
- InvalidParameterException,
22
22
  ProjectManager,
23
- PropertyServerException,
24
- UserNotAuthorizedException,
23
+ PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table, print_validation_error
25
24
  )
26
- from pyegeria._exceptions import print_exception_response
27
25
 
28
26
  disable_ssl_warnings = True
29
27
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
@@ -72,7 +70,7 @@ def project_structure_viewer(
72
70
  proj_type = proj_props.get("typeName", "---")
73
71
  proj_unique = proj_props.get("qualifiedName", "---")
74
72
  proj_identifier = proj_props.get("identifier", "---")
75
- proj_name = proj_props.get("name", "---")
73
+ proj_name = proj_props.get("displayName", "---")
76
74
  proj_desc = proj_props.get("description", "---")
77
75
  proj_status = proj_props.get("projectStatus", "---")
78
76
  proj_priority = proj_props.get("priority", "---")
@@ -90,12 +88,12 @@ def project_structure_viewer(
90
88
  else:
91
89
  return
92
90
 
93
- team = project_client.get_project_team(proj_guid)
91
+ team = project_client.get_project_team(proj_guid,"")
94
92
  member_md = ""
95
93
  if type(team) is list:
96
94
  for member in team:
97
- member_guid = member["member"]["guid"]
98
- member_unique = member["member"]["uniqueName"]
95
+ member_guid = member["elementHeader"]["guid"]
96
+ member_unique = member["properties"]["qualifiedName"]
99
97
  member_md += f"* Member Unique Name: {member_unique}\n* Member GUID: {member_guid}"
100
98
  proj_props_md += f"\n### Team Members\n {member_md}"
101
99
 
@@ -131,12 +129,15 @@ def project_structure_viewer(
131
129
  walk_project_hierarchy(p_client, root, tree, root=True)
132
130
  print(tree)
133
131
 
134
- except (
135
- InvalidParameterException,
136
- PropertyServerException,
137
- UserNotAuthorizedException,
138
- ) as e:
139
- print_exception_response(e)
132
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
133
+ print_basic_exception(e)
134
+
135
+ except ValidationError as e:
136
+ print_validation_error(e)
137
+
138
+ except Exception as e:
139
+ console.print_exception()
140
+
140
141
 
141
142
 
142
143
  def main():
@@ -7,45 +7,22 @@ Display the status of cataloged platforms and servers.
7
7
  """
8
8
  import argparse
9
9
  import os
10
- import sys
11
- import time
12
10
 
13
- from rich import json, print
14
11
  from rich.console import Console
15
- from rich.live import Live
16
- from rich.markdown import Markdown
17
- from rich.panel import Panel
18
12
  from rich.prompt import Prompt
19
- from rich.table import Table
20
- from rich.text import Text
21
- from rich.tree import Tree
22
13
 
14
+ from commands.cat.run_report import list_generic
23
15
  from pyegeria import (
24
- AutomatedCuration,
25
- InvalidParameterException,
26
- PropertyServerException,
27
- UserNotAuthorizedException,
28
- print_exception_response,
16
+ settings,
17
+ config_logging, print_basic_exception, PyegeriaAPIException, PyegeriaClientException
29
18
  )
30
19
 
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("EGERIA_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("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
39
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
40
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
41
20
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
42
21
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
43
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
44
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
45
-
46
22
 
47
- disable_ssl_warnings = True
48
- console = Console(width=200)
23
+ app_config = settings.Environment
24
+ config_logging()
25
+ console = Console(width=app_config.console_width)
49
26
 
50
27
  guid_list = []
51
28
 
@@ -56,94 +33,17 @@ def tech_viewer(
56
33
  platform_url: str,
57
34
  user: str,
58
35
  user_pass: str,
59
- jupyter: bool = EGERIA_JUPYTER,
60
- width: int = EGERIA_WIDTH,
36
+ jupyter: bool = app_config.egeria_jupyter,
37
+ width: int = app_config.console_width,
61
38
  ):
62
- def build_classifications(classification: dict) -> Markdown:
63
- class_md = "\n"
64
- for c in classification:
65
- c_type = c["classificationName"]
66
- if c_type == "Anchors":
67
- continue
68
- class_md += f"* Classification: {c_type}\n"
69
- class_props = c.get("classificationProperties", None)
70
- if class_props is None:
71
- continue
72
- for prop in class_props.keys():
73
- class_md += f"\t* {prop}: {class_props[prop]}\n"
74
- if class_md == "-":
75
- output = None
76
- else:
77
- output = class_md
78
- return output
79
-
80
39
  try:
81
- console = Console(width=width, force_terminal=not jupyter)
82
-
83
- a_client = AutomatedCuration(server_name, platform_url, user_id=user)
84
-
85
- token = a_client.create_egeria_bearer_token(user, user_pass)
86
- tech_elements = a_client.get_technology_type_elements(
87
- tech_name, get_templates=False
88
- )
89
- if type(tech_elements) is str:
90
- console.print(f"No elements found for {tech_name}")
91
- sys.exit(1)
92
-
93
- tree = Tree(
94
- f"Deployed Technology Type: {tech_name}",
95
- style="bold bright_white on black",
96
- guide_style="bold bright_blue",
97
- )
98
- note: str = " "
99
- for element in tech_elements:
100
- header = element["elementHeader"]
101
- tech_type = header["type"]["typeName"]
102
- tech_collection = header["origin"]["homeMetadataCollectionName"]
103
- tech_created_by = header["versions"]["createdBy"]
104
- tech_created_at = header["versions"]["createTime"]
105
- tech_guid = header["guid"]
106
- tech_classifications = header["classifications"]
107
- class_md = build_classifications(tech_classifications)
108
-
109
- referenceables = element["referenceableProperties"]
110
- tech_qualified_name = referenceables["qualifiedName"]
111
- extended = referenceables["extendedProperties"]
112
- ex_md: str = ""
113
- for key, value in extended.items():
114
- ex_md += f"* {key}: {value}\n"
115
-
116
- note = (
117
- f"* Qualified Name: {tech_qualified_name}\n"
118
- f"* GUID: {tech_guid}\n"
119
- f"* Created by: {tech_created_by}\n"
120
- f"* Created at: {tech_created_at}\n"
121
- f"* Home Collection: {tech_collection}\n"
122
- f"{class_md}\n"
123
- f"{ex_md}\n"
124
- )
125
-
126
- interfaces = extended.get("connectorInterfaces", None)
127
- if interfaces is not None:
128
- interface_type_name = interfaces["typeName"]
129
- interface_array_cnt = interfaces["arrayCount"]
130
- note += f"* Interface Type: {interface_type_name}\n"
131
- for i in range(0, int(interface_array_cnt)):
132
- note += (
133
- f"\t* Type: {interfaces['arrayValues']['propertyValueMap'][str(i)]['typeName']}"
134
- f"\tName: {interfaces['arrayValues']['propertiesAsStrings'][str(i)]}\n"
135
- )
136
- note_md = Panel.fit(Markdown(note), style="bold bright_white")
137
- t = tree.add(note_md)
138
-
139
- print(tree)
40
+ list_generic(report_spec = "Tech-Type-Elements", output_format = "TABLE", view_server = server_name,
41
+ view_url= platform_url, user = user, user_pass = user_pass, prompt_missing = True,
42
+ params = {"filter": tech_name},
43
+ render_table=True, table_caption="Tech Type Elements", use_pager=True, width=width, jupyter=jupyter)
140
44
 
141
- except (
142
- InvalidParameterException,
143
- PropertyServerException,
144
- UserNotAuthorizedException,
145
- ) as e:
146
- print_exception_response(e)
45
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
46
+ print_basic_exception(e)
147
47
 
148
48
 
149
49
  def main():
@@ -155,8 +55,8 @@ def main():
155
55
  parser.add_argument("--password", help="User Password")
156
56
  args = parser.parse_args()
157
57
 
158
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
159
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
58
+ server = args.server if args.server is not None else app_config.egeria_view_server
59
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
160
60
  userid = args.userid if args.userid is not None else EGERIA_USER
161
61
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
162
62
  try: