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
@@ -9,66 +9,43 @@ List certification types
9
9
  A simple display for certification types
10
10
  """
11
11
  import argparse
12
- import json
13
12
  import os
14
13
  import sys
15
14
  import time
16
15
 
17
16
  from rich import box
18
17
  from rich.console import Console
19
- from rich.markdown import Markdown
20
- from rich.prompt import Prompt
21
18
  from rich.table import Table
22
19
 
23
20
  from pyegeria import (
24
- AssetCatalog,
25
21
  ClassificationManager,
26
- InvalidParameterException,
27
- PropertyServerException,
28
- UserNotAuthorizedException,
29
- print_exception_response,
22
+ PyegeriaException, settings
30
23
  )
24
+ app_config = settings.Environment
31
25
 
32
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
33
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
34
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
35
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
36
- EGERIA_VIEW_SERVER_URL = os.environ.get(
37
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
38
- )
39
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
40
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
41
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
42
26
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
43
27
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
44
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
45
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
46
-
47
28
 
48
29
  disable_ssl_warnings = True
49
30
 
50
31
 
51
32
  def display_certifications(
52
- search_string: str,
53
33
  server: str,
54
34
  url: str,
55
35
  username: str,
56
36
  user_password: str,
57
37
  time_out: int = 60,
58
- jupyter: bool = EGERIA_JUPYTER,
59
- width: int = EGERIA_WIDTH,
38
+ jupyter: bool = app_config.egeria_jupyter,
39
+ width: int = app_config.console_width,
60
40
  ):
61
41
  console = Console(width=width, force_terminal=not jupyter, soft_wrap=True)
62
- if (search_string is None) or ((len(search_string) < 3)) and (search_string != "*"):
63
- raise ValueError(
64
- "Invalid Search String - must be greater than four characters long"
65
- )
42
+
66
43
  g_client = ClassificationManager(
67
44
  server, url, user_id=username, user_pwd=user_password
68
45
  )
69
46
  token = g_client.create_egeria_bearer_token(username, user_password)
70
47
 
71
- def generate_table(search_string: str = None) -> Table:
48
+ def generate_table(search_string: str = "CertificationType") -> Table:
72
49
  """Make a new table."""
73
50
  table = Table(
74
51
  title=f"Certifications Types @ {time.asctime()}",
@@ -82,7 +59,7 @@ def display_certifications(
82
59
  caption=f"View Server '{server}' @ Platform - {url}",
83
60
  expand=True,
84
61
  )
85
- table.add_column("Title", max_width=15)
62
+ table.add_column("Name", max_width=15)
86
63
  table.add_column("summary")
87
64
  table.add_column("domainID")
88
65
  table.add_column("Unique Name")
@@ -99,20 +76,20 @@ def display_certifications(
99
76
  for element in certs:
100
77
  properties = element["properties"]
101
78
  summary = properties.get("summary", "---")
102
- domain = properties.get("domainIdentifier", "---")
79
+ domain = str(properties.get("domainIdentifier", "---"))
103
80
  unique_name = properties.get("qualifiedName", "---")
104
81
  scope = properties.get("scope", "---")
105
82
  description = properties.get("description", "---")
106
83
  details = properties.get("details", "---")
107
- title = properties.get("title", "---")
84
+ name = properties.get("displayName", "---")
108
85
  cert_guid = element["elementHeader"]["guid"]
109
86
 
110
87
  related = g_client.get_related_elements(cert_guid)
111
88
  if (len(related) > 0) and (type(related) is list):
112
89
  rel_md = ""
113
90
  for rel in related:
114
- rel_type = rel["relationshipHeader"]["type"]["typeName"]
115
- rel_element_props = rel["relatedElement"]["properties"]
91
+ rel_type = rel["elementHeader"]["type"]["typeName"]
92
+ rel_element_props = rel["properties"]
116
93
  rel_el_md = f"* Rel Type: {rel_type}\n"
117
94
  for key in rel_element_props.keys():
118
95
  rel_el_md += f"* {key}: {rel_element_props[key]}\n"
@@ -120,23 +97,8 @@ def display_certifications(
120
97
  else:
121
98
  rel_md = "---"
122
99
 
123
- # match_tab = Table(expand=True)
124
- # match_tab.add_column("Type Name")
125
- # match_tab.add_column("GUID", no_wrap=True, width=36)
126
- # match_tab.add_column("Properties")
127
- #
128
- # for match in nested:
129
- # match_type_name = match['type']['typeName']
130
- # matching_guid = match['guid']
131
- # match_props = match['properties']
132
- # match_details_md = ""
133
- # for key in match_props.keys():
134
- # match_details_md += f"* {key}: {match_props[key]}\n"
135
- # match_details_out = Markdown(match_details_md)
136
- # match_tab.add_row(match_type_name, matching_guid, match_details_out)
137
-
138
100
  table.add_row(
139
- title, summary, domain, unique_name, scope, description, details, rel_md
101
+ name, summary, domain, unique_name, scope, description, details, rel_md
140
102
  )
141
103
 
142
104
  g_client.close_session()
@@ -144,18 +106,12 @@ def display_certifications(
144
106
  return table
145
107
 
146
108
  try:
147
- # with Live(generate_table(), refresh_per_second=4, screen=True) as live:
148
- # while True:
149
- # time.sleep(2)
150
- # live.update(generate_table())
151
109
 
152
110
  with console.pager(styles=True):
153
- console.print(generate_table(search_string), soft_wrap=True)
111
+ console.print(generate_table("CertificationType"), soft_wrap=True)
154
112
 
155
113
  except (
156
- InvalidParameterException,
157
- PropertyServerException,
158
- UserNotAuthorizedException,
114
+ PyegeriaException
159
115
  ) as e:
160
116
  console.print_exception()
161
117
  sys.exit(1)
@@ -177,15 +133,13 @@ def main():
177
133
 
178
134
  args = parser.parse_args()
179
135
 
180
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
181
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
136
+ server = args.server if args.server is not None else app_config.egeria_view_server
137
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
182
138
  userid = args.userid if args.userid is not None else EGERIA_USER
183
139
  user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
184
140
  time_out = args.time_out if args.time_out is not None else 60
185
141
  try:
186
- # search_string = Prompt.ask("Enter an asset search string:", default="*")
187
- search_string = "CertificationType"
188
- display_certifications(search_string, server, url, userid, user_pass, time_out)
142
+ display_certifications(server, url, userid, user_pass, time_out)
189
143
  except KeyboardInterrupt:
190
144
  pass
191
145
 
@@ -6,48 +6,25 @@ Copyright Contributors to the ODPi Egeria project.
6
6
  A simple display for collections
7
7
  """
8
8
  import argparse
9
- import json
10
9
  import os
11
- import time
12
10
 
13
11
  from jsonschema import ValidationError
14
- from rich import box
15
12
  from rich.console import Console
16
- from rich.markdown import Markdown
17
13
  from rich.prompt import Prompt
18
- from rich.table import Table
19
- from rich.text import Text
20
- from loguru import logger
21
14
  from pyegeria import (
22
- CollectionManager,
23
- NO_ELEMENTS_FOUND, config_logging, load_app_config, get_app_config, init_logging, config_logging, PyegeriaException,
24
- print_basic_exception,PyegeriaException, )
25
- from pyegeria._exceptions_new import print_validation_error
26
-
27
- # from pyegeria._exceptions_new import PyegeriaException, print_exception_response
15
+ settings,
16
+ get_app_config, config_logging, print_basic_exception, PyegeriaAPIException, PyegeriaClientException, )
17
+ from commands.cat.run_report import list_generic
18
+ from pyegeria.core._exceptions import print_validation_error
19
+ app_config = settings.Environment
28
20
 
29
21
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
30
22
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
31
- PYEGERIA_ROOT_PATH= os.environ.get("PYEGERIA_ROOT_PATH", "/Users/dwolfson/localGit/egeria-v5-3/egeria-python")
32
- app_settings = get_app_config(PYEGERIA_ROOT_PATH+"./.env")
33
- app_config = app_settings.Environment
23
+ app_settings = get_app_config(app_config.pyegeria_root+"/.env")
24
+
34
25
  config_logging()
35
26
 
36
- out_struct = {
37
- "formats": {
38
- "types": ["ALL"],
39
- "columns": [
40
- {'name': 'display_name', 'key': 'display_name'},
41
- {'name': 'qualified_name', 'key': 'qualified_name', 'format': True},
42
- {'name': 'description', 'key': 'description', 'format': True},
43
- {'name': "classifications", 'key': 'classifications'},
44
- {'name': 'members', 'key': 'members', 'format': True},
45
- {'name': 'category', 'key': 'category', 'format': True},
46
- {'name': 'GUID', 'key': 'GUID'},
47
- ],
48
- },
49
-
50
- }
27
+ console = Console(width=app_config.console_width, force_terminal=(not app_config.egeria_jupyter))
51
28
 
52
29
  def display_collections(
53
30
  search_string: str = "*",
@@ -79,118 +56,21 @@ def display_collections(
79
56
  output_format : str, optional
80
57
  Format of the output. Default is TABLE.
81
58
  """
82
- m_client = CollectionManager(view_server, view_url, user_id=user, user_pwd=user_pass)
83
- m_client.create_egeria_bearer_token()
59
+
84
60
  try:
61
+ table_caption = "Basic Collection List"
62
+ list_generic(report_spec="BasicCollections", output_format=output_format, view_server=view_server,
63
+ view_url=view_url, user=user, user_pass=user_pass, params={"search_string": search_string},
64
+ render_table=True, write_file=True, table_caption=table_caption, use_pager=True,
65
+ width=width, jupyter=jupyter, prompt_missing=True)
66
+
85
67
 
86
- if output_format == "FORM":
87
- action = "Update-Form"
88
- elif output_format == "REPORT":
89
- action = "Report"
90
- elif output_format == "DICT":
91
- action = "Dict"
92
- elif output_format == "HTML":
93
- action = "html"
94
- elif output_format == "LIST":
95
- action = "List"
96
-
97
- if output_format != "TABLE":
98
- file_path = os.path.join(app_config['Pyegeria Root'], app_config['Dr.Egeria Outbox'])
99
- if output_format == "HTML":
100
- file_name = f"Collections-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.html"
101
- else:
102
- file_name = f"Collections-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
103
- full_file_path = os.path.join(file_path, file_name)
104
- os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
105
- output = m_client.find_collections(
106
- search_string.strip(), None, True, False, ignore_case=True,
107
- output_format=output_format
108
- )
109
- if output == NO_ELEMENTS_FOUND:
110
- print(f"\n==> No collections found for search string '{search_string}'")
111
- return
112
- elif isinstance(output, str | list) and output_format == "DICT":
113
- output = json.dumps(output, indent=4)
114
-
115
- with open(full_file_path, 'w') as f:
116
- f.write(output)
117
- print(f"\n==> Collections output written to {full_file_path}")
118
- return
119
-
120
- table = Table(
121
- title=f"Collection List @ {time.asctime()}",
122
- style="bright_white on black",
123
- header_style="bright_white on dark_blue",
124
- title_style="bold white on black",
125
- caption_style="white on black",
126
- show_lines=True,
127
- box=box.ROUNDED,
128
- caption=f"View Server '{view_server}' @ Platform - {view_url}",
129
- expand=True,
130
- )
131
- table.add_column("Collection Name")
132
- table.add_column(
133
- "Qualified Name & GUID", width=38, no_wrap=True, justify="center"
134
- )
135
- table.add_column("Description")
136
- table.add_column("Collection Type")
137
- table.add_column("Classifications")
138
- table.add_column("Members")
139
-
140
- collections = m_client.find_collections(
141
- search_string.strip(), None, ["Collection"],True, False, ignore_case=True,
142
- output_format = "DICT", output_format_set=out_struct
143
- )
144
- if type(collections) is list:
145
-
146
- sorted_collection_list = sorted(
147
- collections, key=lambda k: k["display_name"]
148
- )
149
- for collection in sorted_collection_list:
150
-
151
- display_name = collection["display_name"]
152
- qualified_name = collection["qualified_name"]
153
- guid = collection["GUID"]
154
- q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
155
- description = collection.get("description",'---')
156
- collection_type = collection.get("collectionType", "---")
157
- classifications = collection.get("classifications", "---")
158
-
159
- classifications_md = Markdown(classifications) if classifications else ""
160
- members_struct = m_client.get_member_list(collection_guid=guid)
161
- member_list = ""
162
- if isinstance(members_struct, list):
163
- for member in members_struct:
164
- member_list = member_list + f"- {member.get('qualifiedName','---')}\n"
165
-
166
- # members = "\n* ".join(collection.get("members", []))
167
- members_md = Markdown(member_list) if member_list else ""
168
-
169
- table.add_row(
170
- display_name,
171
- q_name,
172
- description,
173
- collection_type,
174
- classifications_md,
175
- members_md,
176
- )
177
- console = Console(
178
- style="bold bright_white on black",
179
- width=width,
180
- force_terminal=not jupyter,
181
- )
182
- console.print(table)
183
- else:
184
- print("==> No collections with that name found")
185
-
186
- except (PyegeriaException) as e:
68
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
187
69
  print_basic_exception(e)
188
70
  except ValidationError as e:
189
71
  print_validation_error(e)
190
72
  except Exception as e:
191
73
  print(f"An unexpected error occurred: {e}")
192
- finally:
193
- m_client.close_session()
194
74
 
195
75
 
196
76
  def main():
@@ -201,8 +81,6 @@ def main():
201
81
  parser.add_argument("--password", help="User Password")
202
82
 
203
83
  args = parser.parse_args()
204
- # app_settings = get_app_config(PYEGERIA_ROOT_PATH + "/.env")
205
- # app_config = app_settings.Environment
206
84
 
207
85
  server = args.server if args.server is not None else app_config.egeria_view_server
208
86
  url = args.url if args.url is not None else app_config.egeria_view_server_url
@@ -220,7 +98,7 @@ def main():
220
98
  except KeyboardInterrupt:
221
99
  pass
222
100
 
223
- except PyegeriaException as e:
101
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
224
102
  print_basic_exception(e)
225
103
  except ValidationError as e:
226
104
  print_validation_error(e)
@@ -13,28 +13,18 @@ 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
+ PyegeriaAPIException, PyegeriaClientException,
17
+ print_basic_exception,
18
+ settings,
19
+ config_logging, PyegeriaException
20
20
  )
21
21
 
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")
22
+
33
23
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
24
  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"))
37
25
 
26
+ app_config = settings.Environment
27
+ console = Console(width = app_config.console_width)
38
28
 
39
29
  def check_if_template(header: dict) -> bool:
40
30
  """Check if the the template classification is set"""
@@ -49,12 +39,12 @@ def check_if_template(header: dict) -> bool:
49
39
 
50
40
  def list_deployed_catalogs(
51
41
  catalog_server: str = "*",
52
- view_server: str = EGERIA_VIEW_SERVER,
53
- view_url: str = EGERIA_VIEW_SERVER_URL,
42
+ view_server: str = app_config.egeria_view_server,
43
+ view_url: str = app_config.egeria_view_server_url,
54
44
  user: str = EGERIA_USER,
55
45
  user_pass: str = EGERIA_USER_PASSWORD,
56
- jupyter: bool = EGERIA_JUPYTER,
57
- width: int = EGERIA_WIDTH,
46
+ jupyter: bool = app_config.egeria_jupyter,
47
+ width: int = app_config.console_width,
58
48
  ):
59
49
  """
60
50
  Display the list of deployed catalogs. These could be metadata catalogs or other catalogs such as database catalogs..
@@ -181,11 +171,9 @@ def list_deployed_catalogs(
181
171
  console.print(generate_table())
182
172
 
183
173
  except (
184
- InvalidParameterException,
185
- PropertyServerException,
186
- UserNotAuthorizedException,
174
+ PyegeriaException
187
175
  ) as e:
188
- print_exception_response(e)
176
+ print_basic_exception(e)
189
177
  print("\n\nPerhaps the type name isn't known")
190
178
  finally:
191
179
  c_client.close_session()
@@ -200,8 +188,8 @@ def main():
200
188
 
201
189
  args = parser.parse_args()
202
190
 
203
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
204
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
191
+ server = args.server if args.server is not None else app_config.egeria_view_server
192
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
205
193
  userid = args.userid if args.userid is not None else EGERIA_USER
206
194
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
207
195
 
@@ -13,37 +13,27 @@ 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
+ PyegeriaAPIException, PyegeriaClientException,
17
+ print_basic_exception,
18
+ settings,
19
+ config_logging, PyegeriaException
20
20
  )
21
21
 
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")
22
+
33
23
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
24
  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"))
37
25
 
26
+ app_config = settings.Environment
27
+ config_logging()
28
+ console = Console(width = app_config.console_width)
38
29
 
39
30
  def check_if_template(header: dict) -> bool:
40
31
  """Check if the the template classification is set"""
41
- classifications = header.get("classifications", None)
42
- if classifications is None:
32
+ template = header.get("template", None)
33
+ if template is None:
43
34
  return False
44
- for c in classifications:
45
- if c["type"]["typeName"] == "Template":
46
- return True
35
+ if template["type"]["typeName"] == "Template":
36
+ return True
47
37
  return False
48
38
 
49
39
 
@@ -57,12 +47,12 @@ def make_prop_md(props: dict) -> str:
57
47
 
58
48
  def list_deployed_database_schemas(
59
49
  db_name: str = "*",
60
- view_server: str = EGERIA_VIEW_SERVER,
61
- view_url: str = EGERIA_VIEW_SERVER_URL,
50
+ view_server: str = app_config.egeria_view_server,
51
+ view_url: str = app_config.egeria_view_server_url,
62
52
  user: str = EGERIA_USER,
63
53
  user_pass: str = EGERIA_USER_PASSWORD,
64
- jupyter: bool = EGERIA_JUPYTER,
65
- width: int = EGERIA_WIDTH,
54
+ jupyter: bool = app_config.egeria_jupyter,
55
+ width: int = app_config.console_width,
66
56
  ):
67
57
  """List schemas that have been deployed in database catalogs or databases.
68
58
  Parameters
@@ -133,17 +123,13 @@ def list_deployed_database_schemas(
133
123
  el_guid = header["guid"]
134
124
 
135
125
  # get the information about the catalog we are part of
136
- el_classification = header["classifications"]
137
- for c in el_classification:
138
- el_cat_guid = "---"
139
- if c["type"]["typeName"] == "Anchors":
140
- el_anchor_guid = c["classificationProperties"].get("anchorGUID",'---')
141
- el_anchor_type_name = c["classificationProperties"][
142
- "anchorTypeName"
143
- ]
144
- el_anchor_domain_name = c["classificationProperties"][
145
- "anchorDomainName"
146
- ]
126
+ el_anchor = header["anchor"]
127
+ el_cat_guid = "---"
128
+ if el_anchor:
129
+ if el_anchor["type"]["typeName"] == "Anchors":
130
+ el_anchor_guid = el_anchor["classificationProperties"].get("anchorGUID",'---')
131
+ el_anchor_type_name = el_anchor["classificationProperties"]["anchorTypeName"]
132
+ el_anchor_domain_name = el_anchor["classificationProperties"]["anchorDomainName"]
147
133
  el_cat_name = "---"
148
134
  if el_anchor_domain_name == "SoftwareCapability":
149
135
  el_cat = c_client.get_element_by_guid(el_anchor_guid)
@@ -215,11 +201,9 @@ def list_deployed_database_schemas(
215
201
  console.print(generate_table())
216
202
 
217
203
  except (
218
- InvalidParameterException,
219
- PropertyServerException,
220
- UserNotAuthorizedException,
204
+ PyegeriaException
221
205
  ) as e:
222
- print_exception_response(e)
206
+ print_basic_exception(e)
223
207
  print("\n\nPerhaps the type name isn't known")
224
208
  finally:
225
209
  c_client.close_session()
@@ -234,8 +218,8 @@ def main():
234
218
 
235
219
  args = parser.parse_args()
236
220
 
237
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
238
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
221
+ server = args.server if args.server is not None else app_config.egeria_view_server
222
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
239
223
  userid = args.userid if args.userid is not None else EGERIA_USER
240
224
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
241
225
 
@@ -8,33 +8,22 @@ import time
8
8
  from rich import box
9
9
  from rich.console import Console
10
10
  from rich.markdown import Markdown
11
- from rich.prompt import Prompt
12
11
  from rich.table import Table
13
12
 
14
13
  from pyegeria import (
15
14
  EgeriaTech,
16
- InvalidParameterException,
17
- PropertyServerException,
18
- UserNotAuthorizedException,
19
- print_exception_response,
15
+ PyegeriaAPIException, PyegeriaClientException,
16
+ print_basic_exception,
17
+ settings,
18
+ config_logging, PyegeriaException
20
19
  )
21
20
 
22
- console = Console()
23
- EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
24
- EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
25
- EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
26
- EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
27
- EGERIA_VIEW_SERVER_URL = os.environ.get(
28
- "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
29
- )
30
- EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
31
- EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
32
- EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
33
21
  EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
34
22
  EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
35
- EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
36
- EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "300"))
37
23
 
24
+ app_config = settings.Environment
25
+ console = Console(width = app_config.console_width)
26
+ config_logging()
38
27
 
39
28
  def check_if_template(header: dict) -> bool:
40
29
  """Check if the the template classification is set"""
@@ -48,12 +37,12 @@ def check_if_template(header: dict) -> bool:
48
37
 
49
38
 
50
39
  def list_deployed_databases(
51
- view_server: str = EGERIA_VIEW_SERVER,
52
- view_url: str = EGERIA_VIEW_SERVER_URL,
40
+ view_server: str = app_config.egeria_view_server,
41
+ view_url: str = app_config.egeria_view_server_url,
53
42
  user: str = EGERIA_USER,
54
43
  user_pass: str = EGERIA_USER_PASSWORD,
55
- jupyter: bool = EGERIA_JUPYTER,
56
- width: int = EGERIA_WIDTH,
44
+ jupyter: bool = app_config.egeria_jupyter,
45
+ width: int = app_config.console_width,
57
46
  ):
58
47
  """
59
48
  Parameters
@@ -133,9 +122,7 @@ def list_deployed_databases(
133
122
  if type(rel_elements) is list:
134
123
  for rel_element in rel_elements:
135
124
  count += 1
136
- rel_type = rel_element["relatedElement"]["elementHeader"][
137
- "type"
138
- ]["typeName"]
125
+ rel_type = rel_element["elementHeader"]["type"]["typeName"]
139
126
  rel_guid = rel_element["relatedElement"]["elementHeader"][
140
127
  "guid"
141
128
  ]
@@ -169,11 +156,9 @@ def list_deployed_databases(
169
156
  console.print(generate_table())
170
157
 
171
158
  except (
172
- InvalidParameterException,
173
- PropertyServerException,
174
- UserNotAuthorizedException,
159
+ PyegeriaException
175
160
  ) as e:
176
- print_exception_response(e)
161
+ print_basic_exception(e)
177
162
  print("\n\nPerhaps the type name isn't known")
178
163
  finally:
179
164
  c_client.close_session()
@@ -188,8 +173,8 @@ def main():
188
173
 
189
174
  args = parser.parse_args()
190
175
 
191
- server = args.server if args.server is not None else EGERIA_VIEW_SERVER
192
- url = args.url if args.url is not None else EGERIA_PLATFORM_URL
176
+ server = args.server if args.server is not None else app_config.egeria_view_server
177
+ url = args.url if args.url is not None else app_config.egeria_view_server_url
193
178
  userid = args.userid if args.userid is not None else EGERIA_USER
194
179
  password = args.password if args.password is not None else EGERIA_USER_PASSWORD
195
180