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
@@ -1,864 +0,0 @@
1
- """
2
- SPDX-License-Identifier: Apache-2.0
3
- Copyright Contributors to the ODPi Egeria project.
4
-
5
- Asset Catalog View Service Methods - Search for assets, retrieve their properties, lineage and related glossary
6
- information.
7
-
8
- This file is in active development...
9
-
10
- """
11
-
12
- import asyncio
13
- import json
14
-
15
- from httpx import Response
16
- from pyegeria.utils import body_slimmer
17
- from pyegeria._client import Client
18
- from pyegeria import TEMPLATE_GUIDS, max_paging_size
19
- from pyegeria._exceptions import InvalidParameterException
20
- from pyegeria._globals import NO_ELEMENTS_FOUND, NO_ASSETS_FOUND
21
- from ._validators import validate_search_string
22
-
23
-
24
- class AssetCatalog(Client):
25
- """Set up and maintain automation services in Egeria.
26
-
27
- Attributes:
28
- view_server : str
29
- The name of the View Server to use.
30
- platform_url : str
31
- URL of the server platform to connect to
32
- user_id : str
33
- The identity of the user calling the method - this sets a default optionally used by the methods
34
- when the user doesn't pass the user_id on a method call.
35
- user_pwd: str
36
- The password associated with the user_id. Defaults to None
37
-
38
- """
39
-
40
- def __init__(
41
- self,
42
- view_server: str,
43
- platform_url: str,
44
- user_id: str,
45
- user_pwd: str = None,
46
- token: str = None,
47
- ):
48
- self.view_server = view_server
49
- self.platform_url = platform_url
50
- self.user_id = user_id
51
- self.user_pwd = user_pwd
52
- Client.__init__(self, view_server, platform_url, user_id, user_pwd, token=token)
53
-
54
- async def _async_create_element_from_template(self, body: dict) -> str:
55
- """Create a new metadata element from a template. Async version.
56
- Parameters
57
- ----------
58
- body : str
59
- The json body used to instantiate the template.
60
-
61
- Returns
62
- -------
63
- Response
64
- The guid of the resulting element
65
-
66
- Raises
67
- ------
68
- InvalidParameterException
69
- PropertyServerException
70
- UserNotAuthorizedException
71
-
72
- Notes
73
- -----
74
- See also: https://egeria-project.org/features/templated-cataloguing/overview/
75
- The full description of the body is shown below:
76
- {
77
- "typeName" : "",
78
- "initialStatus" : "",
79
- "initialClassifications" : "",
80
- "anchorGUID" : "",
81
- "isOwnAnchor" : "",
82
- "effectiveFrom" : "",
83
- "effectiveTo" : "",
84
- "templateGUID" : "",
85
- "templateProperties" : {},
86
- "placeholderPropertyValues" : {
87
- "placeholderPropertyName1" : "placeholderPropertyValue1",
88
- "placeholderPropertyName2" : "placeholderPropertyValue2"
89
- },
90
- "parentGUID" : "",
91
- "parentRelationshipTypeName" : "",
92
- "parentRelationshipProperties" : "",
93
- "parentAtEnd1" : "",
94
- "effectiveTime" : ""
95
- }
96
- """
97
-
98
- url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/automated-curation/catalog-templates/new-element"
99
- response = await self._async_make_request("POST", url, body)
100
- return response.json().get("guid", "GUID failed to be returned")
101
-
102
- def create_element_from_template(self, body: dict) -> str:
103
- """Create a new metadata element from a template. Async version.
104
- Parameters
105
- ----------
106
- body : str
107
- The json body used to instantiate the template.
108
- server : str, optional
109
- The name of the view server to use. If not provided, the default server name will be used.
110
-
111
- Returns
112
- -------
113
- Response
114
- The guid of the resulting element
115
-
116
- Raises
117
- ------
118
- InvalidParameterException
119
- PropertyServerException
120
- UserNotAuthorizedException
121
-
122
- Notes
123
- -----
124
- See also: https://egeria-project.org/features/templated-cataloguing/overview/
125
- The full description of the body is shown below:
126
- {
127
- "typeName" : "",
128
- "initialStatus" : "",
129
- "initialClassifications" : "",
130
- "anchorGUID" : "",
131
- "isOwnAnchor" : "",
132
- "effectiveFrom" : "",
133
- "effectiveTo" : "",
134
- "templateGUID" : "",
135
- "templateProperties" : {},
136
- "placeholderPropertyValues" : {
137
- "placeholderPropertyName1" : "placeholderPropertyValue1",
138
- "placeholderPropertyName2" : "placeholderPropertyValue2"
139
- },
140
- "parentGUID" : "",
141
- "parentRelationshipTypeName" : "",
142
- "parentRelationshipProperties" : "",
143
- "parentAtEnd1" : "",
144
- "effectiveTime" : ""
145
- }
146
- """
147
- loop = asyncio.get_event_loop()
148
- response = loop.run_until_complete(
149
- self._async_create_element_from_template(body)
150
- )
151
- return response
152
-
153
- async def _async_create_kafka_server_element_from_template(
154
- self, kafka_server: str, host_name: str, port: str
155
- ) -> str:
156
- """Create a Kafka server element from a template. Async version.
157
-
158
- Parameters
159
- ----------
160
- kafka_server : str
161
- The name of the Kafka server.
162
-
163
- host_name : str
164
- The host name of the Kafka server.
165
-
166
- port : str
167
- The port number of the Kafka server.
168
-
169
- Returns
170
- -------
171
- str
172
- The GUID of the Kafka server element.
173
- """
174
-
175
- body = {
176
- "templateGUID": TEMPLATE_GUIDS["Apache Kafka Server"],
177
- "isOwnAnchor": "true",
178
- "placeholderPropertyValues": {
179
- "serverName": kafka_server,
180
- "hostIdentifier": host_name,
181
- "portNumber": port,
182
- },
183
- }
184
- response = await self._async_create_element_from_template(body)
185
- return response
186
-
187
- def create_kafka_server_element_from_template(
188
- self, kafka_server: str, host_name: str, port: str
189
- ) -> str:
190
- """Create a Kafka server element from a template.
191
-
192
- Parameters
193
- ----------
194
- kafka_server : str
195
- The name of the Kafka server.
196
-
197
- host_name : str
198
- The host name of the Kafka server.
199
-
200
- port : str
201
- The port number of the Kafka server.
202
-
203
- Returns
204
- -------
205
- str
206
- The GUID of the Kafka server element.
207
- """
208
- loop = asyncio.get_event_loop()
209
- response = loop.run_until_complete(
210
- self._async_create_kafka_server_element_from_template(
211
- kafka_server, host_name, port
212
- )
213
- )
214
- return response
215
-
216
- async def _async_create_postgres_server_element_from_template(
217
- self,
218
- postgres_server: str,
219
- host_name: str,
220
- port: str,
221
- db_user: str,
222
- db_pwd: str,
223
- ) -> str:
224
- """Create a Postgres server element from a template. Async version.
225
-
226
- Parameters
227
- ----------
228
- postgres_server : str
229
- The name of the Postgres server.
230
-
231
- host_name : str
232
- The host name of the Postgres server.
233
-
234
- port : str
235
- The port number of the Postgres server.
236
-
237
- db_user: str
238
- User name to connect to the database
239
-
240
- db_pwd: str
241
- User password to connect to the database
242
-
243
- Returns
244
- -------
245
- str
246
- The GUID of the Kafka server element.
247
- """
248
- body = {
249
- "templateGUID": TEMPLATE_GUIDS["PostgreSQL Server"],
250
- "isOwnAnchor": "true",
251
- "placeholderPropertyValues": {
252
- "serverName": postgres_server,
253
- "hostIdentifier": host_name,
254
- "portNumber": port,
255
- "databaseUserId": db_user,
256
- "databasePassword": db_pwd,
257
- },
258
- }
259
- response = await self._async_create_element_from_template(body)
260
- return response
261
-
262
- def create_postgres_server_element_from_template(
263
- self,
264
- postgres_server: str,
265
- host_name: str,
266
- port: str,
267
- db_user: str,
268
- db_pwd: str,
269
- ) -> str:
270
- """Create a Postgres server element from a template.
271
-
272
- Parameters
273
- ----------
274
- postgres_server : str
275
- The name of the Postgres server.
276
-
277
- host_name : str
278
- The host name of the Postgres server.
279
-
280
- port : str
281
- The port number of the Postgres server.
282
-
283
- db_user: str
284
- User name to connect to the database
285
-
286
- db_pwd: str
287
- User password to connect to the database
288
-
289
- Returns
290
- -------
291
- str
292
- The GUID of the Postgres server element.
293
- """
294
- loop = asyncio.get_event_loop()
295
- response = loop.run_until_complete(
296
- self._async_create_postgres_server_element_from_template(
297
- postgres_server, host_name, port, db_user, db_pwd
298
- )
299
- )
300
- return response
301
-
302
- #
303
- # Engine Actions
304
- #
305
-
306
- async def _async_find_in_asset_domain(
307
- self,
308
- search_string: str,
309
- start_from: int = 0,
310
- page_size: int = max_paging_size,
311
- starts_with: bool = True,
312
- ends_with: bool = False,
313
- ignore_case: bool = True,
314
- time_out: int = 60,
315
- ) -> list | str:
316
- """Locate string value in elements that are anchored to assets. Async Version.
317
- Asset: https: // egeria - project.org / concepts / asset /
318
-
319
- Parameters
320
- ----------
321
- search_string : str
322
- The string used for searching engine actions by name.
323
-
324
- starts_with : bool, optional
325
- Whether to search engine actions that start with the given search string. Default is False.
326
-
327
- ends_with : bool, optional
328
- Whether to search engine actions that end with the given search string. Default is False.
329
-
330
- ignore_case : bool, optional
331
- Whether to ignore case while searching engine actions. Default is False.
332
-
333
- start_from : int, optional
334
- The index from which to start fetching the engine actions. Default is 0.
335
-
336
- page_size : int, optional
337
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
338
-
339
- Returns
340
- -------
341
- List[dict] or str
342
- A list of dictionaries representing the engine actions found based on the search query.
343
- If no actions are found, returns the string "no actions".
344
-
345
- Raises:
346
- ------
347
- InvalidParameterException
348
- PropertyServerException
349
- UserNotAuthorizedException
350
-
351
- Notes
352
- -----
353
- For more information see: https://egeria-project.org/concepts/engine-action
354
- """
355
-
356
- validate_search_string(search_string)
357
-
358
- starts_with_s = str(starts_with).lower()
359
- ends_with_s = str(ends_with).lower()
360
- ignore_case_s = str(ignore_case).lower()
361
-
362
- url = (
363
- f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/in-domain/"
364
- f"by-search-string?startFrom={start_from}&pageSize={page_size}&startsWith={starts_with_s}&"
365
- f"endWith={ends_with_s}&ignoreCase={ignore_case_s}"
366
- )
367
- body = {"filter": search_string}
368
- response = await self._async_make_request("POST", url, body, time_out=time_out)
369
- return response.json().get("searchMatches", "NO_ASSETS_FOUND")
370
-
371
- def find_in_asset_domain(
372
- self,
373
- search_string: str,
374
- start_from: int = 0,
375
- page_size: int = max_paging_size,
376
- starts_with: bool = True,
377
- ends_with: bool = False,
378
- ignore_case: bool = True,
379
- time_out: int = 60,
380
- ) -> list | str:
381
- """Retrieve the list of engine action metadata elements that contain the search string. Async Version.
382
- Parameters
383
- ----------
384
- search_string : str
385
- The string used for searching engine actions by name.
386
-
387
- starts_with : bool, optional
388
- Whether to search engine actions that start with the given search string. Default is False.
389
-
390
- ends_with : bool, optional
391
- Whether to search engine actions that end with the given search string. Default is False.
392
-
393
- ignore_case : bool, optional
394
- Whether to ignore case while searching engine actions. Default is False.
395
-
396
- start_from : int, optional
397
- The index from which to start fetching the engine actions. Default is 0.
398
-
399
- page_size : int, optional
400
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
401
-
402
- Returns
403
- -------
404
- List[dict] or str
405
- A list of dictionaries representing the engine actions found based on the search query.
406
- If no actions are found, returns the string "no actions".
407
-
408
- Raises:
409
- ------
410
- InvalidParameterException
411
- PropertyServerException
412
- UserNotAuthorizedException
413
-
414
- Notes
415
- -----
416
- For more information see: https://egeria-project.org/concepts/engine-action
417
- """
418
- loop = asyncio.get_event_loop()
419
- response = loop.run_until_complete(
420
- self._async_find_in_asset_domain(
421
- search_string,
422
- start_from,
423
- page_size,
424
- starts_with,
425
- ends_with,
426
- ignore_case,
427
- time_out,
428
- )
429
- )
430
- return response
431
-
432
- async def _async_get_asset_graph(
433
- self,
434
- asset_guid: str,
435
- start_from: int = 0,
436
- page_size: int = max_paging_size,
437
- ) -> str | dict:
438
- """Return all the elements that are anchored to an asset plus relationships between these elements and to
439
- other elements. Async Version.
440
- Parameters
441
- ----------
442
- asset_guid : str
443
- The unique identity of the asset to get the graph for.
444
-
445
- start_from : int, optional
446
- The index from which to start fetching the engine actions. Default is 0.
447
-
448
- page_size : int, optional
449
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
450
-
451
- Returns
452
- -------
453
- dict or str
454
- A dictionary of the asset graph.
455
-
456
- Raises:
457
- ------
458
- InvalidParameterException
459
- PropertyServerException
460
- UserNotAuthorizedException
461
-
462
- """
463
-
464
- url = (
465
- f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/{asset_guid}/"
466
- f"as-graph?startFrom={start_from}&pageSize={page_size}"
467
- )
468
-
469
- response = await self._async_make_request("GET", url)
470
- return response.json().get("assetGraph", NO_ASSETS_FOUND)
471
-
472
- def get_asset_graph(
473
- self,
474
- asset_guid: str,
475
- start_from: int = 0,
476
- page_size: int = max_paging_size,
477
- ) -> str | dict:
478
- """Return all the elements that are anchored to an asset plus relationships between these elements and to
479
- other elements.
480
- Parameters
481
- ----------
482
- asset_guid : str
483
- The unique identity of the asset to get the graph for.
484
-
485
- start_from : int, optional
486
- The index from which to start fetching the engine actions. Default is 0.
487
-
488
- page_size : int, optional
489
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
490
-
491
- Returns
492
- -------
493
- dict or str
494
- A dictionary of the asset graph.
495
-
496
- Raises:
497
- ------
498
- InvalidParameterException
499
- PropertyServerException
500
- UserNotAuthorizedException
501
-
502
- """
503
-
504
- loop = asyncio.get_event_loop()
505
- response = loop.run_until_complete(
506
- self._async_get_asset_graph(asset_guid, start_from, page_size)
507
- )
508
- return response
509
-
510
- def get_asset_mermaid_graph(
511
- self,
512
- asset_guid: str,
513
- start_from: int = 0,
514
- page_size: int = max_paging_size,
515
- ) -> str:
516
- """Return the asset graph as mermaid markdown string.
517
- Parameters
518
- ----------
519
- asset_guid : str
520
- The unique identity of the asset to get the graph for.
521
-
522
- start_from : int, optional
523
- The index from which to start fetching the engine actions. Default is 0.
524
-
525
- page_size : int, optional
526
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
527
-
528
- Returns
529
- -------
530
- str
531
- A mermaid string representing the asset graph.
532
-
533
- Raises:
534
- ------
535
- InvalidParameterException
536
- PropertyServerException
537
- UserNotAuthorizedException
538
-
539
- """
540
-
541
- asset_graph = self.get_asset_graph(asset_guid, start_from, page_size)
542
- return asset_graph.get("mermaidGraph")
543
-
544
- async def _async_get_asset_lineage_graph(
545
- self,
546
- asset_guid: str,
547
- effective_time: str = None,
548
- as_of_time: str = None,
549
- relationship_types: [str] = None,
550
- limit_to_isc_q_name: str = None,
551
- hilight_isc_q_name: str = None,
552
- start_from: int = 0,
553
- page_size: int = max_paging_size,
554
- ) -> str | dict:
555
- """Return the asset lineage including a mermaid markdown string. Async Version.
556
- Parameters
557
- ----------
558
- asset_guid : str
559
- The unique identity of the asset to get the graph for.
560
- effective_time: str, default is None
561
- Effective time to query on. If not specified, the current time is used.
562
- as_of_time: str = None
563
- as_of_time to query on. If not specified, the current time is used.
564
- relationship_types: [str], default is None,
565
- relationship types to include in the lineage graph. If not specified, all relationship types are included.
566
- limit_to_isc_q_name: str = None,
567
- if specified, filters results to only include information supply chains with the given name.
568
- hilight_isc_q_name: str = None,
569
- if specified, highlights the information supply chain with the given name.
570
-
571
- start_from : int, optional
572
- The index from which to start fetching the engine actions. Default is 0.
573
-
574
- page_size : int, optional
575
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
576
-
577
- Returns
578
- -------
579
- str | dict
580
- A dictionary of the asset graph that includes a mermaid markdown string.
581
-
582
- Raises:
583
- ------
584
- InvalidParameterException
585
- PropertyServerException
586
- UserNotAuthorizedException
587
-
588
- """
589
-
590
- url = (
591
- f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/{asset_guid}/"
592
- f"as-lineage-graph?startFrom={start_from}&pageSize={page_size}"
593
- )
594
- body = {
595
- "effectiveTime": effective_time,
596
- "asOfTime": as_of_time,
597
- "relationshipTypes": relationship_types,
598
- "limitToISCQualifiedName": limit_to_isc_q_name,
599
- "highlightISCQualifiedName": hilight_isc_q_name,
600
- }
601
- response = await self._async_make_request("POST", url, body_slimmer(body))
602
- return response.json().get("assetLineageGraph", NO_ASSETS_FOUND)
603
-
604
- def get_asset_lineage_graph(
605
- self,
606
- asset_guid: str,
607
- effective_time: str = None,
608
- as_of_time: str = None,
609
- relationship_types: [str] = None,
610
- limit_to_isc_q_name: str = None,
611
- hilight_isc_q_name: str = None,
612
- start_from: int = 0,
613
- page_size: int = max_paging_size,
614
- ) -> str | dict:
615
- """Return the asset lineage including a mermaid markdown string. Async Version.
616
- Parameters
617
- ----------
618
- asset_guid : str
619
- The unique identity of the asset to get the graph for.
620
- effective_time: str, default is None
621
- Effective time to query on. If not specified, the current time is used.
622
- as_of_time: str = None
623
- as_of_time to query on. If not specified, the current time is used.
624
- relationship_types: [str], default is None,
625
- relationship types to include in the lineage graph. If not specified, all relationship types are included.
626
- limit_to_isc_q_name: str = None,
627
- if specified, filters results to only include information supply chains with the given name.
628
- hilight_isc_q_name: str = None,
629
- if speficied, highlights the information supply chain with the given name.
630
-
631
- start_from : int, optional
632
- The index from which to start fetching the engine actions. Default is 0.
633
-
634
- page_size : int, optional
635
- The maximum number of elements to fetch in a single request. Default is `max_paging_size`.
636
-
637
- Returns
638
- -------
639
- dict or str
640
- A dictionary of the asset graph.
641
-
642
- Raises:
643
- ------
644
- InvalidParameterException
645
- PropertyServerException
646
- UserNotAuthorizedException
647
-
648
- """
649
-
650
- loop = asyncio.get_event_loop()
651
- response = loop.run_until_complete(
652
- self._async_get_asset_lineage_graph(asset_guid, effective_time, as_of_time, relationship_types,
653
- limit_to_isc_q_name, hilight_isc_q_name, start_from, page_size)
654
- )
655
- return response
656
-
657
- def get_asset_lineage_mermaid_graph(
658
- self,
659
- asset_guid: str,
660
- effective_time: str = None,
661
- as_of_time: str = None,
662
- relationship_types: [str] = None,
663
- limit_to_isc_q_name: str = None,
664
- hilight_isc_q_name: str = None,
665
- start_from: int = 0,
666
- page_size: int = max_paging_size,
667
- ) -> str:
668
- """Return the asset lineage including a mermaid markdown string. Async Version.
669
- Parameters
670
- ----------
671
- asset_guid : str
672
- The unique identity of the asset to get the graph for.
673
- effective_time: str, default is None
674
- Effective time to query on. If not specified, the current time is used.
675
- as_of_time: str = None
676
- as_of_time to query on. If not specified, the current time is used.
677
- relationship_types: [str], default is None,
678
- relationship types to include in the lineage graph. If not specified, all relationship types are included.
679
- limit_to_isc_q_name: str = None,
680
- if specified, filters results to only include information supply chains with the given name.
681
- hilight_isc_q_name: str = None,
682
- if specified, highlights the information supply chain with the given name.
683
-
684
- start_from : int, optional
685
- The index from which to start fetching the engine actions. Default is 0.
686
-
687
- page_size : int, optional
688
- The maximum number of elements to fetch in a single request.
689
- Default is `max_paging_size`.
690
-
691
- Returns
692
- -------
693
- str
694
- A mermaid string representing the lineage.
695
-
696
- Raises:
697
- ------
698
- InvalidParameterException
699
- PropertyServerException
700
- UserNotAuthorizedException
701
-
702
- """
703
-
704
- asset_graph = self.get_asset_lineage_graph(asset_guid, effective_time,
705
- as_of_time, relationship_types,
706
- limit_to_isc_q_name, hilight_isc_q_name,
707
- start_from, page_size)
708
- return asset_graph.get("mermaidGraph")
709
-
710
- async def _async_get_assets_by_metadata_collection_id(
711
- self,
712
- metadata_collection_id: str,
713
- type_name: str = None,
714
- effective_time: str = None,
715
- start_from: int = 0,
716
- page_size: int = max_paging_size,
717
- ) -> str | list:
718
- """Return a list of assets that come from the requested metadata collection. Can optionally
719
- specify an type name as a filter and an effective time. Async Version.
720
-
721
- Parameters
722
- ----------
723
- metadata_collection_id : str
724
- The unique identity of the metadata collection to return assets from.
725
-
726
- type_name: str, optional
727
- An asset type to optionally filter on. If not specified, all assets in the collection will be returned.
728
-
729
- effective_time: str, optional
730
- The effective time to filter on. If not specified, the current time is used.
731
-
732
- start_from : int, optional
733
- The index from which to start fetching the engine actions. Default is 0.
734
-
735
- page_size : int, optional
736
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
737
-
738
- Returns
739
- -------
740
- list or str
741
- A list of assets in a [dict].
742
-
743
- Raises:
744
- ------
745
- InvalidParameterException
746
- PropertyServerException
747
- UserNotAuthorizedException
748
-
749
- """
750
-
751
- url = (
752
- f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/by-metadata-collection-id/"
753
- f"{metadata_collection_id}?startFrom={start_from}&pageSize={page_size}"
754
- )
755
-
756
- body = {"filter": type_name, "effectiveTime": effective_time}
757
- body_s = body_slimmer(body)
758
- response = await self._async_make_request("POST", url, body_s)
759
- return response.json().get("assets", "NO_ASSETS_FOUND")
760
-
761
- def get_assets_by_metadata_collection_id(
762
- self,
763
- metadata_collection_id: str,
764
- type_name: str = None,
765
- effective_time: str = None,
766
- start_from: int = 0,
767
- page_size: int = max_paging_size,
768
- ) -> str | list:
769
- """Return a list of assets that come from the requested metadata collection. Can optionally
770
- specify an type name as a filter and an effective time. Async Version.
771
-
772
- Parameters
773
- ----------
774
- metadata_collection_id : str
775
- The unique identity of the metadata collection to return assets from.
776
-
777
- type_name: str, optional
778
- An asset type to optionally filter on. If not specified, all assets in the collection will be returned.
779
-
780
- effective_time: str, optional
781
- The effective time to filter on. If not specified, the current time is used.
782
-
783
- start_from : int, optional
784
- The index from which to start fetching the engine actions. Default is 0.
785
-
786
- page_size : int, optional
787
- The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
788
-
789
- Returns
790
- -------
791
- list or str
792
- A list of assets in a [dict].
793
-
794
- Raises:
795
- ------
796
- InvalidParameterException
797
- PropertyServerException
798
- UserNotAuthorizedException
799
-
800
- """
801
-
802
- loop = asyncio.get_event_loop()
803
- response = loop.run_until_complete(
804
- self._async_get_assets_by_metadata_collection_id(
805
- metadata_collection_id,
806
- type_name,
807
- effective_time,
808
- start_from,
809
- page_size,
810
- )
811
- )
812
- return response
813
-
814
- async def _async_get_asset_types(self) -> str | dict:
815
- """Return all the elements that are anchored to an asset plus relationships between these elements and to
816
- other elements. Async Version.
817
- Parameters
818
- ----------
819
-
820
- Returns
821
- -------
822
- dict or str
823
- A dictionary of the asset graph.
824
-
825
- Raises:
826
- ------
827
- InvalidParameterException
828
- PropertyServerException
829
- UserNotAuthorizedException
830
-
831
- """
832
-
833
- url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/types"
834
-
835
- response = await self._async_make_request("GET", url)
836
-
837
- return response.json().get("types", "NO_ASSETS_FOUND")
838
-
839
- def get_asset_catalog_types(self) -> str | dict:
840
- """Return all the elements that are anchored to an asset plus relationships between these elements and to
841
- other elements.
842
- Parameters
843
- ----------
844
-
845
- Returns
846
- -------
847
- dict or str
848
- A dictionary of the asset graph.
849
-
850
- Raises:
851
- ------
852
- InvalidParameterException
853
- PropertyServerException
854
- UserNotAuthorizedException
855
-
856
- """
857
-
858
- loop = asyncio.get_event_loop()
859
- response = loop.run_until_complete(self._async_get_asset_types())
860
- return response
861
-
862
-
863
- if __name__ == "__main__":
864
- print("Main-asset-catalog")