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
@@ -3,7 +3,7 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  Copyright Contributors to the ODPi Egeria project.
5
5
 
6
- Display the status of cataloged platforms and servers.
6
+ Display technology type information
7
7
  """
8
8
  import argparse
9
9
  import os
@@ -17,42 +17,34 @@ from rich.tree import Tree
17
17
 
18
18
  from pyegeria import (
19
19
  AutomatedCuration,
20
- InvalidParameterException,
21
- PropertyServerException,
22
- UserNotAuthorizedException,
23
- print_exception_response,
24
- )
20
+ print_basic_exception,
21
+ PyegeriaException,
22
+ settings, load_app_config, config_logging,
25
23
 
26
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
27
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
28
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
29
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
30
- EGERIA_VIEW_SERVER_URL = os.environ.get(
31
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
32
24
  )
33
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
34
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
35
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
36
- EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
37
- EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
38
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
39
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
40
25
 
26
+ app_config = settings.Environment
27
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
41
28
 
42
- disable_ssl_warnings = True
43
- console = Console(width=200)
29
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
30
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
31
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
32
+ conf = load_app_config(config_path)
33
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
34
+ console = Console(width=app_config.console_width)
35
+ config_logging()
44
36
 
45
37
  guid_list = []
46
38
 
47
39
 
48
40
  def template_viewer(
49
- tech_name: str,
50
- server_name: str,
51
- platform_url: str,
52
- user: str,
53
- user_pass: str,
54
- jupyter: bool = EGERIA_JUPYTER,
55
- width: int = EGERIA_WIDTH,
41
+ tech_name: str,
42
+ server_name: str,
43
+ platform_url: str,
44
+ user: str,
45
+ user_pass: str,
46
+ jupyter: bool = app_config.egeria_jupyter,
47
+ width: int = app_config.console_width,
56
48
  ):
57
49
  def build_classifications(classification: dict) -> Markdown:
58
50
  class_md = "\n"
@@ -78,9 +70,8 @@ def template_viewer(
78
70
  a_client = AutomatedCuration(server_name, platform_url, user_id=user)
79
71
 
80
72
  token = a_client.create_egeria_bearer_token(user, user_pass)
81
- tech_elements = a_client.get_technology_type_elements(
82
- tech_name, get_templates=True
83
- )
73
+ tech_elements = a_client.get_technology_type_elements(tech_name, get_templates=True, output_format="JSON",
74
+ report_spec="Tech-Type-Elements")
84
75
  if (len(tech_elements) >= 1) and (type(tech_elements) is list):
85
76
  tree = Tree(
86
77
  f"Deployed Technology Type: {tech_name}",
@@ -95,10 +86,10 @@ def template_viewer(
95
86
  tech_created_by = header["versions"]["createdBy"]
96
87
  tech_created_at = header["versions"]["createTime"]
97
88
  tech_guid = header["guid"]
98
- tech_classifications = header["classifications"]
89
+ tech_classifications = element.get("otherClassifications", {})
99
90
  class_md = build_classifications(tech_classifications)
100
91
 
101
- referenceables = element["referenceableProperties"]
92
+ referenceables = element["properties"]
102
93
  tech_qualified_name = referenceables["qualifiedName"]
103
94
  extended = referenceables["extendedProperties"]
104
95
  ex_md: str = ""
@@ -132,11 +123,9 @@ def template_viewer(
132
123
  tree = Tree(f"No elements found for {tech_name}", style="red")
133
124
  print(tree)
134
125
  except (
135
- InvalidParameterException,
136
- PropertyServerException,
137
- UserNotAuthorizedException,
126
+ PyegeriaException
138
127
  ) as e:
139
- print_exception_response(e)
128
+ print_basic_exception(e)
140
129
 
141
130
 
142
131
  def main():
@@ -148,8 +137,8 @@ def main():
148
137
  parser.add_argument("--password", help="User Password")
149
138
  args = parser.parse_args()
150
139
 
151
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
152
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
140
+ server = args.server if args.server is not None else app_config.egeria_view_server
141
+ url = args.url if args.url is not None else app_config.egeria_platform_url
153
142
  userid = args.userid if args.userid is not None else EGERIA_USER
154
143
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
155
144
 
@@ -1,4 +1,4 @@
1
- """This lists all elemeents of an oopen metadata type"""
1
+ """This lists all elements of an oopen metadata type"""
2
2
 
3
3
  import argparse
4
4
  import os
@@ -13,27 +13,24 @@ from rich.table import Table
13
13
 
14
14
  from pyegeria import (
15
15
  EgeriaTech,
16
- InvalidParameterException,
17
- PropertyServerException,
18
- UserNotAuthorizedException,
19
- print_exception_response,
16
+ PyegeriaException,
17
+ print_basic_exception,
18
+ SolutionArchitect,
19
+ settings, load_app_config, pretty_print_config,
20
+ config_logging,
21
+ save_mermaid_html,
20
22
  )
21
23
 
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")
24
+ app_config = settings.Environment
25
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
26
+
33
27
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
28
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
35
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
36
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
29
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
30
+ conf = load_app_config(config_path)
31
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
32
+
33
+ config_logging()
37
34
 
38
35
 
39
36
  def list_elements(
@@ -42,8 +39,8 @@ def list_elements(
42
39
  url: str,
43
40
  username: str,
44
41
  password: str,
45
- jupyter: bool = EGERIA_JUPYTER,
46
- width: int = EGERIA_WIDTH,
42
+ jupyter: bool = app_config.egeria_jupyter,
43
+ width: int = app_config.console_width,
47
44
  ):
48
45
  c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
49
46
  token = c_client.create_egeria_bearer_token()
@@ -78,7 +75,7 @@ def list_elements(
78
75
  table.add_column("Home Store")
79
76
  table.add_column("GUID", width=38, no_wrap=True)
80
77
  table.add_column("Properties")
81
- table.add_column("Classifications")
78
+ table.add_column("Other Classifications")
82
79
 
83
80
  if type(elements) is list:
84
81
  for element in elements:
@@ -88,7 +85,7 @@ def list_elements(
88
85
  el_home = header["origin"]["homeMetadataCollectionName"]
89
86
  el_create_time = header["versions"]["createTime"][:-10]
90
87
  el_guid = header["guid"]
91
- el_class = header.get("classifications", "---")
88
+ el_class = header.get("otherClassifications", "---")
92
89
 
93
90
  el_props_md = ""
94
91
  for prop in element["properties"].keys():
@@ -126,17 +123,14 @@ def list_elements(
126
123
  sys.exit(1)
127
124
 
128
125
  try:
129
- console = Console(width=width, force_terminal=not jupyter)
130
-
126
+ console = Console(width=width)
131
127
  with console.pager(styles=True):
132
128
  console.print(generate_table())
133
129
 
134
130
  except (
135
- InvalidParameterException,
136
- PropertyServerException,
137
- UserNotAuthorizedException,
131
+ PyegeriaException
138
132
  ) as e:
139
- print_exception_response(e)
133
+ print_basic_exception(e)
140
134
  print("\n\nPerhaps the type name isn't known")
141
135
  finally:
142
136
  c_client.close_session()
@@ -151,8 +145,8 @@ def main():
151
145
 
152
146
  args = parser.parse_args()
153
147
 
154
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
155
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
148
+ server = args.server if args.server is not None else app_config.egeria_view_server
149
+ url = args.url if args.url is not None else app_config.egeria_platform_url
156
150
  userid = args.userid if args.userid is not None else EGERIA_USER
157
151
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
158
152
 
@@ -11,30 +11,26 @@ from rich.markdown import Markdown
11
11
  from rich.prompt import Prompt
12
12
  from rich.table import Table
13
13
 
14
+
14
15
  from pyegeria import (
15
- EgeriaTech, # ClassificationManager,; FeedbackManager,
16
- InvalidParameterException,
17
- PropertyServerException,
18
- UserNotAuthorizedException,
19
- print_exception_response,
16
+ Egeria,
17
+ PyegeriaException,
18
+ print_basic_exception,
19
+ SolutionArchitect,
20
+ settings, load_app_config, pretty_print_config,
21
+ config_logging, PyegeriaAPIException,
20
22
  )
21
23
 
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")
24
+ app_config = settings.Environment
25
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
26
+
33
27
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
28
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
35
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
36
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
29
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
30
+ conf = load_app_config(config_path)
31
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
37
32
 
33
+ config_logging()
38
34
 
39
35
  def list_elements_x(
40
36
  om_type: str,
@@ -42,10 +38,10 @@ def list_elements_x(
42
38
  url: str,
43
39
  username: str,
44
40
  password: str,
45
- jupyter: bool = EGERIA_JUPYTER,
46
- width: int = EGERIA_WIDTH,
41
+ jupyter: bool = app_config.egeria_jupyter,
42
+ width: int = app_config.console_width,
47
43
  ):
48
- c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
44
+ c_client = Egeria(server, url, user_id=username, user_pwd=password)
49
45
  token = c_client.create_egeria_bearer_token()
50
46
 
51
47
  om_typedef = c_client.get_typedef_by_name(om_type)
@@ -149,15 +145,13 @@ def list_elements_x(
149
145
  try:
150
146
  console = Console(width=width, force_terminal=not jupyter)
151
147
 
152
- with console.pager(styles=True):
148
+ with console.pager():
153
149
  console.print(generate_table())
154
150
 
155
151
  except (
156
- InvalidParameterException,
157
- PropertyServerException,
158
- UserNotAuthorizedException,
152
+ PyegeriaAPIException,
159
153
  ) as e:
160
- print_exception_response(e)
154
+ print_basic_exception(e)
161
155
  print("\n\nPerhaps the type name isn't known")
162
156
  finally:
163
157
  c_client.close_session()
@@ -172,8 +166,8 @@ def main():
172
166
 
173
167
  args = parser.parse_args()
174
168
 
175
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
176
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
169
+ server = args.server if args.server is not None else app_config.egeria_view_server
170
+ url = args.url if args.url is not None else app_config.egeria_platform_url
177
171
  userid = args.userid if args.userid is not None else EGERIA_USER
178
172
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
179
173
 
@@ -14,27 +14,22 @@ from rich.table import Table
14
14
 
15
15
  from pyegeria import (
16
16
  EgeriaTech,
17
- InvalidParameterException,
18
- PropertyServerException,
19
- UserNotAuthorizedException,
20
- print_exception_response,
17
+ PyegeriaException,
18
+ print_basic_exception,
19
+ settings, load_app_config, pretty_print_config,
20
+ config_logging
21
21
  )
22
22
 
23
- console = Console()
24
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
25
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
26
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
27
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
28
- EGERIA_VIEW_SERVER_URL = os.environ.get(
29
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
30
- )
31
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
32
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
33
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
23
+ app_config = settings.Environment
24
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
25
+
34
26
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
35
27
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
36
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
37
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "220"))
28
+
29
+ conf = load_app_config(config_path)
30
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
31
+ console = Console(width=app_config.console_width)
32
+ config_logging()
38
33
 
39
34
 
40
35
  def list_related_elements(
@@ -45,8 +40,8 @@ def list_related_elements(
45
40
  url: str,
46
41
  username: str,
47
42
  password: str,
48
- jupyter: bool = EGERIA_JUPYTER,
49
- width: int = EGERIA_WIDTH,
43
+ jupyter: bool = app_config.egeria_jupyter,
44
+ width: int = app_config.console_width,
50
45
  ):
51
46
  c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
52
47
  token = c_client.create_egeria_bearer_token()
@@ -162,11 +157,9 @@ def list_related_elements(
162
157
  console.print(generate_table())
163
158
 
164
159
  except (
165
- InvalidParameterException,
166
- PropertyServerException,
167
- UserNotAuthorizedException,
160
+ PyegeriaException
168
161
  ) as e:
169
- print_exception_response(e)
162
+ print_basic_exception(e)
170
163
  print("\n\nPerhaps the type name isn't known")
171
164
  finally:
172
165
  c_client.close_session()
@@ -181,8 +174,8 @@ def main():
181
174
 
182
175
  args = parser.parse_args()
183
176
 
184
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
185
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
177
+ server = args.server if args.server is not None else app_config.egeria_view_server
178
+ url = args.url if args.url is not None else app_config.egeria_platform_url
186
179
  userid = args.userid if args.userid is not None else EGERIA_USER
187
180
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
188
181
 
@@ -198,9 +191,7 @@ def main():
198
191
  None if len(relationship_type) == 0 else relationship_type.strip()
199
192
  )
200
193
 
201
- list_related_elements(
202
- element_guid, om_type, relationship_type, server, url, userid, password
203
- )
194
+ list_related_elements(element_guid, om_type, relationship_type, server, url, userid, password)
204
195
  except KeyboardInterrupt:
205
196
  pass
206
197
 
@@ -18,31 +18,25 @@ from rich.prompt import Prompt
18
18
  from rich.table import Table
19
19
 
20
20
  from pyegeria import (
21
+ PyegeriaException,
22
+ print_basic_exception,
21
23
  EgeriaTech,
22
- InvalidParameterException,
23
- PropertyServerException,
24
- UserNotAuthorizedException,
25
- print_exception_response,
24
+ settings, load_app_config, pretty_print_config,
25
+ config_logging,
26
+ save_mermaid_html,
26
27
  )
27
28
 
28
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
29
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
30
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
31
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
32
- EGERIA_VIEW_SERVER_URL = os.environ.get(
33
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
34
- )
35
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
36
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
37
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
38
- EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
39
- EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
40
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
41
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "260"))
42
29
 
30
+ app_config = settings.Environment
31
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
43
32
 
44
- disable_ssl_warnings = True
45
-
33
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
35
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
36
+ conf = load_app_config(config_path)
37
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
38
+ console = Console(width = app_config.console_width)
39
+ config_logging()
46
40
 
47
41
  def display_anchored_elements(
48
42
  property_value: str,
@@ -52,8 +46,8 @@ def display_anchored_elements(
52
46
  username: str,
53
47
  user_password: str,
54
48
  time_out: int = 60,
55
- jupyter: bool = EGERIA_JUPYTER,
56
- width: int = EGERIA_WIDTH,
49
+ jupyter: bool = app_config.egeria_jupyter,
50
+ width: int = app_config.console_width,
57
51
  ):
58
52
  console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
59
53
  if (property_value is None) or (len(property_value) < 3):
@@ -87,13 +81,13 @@ def display_anchored_elements(
87
81
  table.add_column("Matching Elements")
88
82
 
89
83
  classification = "Anchors"
90
- open_type_name = None
84
+ metadata_element_type_name = None
91
85
  property_value = property_value
92
86
 
93
87
  property_names = prop_list
94
88
 
95
89
  elements = g_client.find_elements_by_classification_with_property_value(
96
- classification, property_value, property_names, open_type_name
90
+ classification, property_value, property_names, metadata_element_type_name
97
91
  )
98
92
  if type(elements) is str:
99
93
  return table
@@ -153,11 +147,9 @@ def display_anchored_elements(
153
147
  console.print(generate_table(property_value, prop_list), soft_wrap=True)
154
148
 
155
149
  except (
156
- InvalidParameterException,
157
- PropertyServerException,
158
- UserNotAuthorizedException,
150
+ PyegeriaException
159
151
  ) as e:
160
- console.print_exception()
152
+ print_basic_exception(e)
161
153
  sys.exit(1)
162
154
 
163
155
  except Exception as e:
@@ -177,8 +169,8 @@ def main():
177
169
 
178
170
  args = parser.parse_args()
179
171
 
180
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
181
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
172
+ server = args.server if args.server is not None else app_config.egeria_view_server
173
+ url = args.url if args.url is not None else app_config.egeria_platform_url
182
174
  userid = args.userid if args.userid is not None else EGERIA_USER
183
175
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
184
176
  time_out = args.time_out if args.time_out is not None else 60
@@ -17,27 +17,24 @@ from rich.console import Console
17
17
  from rich.table import Table
18
18
 
19
19
  from pyegeria import (
20
- InvalidParameterException,
21
- PropertyServerException,
22
20
  RegisteredInfo,
23
- UserNotAuthorizedException,
24
- print_exception_response,
21
+ print_basic_exception,
22
+ PyegeriaException,
23
+ settings, load_app_config, pretty_print_config,
24
+ config_logging,
25
+ save_mermaid_html,
25
26
  )
26
27
 
27
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
28
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
29
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
30
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
31
- EGERIA_VIEW_SERVER_URL = os.environ.get(
32
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
33
- )
34
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
35
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
36
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
28
+ app_config = settings.Environment
29
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
30
+
37
31
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
38
32
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
39
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
40
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
33
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
34
+ conf = load_app_config(config_path)
35
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
36
+ console = Console(width=app_config.console_width)
37
+ config_logging()
41
38
 
42
39
 
43
40
  def display_asset_types(
@@ -45,8 +42,8 @@ def display_asset_types(
45
42
  url: str,
46
43
  username: str,
47
44
  user_password: str,
48
- jupyter: bool = EGERIA_JUPYTER,
49
- width: int = EGERIA_WIDTH,
45
+ jupyter: bool = app_config.egeria_jupyter,
46
+ width: int = app_config.console_width,
50
47
  ):
51
48
  r_client = RegisteredInfo(server, url, username)
52
49
  token = r_client.create_egeria_bearer_token(username, user_password)
@@ -90,11 +87,9 @@ def display_asset_types(
90
87
  console.print(generate_table())
91
88
 
92
89
  except (
93
- InvalidParameterException,
94
- PropertyServerException,
95
- UserNotAuthorizedException,
90
+ PyegeriaException
96
91
  ) as e:
97
- print_exception_response(e)
92
+ print_basic_exception(e)
98
93
  assert e.related_http_code != "200", "Invalid parameters"
99
94
  finally:
100
95
  r_client.close_session()
@@ -109,8 +104,8 @@ def main():
109
104
 
110
105
  args = parser.parse_args()
111
106
 
112
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
113
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
107
+ server = args.server if args.server is not None else app_config.egeria_view_server
108
+ url = args.url if args.url is not None else app_config.egeria_platform_url
114
109
  userid = args.userid if args.userid is not None else EGERIA_USER
115
110
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
116
111
  # guid = args.guid if args.guid is not None else None