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,27 +21,19 @@ from rich.text import Text
21
21
  from rich.tree import Tree
22
22
 
23
23
  from pyegeria import (
24
- ClassificationManager,
25
- Client,
26
- InvalidParameterException,
27
- PropertyServerException,
28
- UserNotAuthorizedException,
24
+ ServerClient,
25
+ PyegeriaException,
26
+ print_basic_exception,
27
+ settings,
28
+ config_logging
29
29
  )
30
30
 
31
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
32
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
33
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
34
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
35
- EGERIA_VIEW_SERVER_URL = os.environ.get(
36
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
37
- )
38
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
39
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
40
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
41
31
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
42
32
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
43
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
44
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
33
+
34
+ app_config = settings.Environment
35
+ config_logging()
36
+ console = Console(width=app_config.console_width)
45
37
 
46
38
 
47
39
  def display_guid(
@@ -50,34 +42,25 @@ def display_guid(
50
42
  url: str,
51
43
  username: str,
52
44
  user_password: str,
53
- jupyter: bool = EGERIA_JUPYTER,
54
- width: int = EGERIA_WIDTH,
45
+ jupyter: bool = app_config.egeria_jupyter,
46
+ width: int = app_config.console_width,
55
47
  ):
56
- c = Client(server, url, user_id=username)
57
- url = (
58
- f"{url}/servers/{server}/open-metadata/repository-services/users/{username}/"
59
- f"instances/entity/{guid}"
60
- )
61
- # c = ClassificationManager(server, url)
62
-
48
+ c = ServerClient(server, url, user_id=username)
63
49
  bearer_token = c.create_egeria_bearer_token(username, user_password)
64
50
 
65
51
  try:
66
52
  console = Console(
67
53
  width=width, force_terminal=not jupyter, style="bold white on black"
68
54
  )
69
- r = c.make_request("GET", url)
70
- if r.status_code == 200:
71
- pass
72
- # r = c.retrieve_instance_for_guid(guid)
73
- e = r.json()["entity"]
74
- p = e["properties"]["instanceProperties"]
75
-
76
- type_name = Text(f"Type is: {e['type']['typeDefName']}")
55
+ r = c._get_element_by_guid_(guid)
56
+ el = r["elementHeader"]
57
+ p = r["properties"]
58
+
59
+ type_name = Text(f"Type is: {el['type']['typeName']}")
77
60
  metadataCollection = Text(
78
- f"Metadadata Collection: {e['metadataCollectionName']}"
61
+ f"Metadadata Collection: {el['origin']['homeMetadataCollectionName']}"
79
62
  )
80
- created = Text(f"Created at: {e['createTime']}")
63
+ created = Text(f"Created at: {el['versions']['createTime']}")
81
64
  details = Text(f"Details: {json.dumps(p, indent=2)}")
82
65
 
83
66
  tree = Tree(
@@ -95,9 +78,7 @@ def display_guid(
95
78
  c.close_session()
96
79
 
97
80
  except (
98
- InvalidParameterException,
99
- PropertyServerException,
100
- UserNotAuthorizedException,
81
+ PyegeriaException,
101
82
  ValueError,
102
83
  ) as e:
103
84
  if type(e) is str:
@@ -117,14 +98,14 @@ def main():
117
98
  # parser.add_argument("--sponsor", help="Name of sponsor to search")
118
99
  args = parser.parse_args()
119
100
 
120
- server = args.server if args.server is not None else EGERIA_METADATA_STORE
121
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
101
+ server = args.server if args.server is not None else app_config.egeria_view_server
102
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
122
103
  userid = args.userid if args.userid is not None else EGERIA_USER
123
104
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
124
105
 
125
106
  try:
126
107
  guid = Prompt.ask("Enter the GUID to retrieve", default=None)
127
- display_guid(guid, server, url, userid, user_pass)
108
+ display_guid(guid.strip(), server, url, userid, user_pass)
128
109
  except KeyboardInterrupt:
129
110
  pass
130
111
 
@@ -20,30 +20,19 @@ from rich.tree import Tree
20
20
 
21
21
  from pyegeria import (
22
22
  AutomatedCuration,
23
- InvalidParameterException,
24
- PropertyServerException,
25
- UserNotAuthorizedException,
23
+ PyegeriaException,
24
+ print_basic_exception,
25
+ settings,
26
+ config_logging
26
27
  )
27
- from pyegeria._exceptions import print_exception_response
28
-
29
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
30
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
31
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
32
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
33
- EGERIA_VIEW_SERVER_URL = os.environ.get(
34
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
35
- )
36
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
37
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
38
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
28
+
39
29
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
40
30
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
41
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
42
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
43
31
 
44
- # nest_asyncio.apply()
32
+ app_config = settings.Environment
33
+ config_logging()
34
+ console = Console(width = app_config.console_width)
45
35
 
46
- disable_ssl_warnings = True
47
36
 
48
37
 
49
38
  def tech_details_viewer(
@@ -52,20 +41,18 @@ def tech_details_viewer(
52
41
  platform_url: str,
53
42
  user: str,
54
43
  user_password: str,
55
- jupyter: bool = EGERIA_JUPYTER,
56
- width: int = EGERIA_WIDTH,
44
+ jupyter: bool = app_config.egeria_jupyter,
45
+ width: int = app_config.console_width,
57
46
  ):
58
47
  console = Console(width=width, force_terminal=not jupyter)
59
48
 
60
- # print(f"tech is {tech} of type {type(tech)}")
61
- # sys.exit(0)
62
49
  def view_tech_details(
63
50
  a_client: AutomatedCuration, root_collection_name: str, tree: Tree
64
51
  ) -> Tree:
65
52
  l2: Tree = None
66
- tech_details = a_client.get_technology_type_detail(tech)
53
+ tech_details = a_client.get_tech_type_detail(tech)
67
54
  if (type(tech_details) is dict) and (len(tech_details) > 0):
68
- name = tech_details.get("name", "---")
55
+ name = tech_details.get("displayName", "---")
69
56
  qualified_name = tech_details.get("qualifiedName", "---")
70
57
  category = tech_details.get("category", "---")
71
58
  description = tech_details.get("description", "---")
@@ -95,16 +82,16 @@ def tech_details_viewer(
95
82
  f"[bold bright_white]{resource.get('resourceUse', '---')}"
96
83
  )
97
84
  resource_use_description = Text(
98
- f"[bold bright_white]{resource.get('resourceUseDescription', '---')}"
85
+ f"[bold bright_white]{resource.get('description', '---')}"
99
86
  )
100
87
  type_name = Text(
101
- f"[bold bright_white]{resource['relatedElement']['type'].get('typeName', '---')}"
88
+ f"[bold bright_white]{resource['relatedElement']['elementHeader']['type'].get('typeName', '---')}"
102
89
  )
103
90
  unique_name = Text(
104
- f"[bold bright_white]{resource['relatedElement'].get('uniqueName', '---')}"
91
+ f"[bold bright_white]{resource['relatedElement']['properties'].get('qualifiedName', '---')}"
105
92
  )
106
93
  related_guid = Text(
107
- f"[bold bright_white]{resource['relatedElement'].get('guid', '---')}"
94
+ f"[bold bright_white]{resource['relatedElement']['elementHeader'].get('guid', '---')}"
108
95
  )
109
96
  resource_text = (
110
97
  f"[bold red]Resource\n"
@@ -139,11 +126,9 @@ def tech_details_viewer(
139
126
  print(tree)
140
127
 
141
128
  except (
142
- InvalidParameterException,
143
- PropertyServerException,
144
- UserNotAuthorizedException,
129
+ PyegeriaException,
145
130
  ) as e:
146
- print_exception_response(e)
131
+ print_basic_exception(e)
147
132
 
148
133
 
149
134
  def main():
@@ -155,8 +140,8 @@ def main():
155
140
  parser.add_argument("--password", help="User Password")
156
141
  args = parser.parse_args()
157
142
 
158
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
159
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
143
+ server = args.server if args.server is not None else app_config.egeria_view_server
144
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
160
145
  userid = args.userid if args.userid is not None else EGERIA_USER
161
146
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
162
147
  try:
@@ -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