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
@@ -3,10 +3,8 @@ This is an ongoing experiment in parsing and playing with Freddie docs
3
3
  """
4
4
  import os
5
5
  import sys
6
- from datetime import datetime
7
6
 
8
7
  from loguru import logger
9
- from pydantic import ValidationError
10
8
 
11
9
  log_format = "{time} | {level} | {function} | {line} | {message} | {extra}"
12
10
  logger.remove()
@@ -14,38 +12,9 @@ logger.add(sys.stderr, level="INFO", format=log_format, colorize=True)
14
12
  logger.add("debug_log.log", rotation="1 day", retention="1 week", compression="zip", level="TRACE", format=log_format,
15
13
  colorize=True)
16
14
  import click
17
- from rich import print
18
- from rich.console import Console
19
- from md_processing.md_processing_utils.common_md_utils import setup_log
20
15
 
21
- from md_processing import (extract_command, process_glossary_upsert_command, process_term_upsert_command,
22
- process_category_upsert_command, process_provenance_command, get_current_datetime_string,
23
- process_per_proj_upsert_command, command_list, process_blueprint_upsert_command,
24
- process_solution_component_upsert_command, process_component_link_unlink_command,
25
- process_term_list_command,
26
- process_category_list_command, process_glossary_list_command, process_term_history_command,
27
- process_glossary_structure_command, process_term_revision_history_command,
28
- process_create_term_term_relationship_command, process_term_details_command,
29
- process_information_supply_chain_upsert_command,
30
- process_information_supply_chain_link_unlink_command, process_sol_arch_list_command,
31
- process_digital_product_upsert_command, process_agreement_upsert_command,
32
- process_collection_upsert_command, process_link_agreement_item_command,
33
- process_gov_definition_upsert_command, GOV_COM_LIST, GOV_LINK_LIST,
34
- process_gov_def_link_detach_command,
35
- process_gov_def_context_command, process_supporting_gov_def_link_detach_command,
36
- process_attach_subscriber_command,
37
- COLLECTIONS_LIST, SIMPLE_COLLECTIONS, GOV_LINK_LIST, process_output_command)
38
- from md_processing.md_commands.data_designer_commands import (process_data_spec_upsert_command,
39
- process_data_dict_upsert_command,
40
- process_data_collection_list_command,
41
- process_data_structure_list_command,
42
- process_data_field_list_command,
43
- process_data_class_list_command,
44
- process_data_field_upsert_command,
45
- process_data_structure_upsert_command,
46
- process_data_class_upsert_command)
47
-
48
- from pyegeria import EgeriaTech, PyegeriaException, print_basic_exception, print_validation_error
16
+ from pyegeria.core._exceptions import PyegeriaException
17
+ from md_processing.dr_egeria import process_md_file
49
18
 
50
19
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
51
20
  EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
@@ -62,259 +31,33 @@ EGERIA_WIDTH = os.environ.get("EGERIA_WIDTH", 220)
62
31
  EGERIA_JUPYTER = os.environ.get("EGERIA_JUPYTER", False)
63
32
  EGERIA_HOME_GLOSSARY_GUID = os.environ.get("EGERIA_HOME_GLOSSARY_GUID", None)
64
33
  EGERIA_GLOSSARY_PATH = os.environ.get("EGERIA_GLOSSARY_PATH", None)
65
- EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
34
+ EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../..")
66
35
  EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
67
36
  EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
68
37
 
69
- setup_log()
70
38
  @click.command("process_markdown_file", help="Process a markdown file and return the output as a string.")
71
39
  @click.option("--input-file", help="Markdown file to process.", default="dr_egeria_intro_part1.md", required=True,
72
40
  prompt=False)
73
41
  @click.option("--output-folder", help="Output folder.", default="", required=False)
74
42
  @click.option("--directive", default="process", help="How to process the file",
75
- type=click.Choice(["display", "validate", "process"], case_sensitive=False), prompt=False, )
43
+ type = click.Choice(["display", "validate", "process"], case_sensitive=False), prompt=False, )
76
44
  @click.option("--server", default=EGERIA_VIEW_SERVER, help="Egeria view server to use.")
77
45
  @click.option("--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to")
78
46
  @click.option("--userid", default=EGERIA_USER, help="Egeria user")
79
47
  @click.option("--user_pass", default=EGERIA_USER_PASSWORD, help="Egeria user password")
80
48
  @logger.catch
81
49
  def process_markdown_file(input_file: str, output_folder:str, directive: str, server: str, url: str, userid: str,
82
- user_pass: str, ) -> None:
50
+ user_pass: str ) -> None:
83
51
  """
84
52
  Process a markdown file by parsing and executing Dr. Egeria md_commands. Write output to a new file.
85
53
  """
86
-
87
- cmd_list = command_list
88
- console = Console(width=int(EGERIA_WIDTH))
89
- client = EgeriaTech(server, url, user_id=userid)
90
- token = client.create_egeria_bearer_token(userid, user_pass)
91
-
92
- updated = False
93
- full_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_INBOX_PATH, input_file)
94
- logger.info("\n\n====================================================\n\n")
95
- logger.info(f"Processing Markdown File: {full_file_path}")
96
- try:
97
- with open(full_file_path, 'r') as f:
98
- lines = f.readlines()
99
- except FileNotFoundError:
100
- print(f"Error: File not found at path: {full_file_path}")
101
- return {} # Return empty dict if file not found
102
-
103
- final_output = []
104
- prov_found = False
105
- prov_output = (f"\n# Provenance\n\n* Results from processing file {input_file} on "
106
- f"{datetime.now().strftime("%Y-%m-%d %H:%M")}\n")
107
- h1_blocks = []
108
- current_block = ""
109
- in_h1_block = False
110
-
111
- # Helper function to process the current block
112
- def process_current_block(current_block):
113
- nonlocal updated, final_output, prov_found, prov_output, h1_blocks, in_h1_block
114
-
115
- if not current_block:
116
- return # No block to process
117
-
118
- potential_command = extract_command(current_block) # Extract object_action
119
- if (potential_command in cmd_list):
120
- # Process the block based on the object_action
121
- if potential_command == "Provenance":
122
- result = process_provenance_command(input_file, current_block)
123
- prov_found = True
124
-
125
- elif potential_command in ["Create Glossary", "Update Glossary"]:
126
- result = process_glossary_upsert_command(client, current_block, directive)
127
- elif potential_command in ["Create Category", "Update Category"]:
128
- result = process_category_upsert_command(client, current_block, directive)
129
- elif potential_command in ["Create Term", "Update Term"]:
130
- result = process_term_upsert_command(client, current_block, directive)
131
- elif potential_command in ["Create Term-Term Relationship", "Update Term-Term Relationship"]:
132
- result = process_create_term_term_relationship_command(client, current_block, directive)
133
- elif potential_command in ["List Term History", "Term History"]:
134
- result = process_term_history_command(client, current_block, directive)
135
- elif potential_command in ["List Term Details"]:
136
- result = process_term_details_command(client, current_block, directive)
137
- elif potential_command in ["List Term Update History", "List Term Revision History"]:
138
- result = process_term_revision_history_command(client, current_block, directive)
139
- elif potential_command in ["List Terms", "List Glossary Terms"]:
140
- result = process_term_list_command(client, current_block, directive)
141
- elif potential_command in ["List Categories", "List Glossary Categories"]:
142
- result = process_category_list_command(client, current_block, directive)
143
- elif potential_command in ["List Glossary Structure"]:
144
- result = process_glossary_structure_command(client, current_block, directive)
145
- elif potential_command in ["List Glossaries"]:
146
- result = process_glossary_list_command(client, current_block, directive)
147
- elif potential_command in ["Create Personal Project", "Update Personal Project"]:
148
- result = process_per_proj_upsert_command(client, current_block, directive)
149
- elif potential_command in ["Create Blueprint", "Update Blueprint", "Create Solution Blueprint",
150
- "Update Solution Blueprint"]:
151
- result = process_blueprint_upsert_command(client, current_block, directive)
152
- elif potential_command in ["View Solution Blueprints", "View Blueprint", "View Solution Blueprint"]:
153
- result = process_sol_arch_list_command(client, current_block, "Solution Blueprints", directive)
154
- elif potential_command in ["View Solution Component", "View Solution Components"]:
155
- result = process_sol_arch_list_command(client, current_block, "Solution Components", directive)
156
- elif potential_command in ["View Solution Roles", "View Solution Role"]:
157
- result = process_sol_arch_list_command(client, current_block, "Solution Roles", directive)
158
- elif potential_command in ["View Information Supply Chain", "View Information Supply Chains"]:
159
- result = process_sol_arch_list_command(client, current_block, "Information Supply Chains", directive)
160
- elif potential_command in ["Create Solution Component", "Update Solution Component"]:
161
- result = process_solution_component_upsert_command(client, current_block, directive)
162
- elif potential_command in ["Link Solution Components", "Link Solution Component Peers", "Wire Solution Components",
163
- "Unlink Solution Components", "Detach Solution Components", "Detach Solution Component Peers"]:
164
- result = process_component_link_unlink_command(client, current_block, directive)
165
- elif potential_command in ["Create Information Supply Chain", "Update Information Supply Chain"]:
166
- result = process_information_supply_chain_upsert_command(client, current_block, directive)
167
-
168
- elif potential_command in ["Link Information Supply Chain Peers", "Link Information Supply Chains",
169
- "Link Supply Chains", "Unlink Information Supply Chain Peers",
170
- "Unlink Information Supply Chains", "Unlink Supply Chains"]:
171
- result = process_information_supply_chain_link_unlink_command(client, current_block, directive)
172
-
173
- elif potential_command in ["Create Data Spec", "Create Data Specification", "Update Data Spec",
174
- "Update Data Specification"]:
175
- result = process_data_spec_upsert_command(client, current_block, directive)
176
- elif potential_command in ["Create Data Dict", "Create Data Dictionary", "Update Data Spec",
177
- "Update Data Dictionary"]:
178
- result = process_data_dict_upsert_command(client, current_block, directive)
179
- elif potential_command in ["Create Data Field", "Update Data Field"]:
180
- result = process_data_field_upsert_command(client, current_block, directive)
181
- elif potential_command in ["Create Data Structure", "Update Data Structure"]:
182
- result = process_data_structure_upsert_command(client, current_block, directive)
183
- elif potential_command in ["Create Data Class", "Update Data Class"]:
184
- result = process_data_class_upsert_command(client, current_block, directive)
185
- elif potential_command in ["View Data Dictionaries", "View Data Dictionary", "View Data Specifications",
186
- "View Data Specs"]:
187
- result = process_data_collection_list_command(client, current_block, directive)
188
- elif potential_command in ["View Data Structures", "View Data Structure"]:
189
- result = process_data_structure_list_command(client, current_block, directive)
190
- elif potential_command in ["View Data Fields", "View Data Field"]:
191
- result = process_data_field_list_command(client, current_block, directive)
192
- elif potential_command in ["View Data Classes", "View Data Class"]:
193
- result = process_data_class_list_command(client, current_block, directive)
194
- elif potential_command in ["Create Digital Product", "Create Data Product","Update Digital Product", "Update Data Product"]:
195
- result = process_digital_product_upsert_command(client, current_block, directive)
196
- elif potential_command in ["Create Agreement", "Create Data Sharing Agreement", "Create Digital Subscription",
197
- "Create Product Subscription", "Update Agreement", "Update Data Sharing Agreement",
198
- "Update Digital Subscription", "Update Product Subscription"]:
199
- result = process_agreement_upsert_command(client, current_block, directive)
200
- elif potential_command in SIMPLE_COLLECTIONS:
201
- result = process_collection_upsert_command(client, current_block, directive)
202
- elif potential_command in GOV_COM_LIST:
203
- result = process_gov_definition_upsert_command(client, current_block, directive)
204
- elif potential_command in ['View Governance Definitions', 'List Governance Definitions',
205
- 'View Gov Definitions', 'List Gov Definitions']:
206
- result = process_gov_definition_list_command(client, current_block, directive)
207
- elif potential_command in GOV_LINK_LIST:
208
- result = process_gov_def_link_detach_command(client, current_block, directive)
209
- elif potential_command in ['Link Governance Mechanism', 'Detach Governance Mechanism',
210
- 'Link Governance Response', 'Detach Governance Response',]:
211
- result = process_supporting_gov_def_link_detach_command(client, current_block, directive)
212
- elif potential_command in ['Link Digital Products', 'Detach Digital Products',
213
- 'Link Product-Product', 'Detach Product-Product'
214
- ]:
215
- result = process_product_dependency_command(client, current_block, directive)
216
- elif potential_command in ['Link Agreement->Item', 'Detach Agreement->Item']:
217
- result = process_link_agreement_item_command(client, current_block, directive)
218
- elif potential_command in ['Link Collection->Resource', 'Detach Collection->Resource']:
219
- result = process_attach_collection_command(client, current_block, directive)
220
- elif potential_command in ['Link Member->Collection', 'Detach Member->Collection',]:
221
- result = process_add_to_collection_command(client, current_block, directive)
222
- elif potential_command in ['Link Subscriber->Subscription', 'Detach Subscriber->Subscription']:
223
- result = process_attach_subscriber_command(client, current_block, directive)
224
- elif potential_command in ['View Report']:
225
- result = process_output_command(client, current_block, directive)
226
-
227
- elif potential_command in COLLECTIONS_LIST:
228
- result = process_collection_list_command(client, current_block, directive)
229
-
230
-
231
-
232
- else:
233
- # If object_action is not recognized, keep the block as-is
234
- result = None
235
- print(f"\n===> Unknown command: {potential_command}")
236
- # print(json.dumps(dr_egeria_state.get_element_dictionary(), indent=4))
237
- if result:
238
- if directive == "process":
239
- updated = True
240
- final_output.append(result) # print(json.dumps(dr_egeria_state.get_element_dictionary(), indent=4))
241
- elif directive == "validate":
242
- pass # print(json.dumps(dr_egeria_state.get_element_dictionary(), indent=4))
243
- elif directive == "process":
244
- # Handle errors (skip this block but notify the user)
245
- print(f"\n==>\tErrors found while processing command: \'{potential_command}\'\n"
246
- f"\tPlease correct and try again. \n")
247
- final_output.append(current_block)
248
- final_output.append('\n___\n')
249
- else:
250
- # If there is no object_action, append the block as-is
251
- final_output.append(current_block)
252
-
253
- # Main parsing loop
254
- for line in lines:
255
- line = line.strip() # Remove leading/trailing whitespace
256
-
257
- # Handle a new H1 block (starting with `# `)
258
- if line.startswith("# "):
259
- if in_h1_block:
260
- # Process the current block before starting a new one
261
- process_current_block(current_block)
262
-
263
- # Start a new H1 block
264
- current_block = line
265
- in_h1_block = True
266
-
267
- # Handle the end of a block (line starts with `---`)
268
- elif line.startswith("___"):
269
- if in_h1_block:
270
- # Process the current block when it ends with `---`
271
- current_block += f"\n{line}"
272
- process_current_block(current_block)
273
- current_block = "" # Clear the block
274
- in_h1_block = False
275
-
276
- # Add lines to the current H1 block
277
- elif in_h1_block:
278
- current_block += f"\n{line}"
279
-
280
- # Append non-H1 content directly to the output
281
- else:
282
- final_output.append(line)
283
-
284
- # Ensure the final H1 block is processed if the file doesn't end with `---`
285
- if in_h1_block:
286
- process_current_block(current_block)
287
-
288
- # Join the final output list into a single string
289
- final_output = "\n".join(final_output)
290
-
291
54
  try:
292
- if updated:
293
- path, filename = os.path.split(input_file) # Get both parts
294
- new_filename = f"processed-{get_current_datetime_string()}-{filename}" # Create the new filename
295
-
296
- if output_folder:
297
- new_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH, output_folder, new_filename)
298
- else:
299
- new_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH, new_filename)
300
- os.makedirs(os.path.dirname(new_file_path), exist_ok=True)
301
-
302
- with open(new_file_path, 'w') as f2:
303
- f2.write(final_output)
304
- if not prov_found:
305
- f2.write(prov_output)
306
- click.echo(f"\n==> Output written to {new_file_path}")
307
- else:
308
- if directive != 'display':
309
- click.echo("\nNo updates detected. New File not created.")
310
- logger.error("===> Unknown Command? <===")
311
-
55
+ process_md_file(input_file, output_folder, directive, server, url, userid, user_pass)
56
+ logger.info(f"Called process_markdown_file with input file {input_file}")
312
57
  except PyegeriaException as e:
313
- print_basic_exception(e)
314
- except ValidationError as e:
315
- print_validation_error(e)
316
- except (Exception):
317
- console.print_exception(show_locals=True)
58
+ logger.error(f"Error processing markdown file {input_file}: {e}")
59
+ except Exception as e:
60
+ logger.error(f"Unexpected error processing markdown file {input_file}: {e}")
318
61
 
319
62
 
320
63
  # def main():
@@ -19,14 +19,11 @@ from rich.markdown import Markdown
19
19
  from rich.prompt import Prompt
20
20
  from rich.table import Table
21
21
  from rich.text import Text
22
- from rich_pixels import Pixels
22
+
23
23
 
24
24
  from pyegeria import (
25
25
  EgeriaTech,
26
- InvalidParameterException,
27
- PropertyServerException,
28
- UserNotAuthorizedException,
29
- print_exception_response,
26
+ PyegeriaAPIException, PyegeriaClientException, print_basic_exception, print_exception_table
30
27
  )
31
28
 
32
29
  disable_ssl_warnings = True
@@ -99,16 +96,17 @@ def display_glossaries(
99
96
  glossaries = m_client.find_glossaries(search_string)
100
97
  if type(glossaries) is list:
101
98
  sorted_glossary_list = sorted(
102
- glossaries, key=lambda k: k["glossaryProperties"]["displayName"]
99
+ glossaries, key=lambda k: k["properties"]["qualifiedName"]
103
100
  )
104
101
  for glossary in sorted_glossary_list:
105
- display_name = glossary["glossaryProperties"]["displayName"]
106
- qualified_name = glossary["glossaryProperties"]["qualifiedName"]
102
+
103
+ display_name = glossary["properties"].get("displayName","---")
104
+ qualified_name = glossary["properties"].get("qualifiedName","---")
107
105
  guid = glossary["elementHeader"]["guid"]
108
106
  q_name = Text(f"{qualified_name}\n&\n{guid}", justify="center")
109
- language = glossary["glossaryProperties"]["language"]
110
- description = glossary["glossaryProperties"]["description"]
111
- usage = glossary["glossaryProperties"]["usage"]
107
+ language = glossary["properties"].get("language","---")
108
+ description = glossary["properties"].get("description","---")
109
+ usage = glossary["properties"].get("usage","---")
112
110
  text = "http://100.83.199.62:8088/superset/dashboard/p/xOgE56dLNaY/"
113
111
 
114
112
  table.add_row(display_name, q_name, language, text)
@@ -118,10 +116,9 @@ def display_glossaries(
118
116
  force_terminal=not jupyter,
119
117
  )
120
118
  console.print(table)
121
- print("Visit my [link=https://www.willmcgugan.com]blog[/link]!")
122
119
 
123
- except (InvalidParameterException, PropertyServerException) as e:
124
- print_exception_response(e)
120
+ except (PyegeriaAPIException, PyegeriaClientException) as e:
121
+ print_basic_exception(e)
125
122
  finally:
126
123
  m_client.close_session()
127
124