pyegeria 5.4.0.28__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 (433) hide show
  1. commands/__init__.py +24 -0
  2. commands/cat/Dr-Egeria_md-orig.py +2 -2
  3. commands/cat/collection_actions.py +197 -0
  4. commands/cat/dr_egeria_command_help.py +137 -38
  5. commands/cat/dr_egeria_jupyter.py +7 -7
  6. commands/cat/dr_egeria_md.py +10 -267
  7. commands/cat/exp_list_glossaries.py +11 -14
  8. commands/cat/get_asset_graph.py +37 -267
  9. commands/cat/{get_collection.py → get_collection_tree.py} +10 -18
  10. commands/cat/get_project_dependencies.py +14 -14
  11. commands/cat/get_project_structure.py +15 -14
  12. commands/cat/get_tech_type_elements.py +16 -116
  13. commands/cat/glossary_actions.py +145 -298
  14. commands/cat/list_assets.py +3 -11
  15. commands/cat/list_cert_types.py +17 -63
  16. commands/cat/list_collections.py +17 -139
  17. commands/cat/list_deployed_catalogs.py +15 -27
  18. commands/cat/list_deployed_database_schemas.py +27 -43
  19. commands/cat/list_deployed_databases.py +16 -31
  20. commands/cat/list_deployed_servers.py +35 -54
  21. commands/cat/list_glossaries.py +18 -17
  22. commands/cat/list_projects.py +10 -12
  23. commands/cat/list_tech_type_elements.py +21 -37
  24. commands/cat/list_tech_types.py +13 -25
  25. commands/cat/list_terms.py +38 -79
  26. commands/cat/list_todos.py +4 -11
  27. commands/cat/list_user_ids.py +3 -10
  28. commands/cat/my_reports.py +559 -0
  29. commands/cat/run_report.py +394 -0
  30. commands/cat/{list_format_set.py → run_report_orig.py} +136 -44
  31. commands/cli/egeria.py +182 -219
  32. commands/cli/egeria_cat.py +32 -59
  33. commands/cli/egeria_my.py +13 -0
  34. commands/cli/egeria_ops.py +69 -74
  35. commands/cli/egeria_tech.py +17 -93
  36. commands/{cat → deprecated}/list_data_designer.py +2 -4
  37. commands/{cat → deprecated}/list_data_structures_full.py +3 -6
  38. commands/deprecated/old_get_asset_graph.py +315 -0
  39. commands/my/__init__.py +0 -2
  40. commands/my/list_my_profile.py +27 -34
  41. commands/my/list_my_roles.py +1 -7
  42. commands/my/monitor_my_todos.py +1 -7
  43. commands/my/monitor_open_todos.py +6 -7
  44. commands/my/todo_actions.py +4 -5
  45. commands/ops/__init__.py +0 -2
  46. commands/ops/gov_server_actions.py +17 -21
  47. commands/ops/list_archives.py +17 -38
  48. commands/ops/list_catalog_targets.py +33 -40
  49. commands/ops/load_archive.py +14 -11
  50. commands/ops/{monitor_engine_activity_c.py → monitor_active_engine_activity.py} +51 -82
  51. commands/ops/{monitor_integ_daemon_status.py → monitor_daemon_status.py} +35 -55
  52. commands/ops/monitor_engine_activity.py +79 -77
  53. commands/ops/{monitor_gov_eng_status.py → monitor_engine_status.py} +10 -7
  54. commands/ops/monitor_platform_status.py +38 -50
  55. commands/ops/monitor_server_startup.py +6 -11
  56. commands/ops/monitor_server_status.py +7 -11
  57. commands/ops/orig_monitor_server_list.py +8 -8
  58. commands/ops/orig_monitor_server_status.py +1 -5
  59. commands/ops/refresh_integration_daemon.py +5 -5
  60. commands/ops/restart_integration_daemon.py +5 -5
  61. commands/ops/table_integ_daemon_status.py +6 -6
  62. commands/ops/x_engine_actions.py +7 -7
  63. commands/tech/__init__.py +0 -2
  64. commands/tech/{generic_actions.py → element_actions.py} +6 -11
  65. commands/tech/get_element_info.py +20 -29
  66. commands/tech/get_guid_info.py +23 -42
  67. commands/tech/get_tech_details.py +20 -35
  68. commands/tech/get_tech_type_template.py +28 -39
  69. commands/tech/list_all_om_type_elements.py +24 -30
  70. commands/tech/list_all_om_type_elements_x.py +22 -28
  71. commands/tech/list_all_related_elements.py +19 -28
  72. commands/tech/list_anchored_elements.py +22 -30
  73. commands/tech/list_asset_types.py +19 -24
  74. commands/tech/list_elements_by_classification_by_property_value.py +26 -32
  75. commands/tech/list_elements_by_property_value.py +19 -25
  76. commands/tech/list_elements_by_property_value_x.py +20 -28
  77. commands/tech/list_elements_for_classification.py +28 -41
  78. commands/tech/list_gov_action_processes.py +16 -27
  79. commands/tech/list_information_supply_chains.py +22 -30
  80. commands/tech/list_registered_services.py +14 -26
  81. commands/tech/list_related_elements_with_prop_value.py +15 -25
  82. commands/tech/list_related_specification.py +1 -4
  83. commands/tech/list_relationship_types.py +15 -25
  84. commands/tech/list_relationships.py +20 -36
  85. commands/tech/list_solution_blueprints.py +28 -33
  86. commands/tech/list_solution_components.py +23 -29
  87. commands/tech/list_solution_roles.py +21 -32
  88. commands/tech/list_tech_templates.py +51 -54
  89. commands/tech/list_valid_metadata_values.py +5 -9
  90. commands/tech/table_tech_templates.py +2 -6
  91. commands/tech/x_list_related_elements.py +1 -4
  92. examples/GeoSpatial Products Example.py +524 -0
  93. examples/Jupyter Notebooks/P-egeria-server-config.ipynb +2137 -0
  94. examples/Jupyter Notebooks/README.md +2 -0
  95. examples/Jupyter Notebooks/common/P-environment-check.ipynb +115 -0
  96. examples/Jupyter Notebooks/common/__init__.py +14 -0
  97. examples/Jupyter Notebooks/common/common-functions.ipynb +4694 -0
  98. examples/Jupyter Notebooks/common/environment-check.ipynb +52 -0
  99. examples/Jupyter Notebooks/common/globals.ipynb +184 -0
  100. examples/Jupyter Notebooks/common/globals.py +154 -0
  101. examples/Jupyter Notebooks/common/orig_globals.py +152 -0
  102. examples/format_sets/all_format_sets.json +910 -0
  103. examples/format_sets/custom_format_sets.json +268 -0
  104. examples/format_sets/subset_format_sets.json +187 -0
  105. examples/format_sets_save_load_example.py +291 -0
  106. examples/jacquard_data_sets.py +129 -0
  107. examples/output_formats_example.py +193 -0
  108. examples/test_jacquard_data_sets.py +54 -0
  109. examples/test_jacquard_data_sets_scenarios.py +94 -0
  110. md_processing/__init__.py +33 -24
  111. md_processing/command_dispatcher.py +33 -0
  112. md_processing/command_mapping.py +221 -0
  113. md_processing/data/commands/commands_data_designer.json +537 -0
  114. md_processing/data/commands/commands_external_reference.json +733 -0
  115. md_processing/data/commands/commands_feedback.json +155 -0
  116. md_processing/data/commands/commands_general.json +204 -0
  117. md_processing/data/commands/commands_glossary.json +218 -0
  118. md_processing/data/commands/commands_governance.json +3678 -0
  119. md_processing/data/commands/commands_product_manager.json +865 -0
  120. md_processing/data/commands/commands_project.json +642 -0
  121. md_processing/data/commands/commands_solution_architect.json +366 -0
  122. md_processing/data/commands.json +6489 -30060
  123. md_processing/data/{commands-working.json → commands_working.json} +9304 -13513
  124. md_processing/data/gened_report_specs.py +6584 -0
  125. md_processing/data/generated_format_sets.json +6533 -0
  126. md_processing/data/generated_format_sets_old.json +4137 -0
  127. md_processing/data/generated_format_sets_old.py +45 -0
  128. md_processing/dr_egeria.py +182 -0
  129. md_processing/md_commands/data_designer_commands.py +195 -583
  130. md_processing/md_commands/ext_ref_commands.py +530 -0
  131. md_processing/md_commands/feedback_commands.py +726 -0
  132. md_processing/md_commands/glossary_commands.py +106 -490
  133. md_processing/md_commands/governance_officer_commands.py +129 -18
  134. md_processing/md_commands/product_manager_commands.py +362 -115
  135. md_processing/md_commands/project_commands.py +351 -134
  136. md_processing/md_commands/solution_architect_commands.py +276 -232
  137. md_processing/md_commands/view_commands.py +295 -0
  138. md_processing/md_processing_utils/common_md_proc_utils.py +258 -166
  139. md_processing/md_processing_utils/common_md_utils.py +138 -43
  140. md_processing/md_processing_utils/determine_width.py +103 -0
  141. md_processing/md_processing_utils/extraction_utils.py +100 -39
  142. md_processing/md_processing_utils/gen_report_specs.py +643 -0
  143. md_processing/md_processing_utils/generate_dr_help.py +61 -33
  144. md_processing/md_processing_utils/generate_md_cmd_templates.py +20 -19
  145. md_processing/md_processing_utils/generate_md_templates.py +3 -12
  146. md_processing/md_processing_utils/md_processing_constants.py +1053 -72
  147. pyegeria/__init__.py +203 -158
  148. pyegeria/core/__init__.py +40 -0
  149. pyegeria/core/_base_platform_client.py +574 -0
  150. pyegeria/core/_base_server_client.py +573 -0
  151. pyegeria/{_exceptions_new.py → core/_exceptions.py} +62 -30
  152. pyegeria/{_globals.py → core/_globals.py} +14 -3
  153. pyegeria/core/_server_client.py +6073 -0
  154. pyegeria/{_validators.py → core/_validators.py} +7 -8
  155. pyegeria/core/config.py +654 -0
  156. pyegeria/{create_tech_guid_lists.py → core/create_tech_guid_lists.py} +0 -1
  157. pyegeria/core/load_config.py +37 -0
  158. pyegeria/{logging_configuration.py → core/logging_configuration.py} +1 -1
  159. pyegeria/core/mcp_adapter.py +144 -0
  160. pyegeria/core/mcp_server.py +212 -0
  161. pyegeria/core/utils.py +405 -0
  162. pyegeria/{_client.py → deprecated/_client.py} +24 -25
  163. pyegeria/{_deprecated_gov_engine.py → deprecated/_deprecated_gov_engine.py} +16 -16
  164. pyegeria/{classification_manager_omvs.py → deprecated/classification_manager_omvs.py} +1987 -1877
  165. pyegeria/{output_formatter.py → deprecated/output_formatter_with_machine_keys.py} +298 -45
  166. pyegeria/{runtime_manager_omvs.py → deprecated/runtime_manager_omvs.py} +155 -171
  167. pyegeria/{valid_metadata_omvs.py → deprecated/valid_metadata_omvs.py} +93 -93
  168. pyegeria/{x_action_author_omvs.py → deprecated/x_action_author_omvs.py} +2 -3
  169. pyegeria/egeria_cat_client.py +26 -70
  170. pyegeria/egeria_client.py +130 -93
  171. pyegeria/egeria_config_client.py +40 -46
  172. pyegeria/egeria_tech_client.py +141 -54
  173. pyegeria/models/__init__.py +150 -0
  174. pyegeria/{models.py → models/models.py} +156 -20
  175. pyegeria/omvs/__init__.py +84 -0
  176. pyegeria/omvs/action_author.py +342 -0
  177. pyegeria/omvs/actor_manager.py +5980 -0
  178. pyegeria/omvs/asset_catalog.py +842 -0
  179. pyegeria/omvs/asset_maker.py +2736 -0
  180. pyegeria/omvs/automated_curation.py +4403 -0
  181. pyegeria/omvs/classification_manager.py +11213 -0
  182. pyegeria/{collection_manager.py → omvs/collection_manager.py} +1334 -1160
  183. pyegeria/omvs/community_matters_omvs.py +468 -0
  184. pyegeria/{core_omag_server_config.py → omvs/core_omag_server_config.py} +157 -157
  185. pyegeria/{data_designer.py → omvs/data_designer.py} +1115 -660
  186. pyegeria/omvs/data_discovery.py +869 -0
  187. pyegeria/omvs/data_engineer.py +372 -0
  188. pyegeria/omvs/digital_business.py +1133 -0
  189. pyegeria/omvs/external_links.py +1752 -0
  190. pyegeria/omvs/feedback_manager.py +834 -0
  191. pyegeria/{full_omag_server_config.py → omvs/full_omag_server_config.py} +73 -69
  192. pyegeria/{glossary_manager.py → omvs/glossary_manager.py} +857 -519
  193. pyegeria/{governance_officer.py → omvs/governance_officer.py} +964 -468
  194. pyegeria/omvs/lineage_linker.py +314 -0
  195. pyegeria/omvs/location_arena.py +1525 -0
  196. pyegeria/omvs/metadata_expert.py +668 -0
  197. pyegeria/omvs/metadata_explorer_omvs.py +2943 -0
  198. pyegeria/omvs/my_profile.py +1042 -0
  199. pyegeria/omvs/notification_manager.py +358 -0
  200. pyegeria/omvs/people_organizer.py +394 -0
  201. pyegeria/{platform_services.py → omvs/platform_services.py} +113 -193
  202. pyegeria/omvs/product_manager.py +1825 -0
  203. pyegeria/omvs/project_manager.py +1907 -0
  204. pyegeria/omvs/reference_data.py +1140 -0
  205. pyegeria/omvs/registered_info.py +334 -0
  206. pyegeria/omvs/runtime_manager.py +2817 -0
  207. pyegeria/omvs/schema_maker.py +446 -0
  208. pyegeria/{server_operations.py → omvs/server_operations.py} +27 -26
  209. pyegeria/{solution_architect_omvs.py → omvs/solution_architect.py} +1886 -1505
  210. pyegeria/omvs/specification_properties.py +37 -0
  211. pyegeria/omvs/subject_area.py +1042 -0
  212. pyegeria/omvs/template_manager_omvs.py +236 -0
  213. pyegeria/omvs/time_keeper.py +1761 -0
  214. pyegeria/omvs/valid_metadata.py +3221 -0
  215. pyegeria/omvs/valid_metadata_lists.py +37 -0
  216. pyegeria/omvs/valid_type_lists.py +37 -0
  217. pyegeria/view/__init__.py +28 -0
  218. pyegeria/{_output_format_models.py → view/_output_format_models.py} +160 -24
  219. pyegeria/view/_output_formats.py +14 -0
  220. pyegeria/view/base_report_formats.py +2719 -0
  221. pyegeria/view/dr_egeria_reports.py +56 -0
  222. pyegeria/view/format_set_executor.py +397 -0
  223. pyegeria/{md_processing_utils.py → view/md_processing_utils.py} +5 -5
  224. pyegeria/{mermaid_utilities.py → view/mermaid_utilities.py} +2 -154
  225. pyegeria/view/output_formatter.py +1297 -0
  226. pyegeria-5.5.3.3.dist-info/METADATA +218 -0
  227. pyegeria-5.5.3.3.dist-info/RECORD +241 -0
  228. {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info}/WHEEL +2 -1
  229. pyegeria-5.5.3.3.dist-info/entry_points.txt +103 -0
  230. pyegeria-5.5.3.3.dist-info/top_level.txt +4 -0
  231. commands/cat/.DS_Store +0 -0
  232. commands/cat/.env +0 -8
  233. commands/cat/README.md +0 -16
  234. commands/cat/debug_log +0 -1126
  235. commands/cat/debug_log.2025-08-18_11-34-38_088636.zip +0 -0
  236. commands/cat/list_categories.py +0 -192
  237. commands/cat/logs/pyegeria.log +0 -4
  238. commands/cli/debug_log +0 -0
  239. commands/cli/debug_log.log +0 -0
  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/logs/pyegeria.log +0 -0
  244. commands/ops/monitor_asset_events.py +0 -108
  245. commands/tech/README.md +0 -24
  246. md_processing/.DS_Store +0 -0
  247. md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +0 -163
  248. md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +0 -474
  249. md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +0 -8
  250. md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +0 -873
  251. md_processing/dr_egeria_inbox/arch_test.md +0 -57
  252. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  253. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  254. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  255. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  256. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  257. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  258. md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  259. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  260. md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  261. md_processing/dr_egeria_inbox/cat_test.md +0 -100
  262. md_processing/dr_egeria_inbox/collections.md +0 -39
  263. md_processing/dr_egeria_inbox/data_designer_debug.log +0 -6
  264. md_processing/dr_egeria_inbox/data_designer_out.md +0 -60
  265. md_processing/dr_egeria_inbox/data_designer_search_test.md +0 -11
  266. md_processing/dr_egeria_inbox/data_field.md +0 -54
  267. md_processing/dr_egeria_inbox/data_spec.md +0 -77
  268. md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
  269. md_processing/dr_egeria_inbox/data_test.md +0 -179
  270. md_processing/dr_egeria_inbox/data_test2.md +0 -429
  271. md_processing/dr_egeria_inbox/data_test3.md +0 -462
  272. md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +0 -124
  273. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  274. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  275. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -318
  276. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  277. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  278. md_processing/dr_egeria_inbox/generated_help_report.md +0 -9
  279. md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
  280. md_processing/dr_egeria_inbox/glossary_list.md +0 -5
  281. md_processing/dr_egeria_inbox/glossary_search_test.md +0 -40
  282. md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
  283. md_processing/dr_egeria_inbox/gov_def.md +0 -482
  284. md_processing/dr_egeria_inbox/gov_def2.md +0 -447
  285. md_processing/dr_egeria_inbox/img.png +0 -0
  286. md_processing/dr_egeria_inbox/product.md +0 -211
  287. md_processing/dr_egeria_inbox/rel.md +0 -8
  288. md_processing/dr_egeria_inbox/sb.md +0 -119
  289. md_processing/dr_egeria_inbox/solution-components.md +0 -136
  290. md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  291. md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  292. md_processing/dr_egeria_inbox/t2.md +0 -268
  293. md_processing/dr_egeria_outbox/.obsidian/app.json +0 -1
  294. md_processing/dr_egeria_outbox/.obsidian/appearance.json +0 -1
  295. md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +0 -6
  296. md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +0 -31
  297. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +0 -10
  298. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +0 -4459
  299. md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +0 -10
  300. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +0 -3
  301. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +0 -153
  302. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +0 -11
  303. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +0 -1
  304. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +0 -500
  305. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +0 -12
  306. md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +0 -1
  307. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +0 -37
  308. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +0 -11
  309. md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +0 -220
  310. md_processing/dr_egeria_outbox/.obsidian/types.json +0 -28
  311. md_processing/dr_egeria_outbox/.obsidian/workspace.json +0 -220
  312. md_processing/dr_egeria_outbox/Untitled.canvas +0 -1
  313. md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:22-dr_egeria_intro_part1.md +0 -312
  314. md_processing/dr_egeria_outbox/friday/processed-2025-08-22 21:23-dr_egeria_intro_part1.md +0 -265
  315. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:06-dr_egeria_intro_part1.md +0 -230
  316. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:30-dr_egeria_intro_part1.md +0 -296
  317. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 15:31-dr_egeria_intro_part1.md +0 -253
  318. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:08-dr_egeria_intro_part2.md +0 -343
  319. md_processing/dr_egeria_outbox/friday/processed-2025-08-23 16:12-dr_egeria_intro_part2.md +0 -343
  320. md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +0 -426
  321. md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +0 -212
  322. md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +0 -201
  323. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +0 -77
  324. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +0 -75
  325. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +0 -74
  326. md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +0 -49
  327. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +0 -719
  328. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +0 -41
  329. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +0 -33
  330. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +0 -192
  331. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +0 -486
  332. md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +0 -486
  333. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +0 -486
  334. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +0 -486
  335. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +0 -486
  336. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +0 -486
  337. md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +0 -486
  338. md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +0 -527
  339. md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +0 -527
  340. md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +0 -485
  341. md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +0 -209
  342. md_processing/family_docs/Data Designer/Create_Data_Class.md +0 -164
  343. md_processing/family_docs/Data Designer/Create_Data_Dictionary.md +0 -30
  344. md_processing/family_docs/Data Designer/Create_Data_Field.md +0 -162
  345. md_processing/family_docs/Data Designer/Create_Data_Specification.md +0 -36
  346. md_processing/family_docs/Data Designer/Create_Data_Structure.md +0 -38
  347. md_processing/family_docs/Data Designer/View_Data_Classes.md +0 -78
  348. md_processing/family_docs/Data Designer/View_Data_Dictionaries.md +0 -78
  349. md_processing/family_docs/Data Designer/View_Data_Fields.md +0 -78
  350. md_processing/family_docs/Data Designer/View_Data_Specifications.md +0 -78
  351. md_processing/family_docs/Data Designer/View_Data_Structures.md +0 -78
  352. md_processing/family_docs/Data Designer.md +0 -842
  353. md_processing/family_docs/Digital Product Manager/Add_Member->Collection.md +0 -42
  354. md_processing/family_docs/Digital Product Manager/Attach_Collection->Resource.md +0 -36
  355. md_processing/family_docs/Digital Product Manager/Create_Agreement.md +0 -96
  356. md_processing/family_docs/Digital Product Manager/Create_Data_Sharing_Agreement.md +0 -72
  357. md_processing/family_docs/Digital Product Manager/Create_DigitalSubscription.md +0 -102
  358. md_processing/family_docs/Digital Product Manager/Create_Digital_Product.md +0 -134
  359. md_processing/family_docs/Digital Product Manager/Link_Agreement_Items.md +0 -60
  360. md_processing/family_docs/Digital Product Manager/Link_Contracts.md +0 -26
  361. md_processing/family_docs/Digital Product Manager/Link_Digital_Product_-_Digital_Product.md +0 -30
  362. md_processing/family_docs/Digital Product Manager/Link_Subscribers.md +0 -48
  363. md_processing/family_docs/Digital Product Manager.md +0 -668
  364. md_processing/family_docs/Glossary/Attach_Category_Parent.md +0 -18
  365. md_processing/family_docs/Glossary/Attach_Term-Term_Relationship.md +0 -26
  366. md_processing/family_docs/Glossary/Create_Category.md +0 -38
  367. md_processing/family_docs/Glossary/Create_Glossary.md +0 -42
  368. md_processing/family_docs/Glossary/Create_Term.md +0 -70
  369. md_processing/family_docs/Glossary.md +0 -206
  370. md_processing/family_docs/Governance Officer/Create_Business_Imperative.md +0 -106
  371. md_processing/family_docs/Governance Officer/Create_Certification_Type.md +0 -112
  372. md_processing/family_docs/Governance Officer/Create_Governance_Approach.md +0 -114
  373. md_processing/family_docs/Governance Officer/Create_Governance_Obligation.md +0 -114
  374. md_processing/family_docs/Governance Officer/Create_Governance_Principle.md +0 -114
  375. md_processing/family_docs/Governance Officer/Create_Governance_Procedure.md +0 -128
  376. md_processing/family_docs/Governance Officer/Create_Governance_Process.md +0 -122
  377. md_processing/family_docs/Governance Officer/Create_Governance_Processing_Purpose.md +0 -106
  378. md_processing/family_docs/Governance Officer/Create_Governance_Responsibility.md +0 -122
  379. md_processing/family_docs/Governance Officer/Create_Governance_Rule.md +0 -122
  380. md_processing/family_docs/Governance Officer/Create_Governance_Strategy.md +0 -106
  381. md_processing/family_docs/Governance Officer/Create_License_Type.md +0 -112
  382. md_processing/family_docs/Governance Officer/Create_Naming_Standard_Rule.md +0 -122
  383. md_processing/family_docs/Governance Officer/Create_Regulation_Article.md +0 -106
  384. md_processing/family_docs/Governance Officer/Create_Regulation_Definition.md +0 -118
  385. md_processing/family_docs/Governance Officer/Create_Security_Access_Control.md +0 -114
  386. md_processing/family_docs/Governance Officer/Create_Security_Group.md +0 -120
  387. md_processing/family_docs/Governance Officer/Create_Service_Level_Objectives.md +0 -122
  388. md_processing/family_docs/Governance Officer/Create_Threat_Definition.md +0 -106
  389. md_processing/family_docs/Governance Officer/Link_Governance_Controls.md +0 -32
  390. md_processing/family_docs/Governance Officer/Link_Governance_Drivers.md +0 -32
  391. md_processing/family_docs/Governance Officer/Link_Governance_Policies.md +0 -32
  392. md_processing/family_docs/Governance Officer/View_Governance_Definitions.md +0 -82
  393. md_processing/family_docs/Governance Officer.md +0 -2412
  394. md_processing/family_docs/Solution Architect/Create_Information_Supply_Chain.md +0 -70
  395. md_processing/family_docs/Solution Architect/Create_Solution_Blueprint.md +0 -44
  396. md_processing/family_docs/Solution Architect/Create_Solution_Component.md +0 -96
  397. md_processing/family_docs/Solution Architect/Create_Solution_Role.md +0 -66
  398. md_processing/family_docs/Solution Architect/Link_Information_Supply_Chain_Peers.md +0 -32
  399. md_processing/family_docs/Solution Architect/Link_Solution_Component_Peers.md +0 -32
  400. md_processing/family_docs/Solution Architect/View_Information_Supply_Chains.md +0 -32
  401. md_processing/family_docs/Solution Architect/View_Solution_Blueprints.md +0 -32
  402. md_processing/family_docs/Solution Architect/View_Solution_Components.md +0 -32
  403. md_processing/family_docs/Solution Architect/View_Solution_Roles.md +0 -32
  404. md_processing/family_docs/Solution Architect.md +0 -490
  405. md_processing/md_processing_utils/debug_log +0 -574
  406. md_processing/md_processing_utils/debug_log.log +0 -0
  407. md_processing/md_processing_utils/dr-egeria-help-2025-07-17T17:22:09.md +0 -2065
  408. md_processing/md_processing_utils/generated_help_terms.md +0 -842
  409. pyegeria/.DS_Store +0 -0
  410. pyegeria/README.md +0 -35
  411. pyegeria/_client_new.py +0 -1102
  412. pyegeria/_output_formats.py +0 -730
  413. pyegeria/asset_catalog_omvs.py +0 -864
  414. pyegeria/automated_curation_omvs.py +0 -3765
  415. pyegeria/config.py +0 -523
  416. pyegeria/egeria_my_client.py +0 -91
  417. pyegeria/feedback_manager_omvs.py +0 -4573
  418. pyegeria/load_config_orig.py +0 -218
  419. pyegeria/md_processing_helpers.py +0 -58
  420. pyegeria/md_processing_utils_orig.py +0 -1103
  421. pyegeria/metadata_explorer_omvs.py +0 -2326
  422. pyegeria/my_profile_omvs.py +0 -1022
  423. pyegeria/project_manager.py +0 -1591
  424. pyegeria/registered_info.py +0 -167
  425. pyegeria/template_manager_omvs.py +0 -1414
  426. pyegeria/utils.py +0 -256
  427. pyegeria-5.4.0.28.dist-info/METADATA +0 -77
  428. pyegeria-5.4.0.28.dist-info/RECORD +0 -343
  429. pyegeria-5.4.0.28.dist-info/entry_points.txt +0 -105
  430. /commands/cat/debug_log.log → /pyegeria/deprecated/__init__.py +0 -0
  431. /pyegeria/{_exceptions.py → deprecated/_exceptions.py} +0 -0
  432. /pyegeria/{collection_models.py → models/collection_models.py} +0 -0
  433. {pyegeria-5.4.0.28.dist-info → pyegeria-5.5.3.3.dist-info/licenses}/LICENSE +0 -0
@@ -21,32 +21,26 @@ from rich.text import Text
21
21
  from rich.tree import Tree
22
22
 
23
23
  from pyegeria import (
24
- InvalidParameterException,
25
- PropertyServerException,
26
- UserNotAuthorizedException,
24
+ EgeriaTech,
27
25
  save_mermaid_graph,
28
26
  save_mermaid_html,
27
+ print_basic_exception,
28
+ PyegeriaException,
29
+ settings, load_app_config, pretty_print_config,
30
+ config_logging,
31
+ save_mermaid_html,
29
32
  )
30
- from pyegeria._exceptions import print_exception_response
31
- from pyegeria.solution_architect_omvs import SolutionArchitect
32
-
33
- disable_ssl_warnings = True
34
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
35
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
36
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
37
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "qs-view-server")
38
- EGERIA_VIEW_SERVER_URL = os.environ.get(
39
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
40
- )
41
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
42
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
43
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
33
+
34
+ app_config = settings.Environment
35
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
36
+
44
37
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
45
38
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
46
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
47
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
48
- EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
49
-
39
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
40
+ conf = load_app_config(config_path)
41
+ print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
42
+ console = Console(width=app_config.console_width)
43
+ config_logging()
50
44
 
51
45
  def supply_chain_viewer(
52
46
  search_string: str,
@@ -54,12 +48,12 @@ def supply_chain_viewer(
54
48
  platform_url: str,
55
49
  user: str,
56
50
  user_password: str,
57
- jupyter: bool = EGERIA_JUPYTER,
58
- width: int = EGERIA_WIDTH,
51
+ jupyter: bool = app_config.egeria_jupyter,
52
+ width: int = app_config.console_width,
59
53
  timeout: int = 30,
60
54
  ):
61
55
  """A Supply Chain viewer"""
62
- client = SolutionArchitect(server_name, platform_url, user, user_password)
56
+ client = EgeriaTech(server_name, platform_url, user, user_password)
63
57
  token = client.create_egeria_bearer_token()
64
58
 
65
59
  def generate_table() -> Table | str:
@@ -135,11 +129,9 @@ def supply_chain_viewer(
135
129
  console.print(generate_table())
136
130
 
137
131
  except (
138
- InvalidParameterException,
139
- PropertyServerException,
140
- UserNotAuthorizedException,
132
+ PyegeriaException
141
133
  ) as e:
142
- print_exception_response(e)
134
+ print_basic_exception(e)
143
135
 
144
136
 
145
137
  def main():
@@ -151,8 +143,8 @@ def main():
151
143
  parser.add_argument("--password", help="User Password")
152
144
  args = parser.parse_args()
153
145
 
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
146
+ server = args.server if args.server is not None else app_config.egeria_view_server
147
+ url = args.url if args.url is not None else app_config.egeria_platform_url
156
148
  userid = args.userid if args.userid is not None else EGERIA_USER
157
149
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
158
150
 
@@ -18,36 +18,26 @@ from rich.prompt import Prompt
18
18
  from rich.table import Table
19
19
 
20
20
  from pyegeria import (
21
- InvalidParameterException,
22
- PropertyServerException,
23
21
  RegisteredInfo,
24
- UserNotAuthorizedException,
22
+ PyegeriaException,
23
+ print_basic_exception,
24
+ settings,
25
+ config_logging
25
26
  )
26
-
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")
37
27
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
38
28
  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"))
41
-
42
29
 
30
+ app_config = settings.Environment
31
+ config_logging()
32
+ console = Console(width = app_config.console_width)
43
33
  def display_registered_svcs(
44
34
  service: str,
45
35
  server: str,
46
36
  url: str,
47
37
  username: str,
48
38
  password: str,
49
- jupyter: bool = EGERIA_JUPYTER,
50
- width: int = EGERIA_WIDTH,
39
+ jupyter: bool = app_config.egeria_jupyter,
40
+ width: int = app_config.console_width,
51
41
  ):
52
42
  """Display the registered services list
53
43
  Parameters
@@ -144,11 +134,9 @@ def display_registered_svcs(
144
134
  console.print(generate_table(svc_list))
145
135
 
146
136
  except (
147
- InvalidParameterException,
148
- PropertyServerException,
149
- UserNotAuthorizedException,
137
+ PyegeriaException
150
138
  ) as e:
151
- console.print_exception(show_locals=True)
139
+ print_basic_exception(e)
152
140
  finally:
153
141
  a_client.close_session()
154
142
 
@@ -162,9 +150,9 @@ def main():
162
150
 
163
151
  args = parser.parse_args()
164
152
 
165
- server = args.server if args.server is not None else EGERIA_METADATA_STORE
166
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
167
- userid = args.userid if args.userid is not None else EGERIA_ADMIN_USER
153
+ server = args.server if args.server is not None else app_config.egeria_metadata_store
154
+ url = args.url if args.url is not None else app_config.egeria_platform_url
155
+ userid = args.userid if args.userid is not None else EGERIA_USER
168
156
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
169
157
 
170
158
  try:
@@ -15,27 +15,19 @@ from rich.table import Table
15
15
 
16
16
  from pyegeria import (
17
17
  EgeriaTech,
18
- InvalidParameterException,
19
- PropertyServerException,
20
- UserNotAuthorizedException,
21
- print_exception_response,
18
+ PyegeriaException,
19
+ ValidMetadataManager,
20
+ print_basic_exception,
21
+ settings,
22
+ config_logging
22
23
  )
23
24
 
24
- console = Console()
25
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
26
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
27
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
28
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
29
- EGERIA_VIEW_SERVER_URL = os.environ.get(
30
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
31
- )
32
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
33
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
34
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
35
25
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
36
26
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
37
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
38
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "220"))
27
+
28
+ app_config = settings.Environment
29
+ config_logging()
30
+ console = Console(width=app_config.console_width)
39
31
 
40
32
 
41
33
  def list_related_elements_with_prop_value(
@@ -48,8 +40,8 @@ def list_related_elements_with_prop_value(
48
40
  url: str,
49
41
  username: str,
50
42
  password: str,
51
- jupyter: bool = EGERIA_JUPYTER,
52
- width: int = EGERIA_WIDTH,
43
+ jupyter: bool = app_config.egeria_jupyter,
44
+ width: int = app_config.console_width,
53
45
  ):
54
46
  c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
55
47
  token = c_client.create_egeria_bearer_token()
@@ -165,11 +157,9 @@ def list_related_elements_with_prop_value(
165
157
  console.print(generate_table())
166
158
 
167
159
  except (
168
- InvalidParameterException,
169
- PropertyServerException,
170
- UserNotAuthorizedException,
160
+ PyegeriaException
171
161
  ) as e:
172
- print_exception_response(e)
162
+ print_basic_exception(e)
173
163
  print("\n\nPerhaps the type name isn't known")
174
164
  finally:
175
165
  c_client.close_session()
@@ -184,8 +174,8 @@ def main():
184
174
 
185
175
  args = parser.parse_args()
186
176
 
187
- server = args.server.strip() if args.server is not None else EGERIA_VIEW_SERVER
188
- url = args.url.strip if args.url is not None else EGERIA_PLATFORM_URL
177
+ server = args.server.strip() if args.server is not None else app_config.egeria_view_server
178
+ url = args.url.strip if args.url is not None else app_config.egeria_platform_url
189
179
  userid = args.userid.strip() if args.userid is not None else EGERIA_USER
190
180
  password = (
191
181
  args.password.strip() if args.password is not None else EGERIA_USER_PASSWORD
@@ -20,10 +20,7 @@ from rich.table import Table
20
20
 
21
21
  from pyegeria import (
22
22
  ClassificationManager,
23
- InvalidParameterException,
24
- PropertyServerException,
25
- UserNotAuthorizedException,
26
- print_exception_response,
23
+ PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table
27
24
  )
28
25
 
29
26
  console = Console()
@@ -18,27 +18,19 @@ from rich.prompt import Prompt
18
18
  from rich.table import Table
19
19
 
20
20
  from pyegeria import (
21
- InvalidParameterException,
22
- PropertyServerException,
23
- UserNotAuthorizedException,
21
+ PyegeriaException,
24
22
  ValidMetadataManager,
25
- print_exception_response,
23
+ print_basic_exception,
24
+ settings,
25
+ config_logging
26
26
  )
27
27
 
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
28
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
39
29
  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", "200"))
30
+
31
+ app_config = settings.Environment
32
+ config_logging()
33
+ console = Console(width=app_config.console_width)
42
34
 
43
35
 
44
36
  def display_relationship_types(
@@ -48,10 +40,10 @@ def display_relationship_types(
48
40
  username: str,
49
41
  user_pass: str,
50
42
  save_output: bool = False,
51
- jupyter: bool = EGERIA_JUPYTER,
52
- width: int = EGERIA_WIDTH,
43
+ jupyter: bool = app_config.egeria_jupyter,
44
+ width: int = app_config.console_width,
53
45
  ):
54
- p_client = ValidMetadataManager(server, url, user_id=username)
46
+ p_client = ValidMetadataManager(server, url, user_id=username, user_pwd=user_pass)
55
47
  token = p_client.create_egeria_bearer_token(username, user_pass)
56
48
 
57
49
  def generate_table(type_name: str) -> Table:
@@ -126,15 +118,13 @@ def display_relationship_types(
126
118
  console.save_html("projects.html")
127
119
 
128
120
  except (
129
- InvalidParameterException,
130
- PropertyServerException,
131
- UserNotAuthorizedException,
121
+ PyegeriaException,
132
122
  ValueError,
133
123
  ) as e:
134
124
  if type(e) is str:
135
125
  print(e)
136
126
  else:
137
- print_exception_response(e)
127
+ print_basic_exception(e)
138
128
 
139
129
 
140
130
  def main():
@@ -147,8 +137,8 @@ def main():
147
137
 
148
138
  args = parser.parse_args()
149
139
 
150
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
151
- 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
152
142
  userid = args.userid if args.userid is not None else EGERIA_USER
153
143
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
154
144
  save_output = args.save_output if args.save_output is not None else False
@@ -21,29 +21,18 @@ from rich.table import Table
21
21
 
22
22
  from pyegeria import (
23
23
  ClassificationManager,
24
- InvalidParameterException,
25
- PropertyServerException,
26
- UserNotAuthorizedException,
27
- max_paging_size,
24
+ PyegeriaException,
25
+ print_basic_exception,
26
+ settings,
27
+ config_logging
28
28
  )
29
29
 
30
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
31
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
32
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
33
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
34
- EGERIA_VIEW_SERVER_URL = os.environ.get(
35
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
36
- )
37
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
38
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
39
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
40
30
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
41
31
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
42
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
43
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
44
-
45
32
 
46
- disable_ssl_warnings = True
33
+ app_config = settings.Environment
34
+ config_logging()
35
+ console = Console(width=app_config.console_width)
47
36
 
48
37
 
49
38
  def list_relationships(
@@ -53,11 +42,11 @@ def list_relationships(
53
42
  username: str,
54
43
  user_password: str,
55
44
  time_out: int = 60,
56
- jupyter: bool = EGERIA_JUPYTER,
57
- width: int = EGERIA_WIDTH,
45
+ jupyter: bool = app_config.egeria_jupyter,
46
+ width: int = app_config.console_width,
58
47
  ):
59
48
  console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
60
- if (search_string is None) or ((len(search_string) < 3)) and (search_string != "*"):
49
+ if (search_string is None) or (len(search_string) < 3) and (search_string != "*"):
61
50
  raise ValueError(
62
51
  "Invalid Search String - must be greater than four characters long"
63
52
  )
@@ -88,9 +77,8 @@ def list_relationships(
88
77
  table.add_column("End 2 Type")
89
78
  table.add_column("Properties", min_width=40)
90
79
 
91
- rel_list = g_client.get_relationships(
92
- search_string, page_size=max_paging_size, time_out=time_out
93
- )
80
+ rel_list = g_client.get_relationships(search_string, page_size=0, time_out=time_out,
81
+ output_format="JSON")
94
82
  if type(rel_list) is str:
95
83
  return table
96
84
 
@@ -127,21 +115,17 @@ def list_relationships(
127
115
  return table
128
116
 
129
117
  try:
130
- # with Live(generate_table(), refresh_per_second=4, screen=True) as live:
131
- # while True:
132
- # time.sleep(2)
133
- # live.update(generate_table())
134
-
135
118
  with console.pager(styles=True):
136
119
  console.print(generate_table(search_string), soft_wrap=True)
137
120
 
138
121
  except (
139
- InvalidParameterException,
140
- PropertyServerException,
141
- UserNotAuthorizedException,
122
+ PyegeriaException
142
123
  ) as e:
143
- console.print_exception()
144
- sys.exit(1)
124
+ if e.response_egeria_msg_id == "OMAG-COMMON-400-018":
125
+ print("\n\n==>Invalid Relationship Type\n\n")
126
+ else:
127
+ print_basic_exception(e)
128
+ assert False, "Invalid request"
145
129
 
146
130
  except ValueError as e:
147
131
  console.print(
@@ -160,8 +144,8 @@ def main():
160
144
 
161
145
  args = parser.parse_args()
162
146
 
163
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
164
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
147
+ server = args.server if args.server is not None else app_config.egeria_view_server
148
+ url = args.url if args.url is not None else app_config.egeria_platform_url
165
149
  userid = args.userid if args.userid is not None else EGERIA_USER
166
150
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
167
151
  time_out = args.time_out if args.time_out is not None else 60
@@ -21,33 +21,27 @@ from rich.text import Text
21
21
  from rich.tree import Tree
22
22
 
23
23
  from pyegeria import (
24
- InvalidParameterException,
25
- ProjectManager,
26
- PropertyServerException,
27
- UserNotAuthorizedException,
24
+ PyegeriaException,
25
+ print_basic_exception,
26
+ SolutionArchitect,
27
+ settings, load_app_config, pretty_print_config,
28
+ config_logging,
28
29
  save_mermaid_html,
29
30
  )
30
- from pyegeria._exceptions import print_exception_response
31
- from pyegeria.mermaid_utilities import EGERIA_MERMAID_FOLDER
32
- from pyegeria.solution_architect_omvs import SolutionArchitect
33
-
34
- disable_ssl_warnings = True
35
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
36
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
37
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
38
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "qs-view-server")
39
- EGERIA_VIEW_SERVER_URL = os.environ.get(
40
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
41
- )
42
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
43
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
44
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
31
+
32
+
33
+
34
+
35
+ app_config = settings.Environment
36
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
37
+
45
38
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
46
39
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
47
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
48
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
49
- EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
50
-
40
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
41
+ conf = load_app_config(config_path)
42
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
43
+ console = Console(width = app_config.console_width)
44
+ config_logging()
51
45
 
52
46
  def blueprint_list(
53
47
  search_string: str,
@@ -55,13 +49,15 @@ def blueprint_list(
55
49
  platform_url: str,
56
50
  user: str,
57
51
  user_password: str,
58
- jupyter: bool = EGERIA_JUPYTER,
59
- width: int = EGERIA_WIDTH,
52
+ jupyter: bool = app_config.egeria_jupyter,
53
+ width: int = app_config.console_width,
60
54
  timeout: int = 30,
61
55
  ):
62
56
  """A Supply Chain viewer"""
57
+ print(user + ":" + user_password )
58
+ start_time = time.time()
63
59
  client = SolutionArchitect(server_name, platform_url, user, user_password)
64
- token = client.create_egeria_bearer_token()
60
+ token = client.create_egeria_bearer_token(user,user_password)
65
61
 
66
62
  def generate_table() -> Table | str:
67
63
  table = Table(
@@ -100,7 +96,7 @@ def blueprint_list(
100
96
  link = save_mermaid_html(
101
97
  bp_name, bp_mermaid, f"{EGERIA_MERMAID_FOLDER}/blueprints"
102
98
  )
103
- link = f"file://:{link}"
99
+ link = f"file://{link}"
104
100
  bp_mermaid = Text(link, style="blue link " + link)
105
101
 
106
102
  bp_mermaid_label = Text(f"{bp_name}\n\n--\n\n{bp_mermaid}")
@@ -149,11 +145,9 @@ def blueprint_list(
149
145
  console.print(generate_table())
150
146
 
151
147
  except (
152
- InvalidParameterException,
153
- PropertyServerException,
154
- UserNotAuthorizedException,
148
+ PyegeriaException
155
149
  ) as e:
156
- print_exception_response(e)
150
+ print_basic_exception(e)
157
151
 
158
152
 
159
153
  def main():
@@ -165,11 +159,12 @@ def main():
165
159
  parser.add_argument("--password", help="User Password")
166
160
  args = parser.parse_args()
167
161
 
168
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
169
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
162
+ server = args.server if args.server is not None else app_config.egeria_view_server
163
+ url = args.url if args.url is not None else app_config.egeria_platform_url
170
164
  userid = args.userid if args.userid is not None else EGERIA_USER
171
165
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
172
166
 
167
+
173
168
  try:
174
169
  search_string = Prompt.ask("Enter a search string:", default="*")
175
170
  blueprint_list(search_string, server, url, userid, user_pass)
@@ -21,32 +21,28 @@ from rich.text import Text
21
21
  from rich.tree import Tree
22
22
 
23
23
  from pyegeria import (
24
- InvalidParameterException,
25
- ProjectManager,
26
- PropertyServerException,
27
- UserNotAuthorizedException,
24
+ PyegeriaException,
25
+ print_basic_exception,
26
+ SolutionArchitect,
27
+ settings, load_app_config, pretty_print_config,
28
+ config_logging,
28
29
  save_mermaid_html,
29
30
  )
30
- from pyegeria._exceptions import print_exception_response
31
- from pyegeria.mermaid_utilities import EGERIA_MERMAID_FOLDER
32
- from pyegeria.solution_architect_omvs import SolutionArchitect
33
31
 
34
- disable_ssl_warnings = True
35
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
36
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
37
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
38
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "qs-view-server")
39
- EGERIA_VIEW_SERVER_URL = os.environ.get(
40
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
41
- )
42
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
43
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
44
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
32
+
33
+ app_config = settings.Environment
34
+ config_path = os.path.join(app_config.pyegeria_config_directory, app_config.pyegeria_config_file)
35
+
45
36
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
46
37
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
47
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
48
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
49
- EGERIA_MERMAID_FOLDER = os.environ.get("EGERIA_MERMAID_FOLDER", "work/mermaid_graphs")
38
+ EGERIA_MERMAID_FOLDER = os.path.join(app_config.pyegeria_root, app_config.egeria_mermaid_folder)
39
+ conf = load_app_config(config_path)
40
+ # print(f"Loading config from {config_path} and mermaid folder is {EGERIA_MERMAID_FOLDER}")
41
+ console = Console(width = app_config.console_width)
42
+ config_logging()
43
+
44
+
45
+ disable_ssl_warnings = True
50
46
 
51
47
 
52
48
  def solution_component_list(
@@ -55,8 +51,8 @@ def solution_component_list(
55
51
  platform_url: str,
56
52
  user: str,
57
53
  user_password: str,
58
- jupyter: bool = EGERIA_JUPYTER,
59
- width: int = EGERIA_WIDTH,
54
+ jupyter: bool = app_config.egeria_jupyter,
55
+ width: int = app_config.console_width,
60
56
  timeout: int = 30,
61
57
  ):
62
58
  """A Solution Component viewer"""
@@ -153,11 +149,9 @@ def solution_component_list(
153
149
  console.print(generate_table())
154
150
 
155
151
  except (
156
- InvalidParameterException,
157
- PropertyServerException,
158
- UserNotAuthorizedException,
152
+ PyegeriaException
159
153
  ) as e:
160
- print_exception_response(e)
154
+ print_basic_exception(e)
161
155
 
162
156
 
163
157
  def main():
@@ -169,8 +163,8 @@ def main():
169
163
  parser.add_argument("--password", help="User Password")
170
164
  args = parser.parse_args()
171
165
 
172
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
173
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
166
+ server = args.server if args.server is not None else app_config.egeria_view_server
167
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
174
168
  userid = args.userid if args.userid is not None else EGERIA_USER
175
169
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
176
170