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
@@ -8,33 +8,22 @@ import time
8
8
  from rich import box
9
9
  from rich.console import Console
10
10
  from rich.markdown import Markdown
11
- from rich.prompt import Prompt
12
11
  from rich.table import Table
13
12
 
14
13
  from pyegeria import (
15
14
  EgeriaTech,
16
- InvalidParameterException,
17
- PropertyServerException,
18
- UserNotAuthorizedException,
19
- print_exception_response,
15
+ PyegeriaAPIException, PyegeriaClientException,
16
+ print_basic_exception,
17
+ settings,
18
+ config_logging, PyegeriaException
20
19
  )
21
20
 
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
21
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
22
  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", "300"))
37
23
 
24
+ app_config = settings.Environment
25
+ console = Console(width = app_config.console_width)
26
+ config_logging()
38
27
 
39
28
  def check_if_template(header: dict) -> bool:
40
29
  """Check if the the template classification is set"""
@@ -48,12 +37,12 @@ def check_if_template(header: dict) -> bool:
48
37
 
49
38
 
50
39
  def list_deployed_databases(
51
- view_server: str = EGERIA_VIEW_SERVER,
52
- view_url: str = EGERIA_VIEW_SERVER_URL,
40
+ view_server: str = app_config.egeria_view_server,
41
+ view_url: str = app_config.egeria_view_server_url,
53
42
  user: str = EGERIA_USER,
54
43
  user_pass: str = EGERIA_USER_PASSWORD,
55
- jupyter: bool = EGERIA_JUPYTER,
56
- width: int = EGERIA_WIDTH,
44
+ jupyter: bool = app_config.egeria_jupyter,
45
+ width: int = app_config.console_width,
57
46
  ):
58
47
  """
59
48
  Parameters
@@ -133,9 +122,7 @@ def list_deployed_databases(
133
122
  if type(rel_elements) is list:
134
123
  for rel_element in rel_elements:
135
124
  count += 1
136
- rel_type = rel_element["relatedElement"]["elementHeader"][
137
- "type"
138
- ]["typeName"]
125
+ rel_type = rel_element["elementHeader"]["type"]["typeName"]
139
126
  rel_guid = rel_element["relatedElement"]["elementHeader"][
140
127
  "guid"
141
128
  ]
@@ -169,11 +156,9 @@ def list_deployed_databases(
169
156
  console.print(generate_table())
170
157
 
171
158
  except (
172
- InvalidParameterException,
173
- PropertyServerException,
174
- UserNotAuthorizedException,
159
+ PyegeriaException
175
160
  ) as e:
176
- print_exception_response(e)
161
+ print_basic_exception(e)
177
162
  print("\n\nPerhaps the type name isn't known")
178
163
  finally:
179
164
  c_client.close_session()
@@ -188,8 +173,8 @@ def main():
188
173
 
189
174
  args = parser.parse_args()
190
175
 
191
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
192
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
176
+ server = args.server if args.server is not None else app_config.egeria_view_server
177
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
193
178
  userid = args.userid if args.userid is not None else EGERIA_USER
194
179
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
195
180
 
@@ -23,41 +23,24 @@ from rich.table import Table
23
23
  from rich.text import Text
24
24
 
25
25
  from pyegeria import (
26
- InvalidParameterException,
27
- PropertyServerException,
26
+ PyegeriaAPIException, PyegeriaClientException,
28
27
  RuntimeManager,
29
- UserNotAuthorizedException,
30
- print_exception_response,
28
+ print_basic_exception,
29
+ settings,
30
+ config_logging, PyegeriaException
31
31
  )
32
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("EGERIA_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("EGERIA_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")
33
+
46
34
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
47
35
  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
- ):
36
+ app_config = settings.Environment
37
+ # config_logging()
38
+
39
+
40
+ def display_servers_by_dep_imp(search_string: str = "*", view_server: str = app_config.egeria_view_server,
41
+ view_url: str = app_config.egeria_view_server_url, user: str = EGERIA_USER,
42
+ user_pass: str = EGERIA_USER_PASSWORD, jupyter: bool = app_config.egeria_jupyter,
43
+ width: int = app_config.console_width):
61
44
  p_client = RuntimeManager(view_server, view_url, user, user_pass)
62
45
  token = p_client.create_egeria_bearer_token()
63
46
 
@@ -81,7 +64,7 @@ def display_servers_by_dep_imp(
81
64
  table.add_column("Description")
82
65
  table.add_column("Qualified Name & GUID", no_wrap=True)
83
66
 
84
- unsorted_server_list = p_client.get_servers_by_dep_impl_type(filter)
67
+ unsorted_server_list = p_client.get_servers_by_dep_impl_type(search_string)
85
68
  if type(unsorted_server_list) is str:
86
69
  print("No matching Software Servers found?")
87
70
  sys.exit(1)
@@ -95,21 +78,21 @@ def display_servers_by_dep_imp(
95
78
  qualified_name = server["properties"].get("qualifiedName", "---")
96
79
  classifications = server["elementHeader"].get("classifications", None)
97
80
  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]
81
+ # if classifications:
82
+ # for clas in classifications:
83
+ # if clas["classificationName"] == "AssetZoneMembership":
84
+ # classification_props = clas["classificationProperties"]
85
+ # zone_membership = classification_props.get(
86
+ # "zoneMembership", None
87
+ # )
88
+ # if zone_membership:
89
+ # for z in zone_membership.keys():
90
+ # zones += f"{zone_membership[z]}, "
91
+ # zones = zones[:-2]
109
92
 
110
93
  impl_type = server["properties"].get("deployedImplementationType", "---")
111
94
  server_guid = server["elementHeader"]["guid"]
112
- server_desc = server["properties"].get("resourceDescription", "---")
95
+ server_desc = server["properties"].get("description", "---")
113
96
 
114
97
  server_id = Text(f"{qualified_name}\n&\n{server_guid}", justify="center")
115
98
 
@@ -124,11 +107,9 @@ def display_servers_by_dep_imp(
124
107
  console.print(generate_table())
125
108
 
126
109
  except (
127
- InvalidParameterException,
128
- PropertyServerException,
129
- UserNotAuthorizedException,
110
+ PyegeriaException
130
111
  ) as e:
131
- print_exception_response(e)
112
+ print_basic_exception(e)
132
113
  except KeyboardInterrupt:
133
114
  pass
134
115
  finally:
@@ -138,20 +119,20 @@ def display_servers_by_dep_imp(
138
119
  def main():
139
120
  parser = argparse.ArgumentParser()
140
121
 
141
- parser.add_argument("--server", help="Name of the server to display status for")
122
+ parser.add_argument("--server", help="Name of the view server")
142
123
  parser.add_argument("--url", help="URL Platform to connect to")
143
124
  parser.add_argument("--userid", help="User Id")
144
125
  parser.add_argument("--password", help="User Password")
145
126
  args = parser.parse_args()
146
127
 
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
128
+ server = args.server if args.server is not None else app_config.egeria_view_server
129
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
130
+ userid = args.userid if args.userid is not None else EGERIA_USER
150
131
  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="*"
132
+ filter_string = Prompt.ask(
133
+ "Name of deployed server type", default="View Server"
153
134
  )
154
- display_servers_by_dep_imp(filter, server, url, userid, user_pass)
135
+ display_servers_by_dep_imp(filter_string, server, url, userid, user_pass)
155
136
 
156
137
 
157
138
  if __name__ == "__main__":
@@ -10,7 +10,6 @@ A simple display for glossary terms
10
10
  """
11
11
  import argparse
12
12
  import os
13
- import sys
14
13
  import time
15
14
 
16
15
  from rich import box
@@ -22,10 +21,7 @@ from rich.text import Text
22
21
 
23
22
  from pyegeria import (
24
23
  EgeriaTech,
25
- InvalidParameterException,
26
- PropertyServerException,
27
- UserNotAuthorizedException,
28
- print_exception_response,
24
+ PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table
29
25
  )
30
26
 
31
27
  disable_ssl_warnings = True
@@ -134,30 +130,35 @@ def display_glossaries(
134
130
  glossaries = m_client.find_glossaries(search_string)
135
131
  if type(glossaries) is list:
136
132
  sorted_glossary_list = sorted(
137
- glossaries, key=lambda k: k["glossaryProperties"]["displayName"]
133
+ glossaries,
134
+ key=lambda k: k.get("properties", {}).get("displayName",
135
+ k.get("properties", {}).get("qualifiedName", ""))
136
+
138
137
  )
139
138
  for glossary in sorted_glossary_list:
140
- display_name = glossary["glossaryProperties"].get("displayName",'---')
141
- qualified_name = glossary["glossaryProperties"]["qualifiedName"]
139
+ display_name = glossary["properties"].get("displayName",'---')
140
+ qualified_name = glossary["properties"]["qualifiedName"]
142
141
  guid = glossary["elementHeader"]["guid"]
143
142
  q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
144
- language = glossary["glossaryProperties"].get("language",'---')
145
- description = glossary["glossaryProperties"].get("description",'---')
146
- usage = glossary["glossaryProperties"].get("usage",'---')
143
+ language = glossary["properties"].get("language",'---')
144
+ description = glossary["properties"].get("description",'---')
145
+ usage = glossary["properties"].get("usage",'---')
147
146
 
148
- categories = m_client.get_categories_for_glossary(guid)
147
+ members = glossary.get("collectionMembers", [])
149
148
  cat_md = ''
150
- if type(categories) is list:
151
- for category in categories:
152
- cat_md += f"* {category['glossaryCategoryProperties'][('displayName')]}\n"
149
+ if type(members) is list:
150
+ for member in members:
151
+ if member['relatedElement'
152
+ ]["elementHeader"]["type"]['typeName'] == "CollectionFolder":
153
+ cat_md += f'* {member.get("relatedElement",{}).get("properties",{}).get("qualifiedName","")}\n'
153
154
  cat_md = cat_md.strip()
154
155
 
155
156
  table.add_row(display_name, q_name, language, description, usage, Markdown(cat_md))
156
157
 
157
158
  console.print(table)
158
159
 
159
- except (InvalidParameterException, PropertyServerException) as e:
160
- print_exception_response(e)
160
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
161
+ print_basic_exception(e)
161
162
  finally:
162
163
  m_client.close_session()
163
164
 
@@ -21,11 +21,9 @@ from rich.table import Table
21
21
 
22
22
  from pyegeria import (
23
23
  ClassificationManager,
24
- InvalidParameterException,
25
24
  ProjectManager,
26
- PropertyServerException,
27
- UserNotAuthorizedException,
28
- print_exception_response,
25
+ PyegeriaAPIException, PyegeriaClientException,
26
+ print_basic_exception, print_validation_error,
29
27
  )
30
28
 
31
29
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
@@ -100,7 +98,8 @@ def display_project_list(
100
98
  end = " "
101
99
  description = " "
102
100
  elif type(projects) == str:
103
- raise ValueError("-->This is not a known project")
101
+ print("-->This is not a known project")
102
+ exit(0)
104
103
  else:
105
104
  sorted_projects = sorted(
106
105
  projects, key=lambda k: k["properties"].get("name", "---")
@@ -110,7 +109,7 @@ def display_project_list(
110
109
  classification = ""
111
110
  guid = project["elementHeader"]["guid"]
112
111
  props = project["properties"]
113
- name = props.get("name", "None")
112
+ name = props.get("displayName", "---")
114
113
  p_class = project["elementHeader"].get("classifications")
115
114
  if p_class:
116
115
  for classif in p_class:
@@ -141,9 +140,10 @@ def display_project_list(
141
140
  if type(certified) is list:
142
141
  for rel_elem in certified:
143
142
  p_name = rel_elem["relatedElement"]["properties"][
144
- "name"
143
+ "displayName"
145
144
  ]
146
145
  certified_partner += f"* {p_name}\n"
146
+
147
147
  else:
148
148
  certified_partner = "---"
149
149
 
@@ -178,15 +178,13 @@ def display_project_list(
178
178
  console.save_html("projects.html")
179
179
 
180
180
  except (
181
- InvalidParameterException,
182
- PropertyServerException,
183
- UserNotAuthorizedException,
184
- ValueError,
181
+ PyegeriaException,
185
182
  ) as e:
186
183
  if type(e) is str:
187
184
  print(e)
188
185
  else:
189
- print_exception_response(e)
186
+ print_basic_exception(e)
187
+
190
188
  except KeyboardInterrupt:
191
189
  pass
192
190
  finally:
@@ -20,33 +20,17 @@ from rich.table import Table
20
20
 
21
21
  from pyegeria import (
22
22
  AutomatedCuration,
23
- InvalidParameterException,
24
- PropertyServerException,
25
- UserNotAuthorizedException,
26
- print_exception_response,
23
+ PyegeriaAPIException, PyegeriaClientException,
24
+ print_basic_exception,
25
+ settings,
26
+ config_logging
27
27
  )
28
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("EGERIA_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("EGERIA_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
29
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
40
30
  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
31
 
32
+ app_config = settings.Environment
33
+ config_logging()
50
34
 
51
35
  def list_tech_elements(
52
36
  tech_name: str,
@@ -54,8 +38,8 @@ def list_tech_elements(
54
38
  platform_url: str,
55
39
  user: str,
56
40
  user_pass: str,
57
- jupyter: bool = EGERIA_JUPYTER,
58
- width: int = EGERIA_WIDTH,
41
+ jupyter: bool = app_config.egeria_jupyter,
42
+ width: int = app_config.console_width,
59
43
  ):
60
44
  console = Console(width=width, force_terminal=not jupyter)
61
45
 
@@ -99,9 +83,8 @@ def list_tech_elements(
99
83
  table.add_column("Properties", width=40)
100
84
  table.add_column("Classifications", width=50)
101
85
 
102
- tech_elements = a_client.get_technology_type_elements(
103
- tech_name, get_templates=False
104
- )
86
+ tech_elements = a_client.get_technology_type_elements(tech_name, get_templates=False, output_format="JSON",
87
+ report_spec="Tech-Type-Elements")
105
88
  if type(tech_elements) is str:
106
89
  console.print(f"No elements found for {tech_name}")
107
90
  sys.exit(1)
@@ -114,10 +97,10 @@ def list_tech_elements(
114
97
  tech_created_by = header["versions"]["createdBy"]
115
98
  tech_created_at = header["versions"]["createTime"]
116
99
  tech_guid = header["guid"]
117
- tech_classifications = header["classifications"]
100
+ tech_classifications = header["otherClassifications"]
118
101
  class_md = build_classifications(tech_classifications)
119
102
 
120
- referenceables = element["referenceableProperties"]
103
+ referenceables = element["properties"]
121
104
  tech_qualified_name = referenceables["qualifiedName"]
122
105
  extended = referenceables["extendedProperties"]
123
106
  ex_md: str = ""
@@ -153,13 +136,12 @@ def list_tech_elements(
153
136
  with console.pager(styles=True):
154
137
  console.print(generate_table())
155
138
 
156
- except (
157
- InvalidParameterException,
158
- PropertyServerException,
159
- UserNotAuthorizedException,
160
- ) as e:
161
- print_exception_response(e)
139
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
140
+ print_basic_exception(e)
162
141
  print("\n\nPerhaps the type name isn't known")
142
+ except Exception as e:
143
+ console.print(e)
144
+
163
145
  finally:
164
146
  a_client.close_session()
165
147
 
@@ -173,8 +155,8 @@ def main():
173
155
  parser.add_argument("--password", help="User Password")
174
156
  args = parser.parse_args()
175
157
 
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
158
+ server = args.server if args.server is not None else app_config.egeria_view_server
159
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
178
160
  userid = args.userid if args.userid is not None else EGERIA_USER
179
161
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
180
162
  try:
@@ -184,6 +166,8 @@ def main():
184
166
  list_tech_elements(tech_name, server, url, userid, user_pass)
185
167
  except KeyboardInterrupt:
186
168
  pass
169
+ except Exception as e:
170
+ print(f"An error occurred: {e}")
187
171
 
188
172
 
189
173
  if __name__ == "__main__":
@@ -20,26 +20,16 @@ from rich.table import Table
20
20
 
21
21
  from pyegeria import (
22
22
  AutomatedCuration,
23
- InvalidParameterException,
24
- PropertyServerException,
25
- UserNotAuthorizedException,
26
- print_exception_response,
23
+ settings,
24
+ PyegeriaAPIException, PyegeriaClientException,
25
+ print_basic_exception
27
26
  )
28
27
 
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("EGERIA_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("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
37
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
38
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
28
+
39
29
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
40
30
  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"))
31
+ app_config = settings.Environment
32
+ # config_logging()
43
33
 
44
34
 
45
35
  disable_ssl_warnings = True
@@ -51,8 +41,8 @@ def display_tech_types(
51
41
  url: str,
52
42
  username: str,
53
43
  user_pass: str,
54
- jupyter: bool = EGERIA_JUPYTER,
55
- width: int = EGERIA_WIDTH,
44
+ jupyter: bool = app_config.egeria_jupyter,
45
+ width: int = app_config.console_width,
56
46
  ):
57
47
  a_client = AutomatedCuration(server, url, username)
58
48
  token = a_client.create_egeria_bearer_token(username, user_pass)
@@ -87,7 +77,7 @@ def display_tech_types(
87
77
  if "deployedImplementationType" not in item["qualifiedName"]:
88
78
  continue
89
79
  qualified_name = item.get("qualifiedName", " ")
90
- name = item.get("name", "none")
80
+ name = item.get("displayName", "none")
91
81
  category = item.get("category", "none")
92
82
  description = item.get("description", "none")
93
83
 
@@ -103,11 +93,9 @@ def display_tech_types(
103
93
  console.print(generate_table())
104
94
 
105
95
  except (
106
- InvalidParameterException,
107
- PropertyServerException,
108
- UserNotAuthorizedException,
96
+ PyegeriaException,
109
97
  ) as e:
110
- print_exception_response(e)
98
+ print_basic_exception(e)
111
99
  assert e.related_http_code != "200", "Invalid parameters"
112
100
  finally:
113
101
  a_client.close_session()
@@ -122,8 +110,8 @@ def main():
122
110
 
123
111
  args = parser.parse_args()
124
112
 
125
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
126
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
113
+ server = args.server if args.server is not None else app_config.egeria_view_server
114
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
127
115
  userid = args.userid if args.userid is not None else EGERIA_USER
128
116
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
129
117