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
@@ -0,0 +1,446 @@
1
+ """
2
+ PDX-License-Identifier: Apache-2.0
3
+ Copyright Contributors to the ODPi Egeria project.
4
+
5
+ This module contains the Schema Maker View Service client.
6
+ """
7
+
8
+ import asyncio
9
+ from typing import Annotated, Literal, Optional
10
+
11
+ from pydantic import Field
12
+
13
+ from pyegeria.core._server_client import ServerClient
14
+ from pyegeria.models import (
15
+ NewElementRequestBody,
16
+ DeleteElementRequestBody,
17
+ UpdateElementRequestBody,
18
+ SearchStringRequestBody,
19
+ GetRequestBody,
20
+ ReferenceableProperties,
21
+ )
22
+ from pyegeria.view.output_formatter import (
23
+ generate_output,
24
+ populate_common_columns,
25
+ overlay_additional_values,
26
+ )
27
+ from pyegeria.core.utils import dynamic_catch
28
+
29
+
30
+ class SchemaTypeProperties(ReferenceableProperties):
31
+ class_: Annotated[Literal["SchemaTypeProperties"], Field(alias="class")]
32
+ is_deprecated: Optional[bool] = None
33
+ author: Optional[str] = None
34
+ usage: Optional[str] = None
35
+ encoding_standard: Optional[str] = None
36
+ namespace: Optional[str] = None
37
+
38
+
39
+ class SchemaAttributeProperties(ReferenceableProperties):
40
+ class_: Annotated[Literal["SchemaAttributeProperties"], Field(alias="class")]
41
+ element_position: Optional[int] = None
42
+ min_cardinality: Optional[int] = None
43
+ max_cardinality: Optional[int] = None
44
+ allows_duplicate_values: Optional[bool] = None
45
+ is_ordered_values: Optional[bool] = None
46
+ default_value_override: Optional[str] = None
47
+ anchor_guid: Optional[str] = None
48
+
49
+
50
+ class SchemaMaker(ServerClient):
51
+ """
52
+ Client for the Schema Maker View Service.
53
+
54
+ The Schema Maker View Service provides methods to manage schema types and schema attributes.
55
+
56
+ Attributes
57
+ ----------
58
+ view_server : str
59
+ The name of the View Server to use.
60
+ platform_url : str
61
+ URL of the server platform to connect to.
62
+ user_id : str
63
+ The identity of the user calling the method.
64
+ user_pwd : str
65
+ The password associated with the user_id. Defaults to None.
66
+ """
67
+
68
+ def __init__(
69
+ self,
70
+ view_server: str,
71
+ platform_url: str,
72
+ user_id: str,
73
+ user_pwd: Optional[str] = None,
74
+ token: Optional[str] = None,
75
+ ):
76
+ super().__init__(view_server, platform_url, user_id, user_pwd, token)
77
+ self.view_server = view_server
78
+ self.platform_url = platform_url
79
+ self.user_id = user_id
80
+ self.user_pwd = user_pwd
81
+ self.url_marker = "schema-maker"
82
+
83
+ def _extract_schema_properties(self, element: dict, columns_struct: dict) -> dict:
84
+ col_data = populate_common_columns(element, columns_struct)
85
+ props = element.get("properties", {})
86
+ overlay_additional_values(col_data, props)
87
+ return col_data
88
+
89
+ def _generate_schema_output(
90
+ self,
91
+ elements: dict | list[dict],
92
+ filter: Optional[str],
93
+ element_type_name: Optional[str],
94
+ output_format: str = "DICT",
95
+ report_spec: dict | str = None,
96
+ ) -> str | list[dict]:
97
+ return generate_output(
98
+ elements,
99
+ filter,
100
+ element_type_name,
101
+ output_format,
102
+ self._extract_schema_properties,
103
+ None,
104
+ report_spec,
105
+ )
106
+
107
+ # Schema Types
108
+
109
+ @dynamic_catch
110
+ async def _async_create_schema_type(self, body: dict | NewElementRequestBody) -> str:
111
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-types"
112
+ return await self._async_create_element_body_request(url, "SchemaTypeProperties", body)
113
+
114
+ def create_schema_type(self, body: dict | NewElementRequestBody) -> str:
115
+ loop = asyncio.get_event_loop()
116
+ return loop.run_until_complete(self._async_create_schema_type(body))
117
+
118
+ @dynamic_catch
119
+ async def _async_update_schema_type(
120
+ self, schema_type_guid: str, body: dict | UpdateElementRequestBody
121
+ ) -> None:
122
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-types/{schema_type_guid}/update"
123
+ await self._async_update_element_body_request(url, body)
124
+
125
+ def update_schema_type(self, schema_type_guid: str, body: dict | UpdateElementRequestBody) -> None:
126
+ loop = asyncio.get_event_loop()
127
+ loop.run_until_complete(self._async_update_schema_type(schema_type_guid, body))
128
+
129
+ @dynamic_catch
130
+ async def _async_delete_schema_type(
131
+ self, schema_type_guid: str, body: dict | DeleteElementRequestBody
132
+ ) -> None:
133
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-types/{schema_type_guid}/delete"
134
+ await self._async_delete_element_body_request(url, body)
135
+
136
+ def delete_schema_type(self, schema_type_guid: str, body: dict | DeleteElementRequestBody) -> None:
137
+ loop = asyncio.get_event_loop()
138
+ loop.run_until_complete(self._async_delete_schema_type(schema_type_guid, body))
139
+
140
+ # Schema Attributes
141
+
142
+ @dynamic_catch
143
+ async def _async_create_schema_attribute(self, body: dict | NewElementRequestBody) -> str:
144
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-attributes"
145
+ return await self._async_create_element_body_request(url, "SchemaAttributeProperties", body)
146
+
147
+ def create_schema_attribute(self, body: dict | NewElementRequestBody) -> str:
148
+ loop = asyncio.get_event_loop()
149
+ return loop.run_until_complete(self._async_create_schema_attribute(body))
150
+
151
+ @dynamic_catch
152
+ async def _async_update_schema_attribute(
153
+ self, schema_attribute_guid: str, body: dict | UpdateElementRequestBody
154
+ ) -> None:
155
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-attributes/{schema_attribute_guid}/update"
156
+ await self._async_update_element_body_request(url, body)
157
+
158
+ def update_schema_attribute(
159
+ self, schema_attribute_guid: str, body: dict | UpdateElementRequestBody
160
+ ) -> None:
161
+ loop = asyncio.get_event_loop()
162
+ loop.run_until_complete(self._async_update_schema_attribute(schema_attribute_guid, body))
163
+
164
+ @dynamic_catch
165
+ async def _async_delete_schema_attribute(
166
+ self, schema_attribute_guid: str, body: dict | DeleteElementRequestBody
167
+ ) -> None:
168
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-attributes/{schema_attribute_guid}/delete"
169
+ await self._async_delete_element_body_request(url, body)
170
+
171
+ def delete_schema_attribute(
172
+ self, schema_attribute_guid: str, body: dict | DeleteElementRequestBody
173
+ ) -> None:
174
+ loop = asyncio.get_event_loop()
175
+ loop.run_until_complete(self._async_delete_schema_attribute(schema_attribute_guid, body))
176
+
177
+ @dynamic_catch
178
+ async def _async_find_schema_types(self, search_string: str = "*",
179
+ starts_with: bool = True, ends_with: bool = False,
180
+ ignore_case: bool = False,
181
+ anchor_domain: Optional[str] = None,
182
+ metadata_element_type: Optional[str] = None,
183
+ metadata_element_subtypes: Optional[list[str]] = None,
184
+ skip_relationships: Optional[list[str]] = None,
185
+ include_only_relationships: Optional[list[str]] = None,
186
+ skip_classified_elements: Optional[list[str]] = None,
187
+ include_only_classified_elements: Optional[list[str]] = None,
188
+ graph_query_depth: int = 3,
189
+ governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
190
+ effective_time: Optional[str] = None, relationship_page_size: int = 0,
191
+ limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
192
+ sequencing_property: Optional[str] = None,
193
+ output_format: str = "JSON",
194
+ report_spec: str | dict = "Referenceable",
195
+ start_from: int = 0, page_size: int = 100,
196
+ property_names: Optional[list[str]] = None,
197
+ body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
198
+ """ Retrieve the list of schema type metadata elements that contain the search string. Async Version.
199
+
200
+ Parameters
201
+ ----------
202
+ search_string: str
203
+ Search string to match against - None or '*' indicate match against all schema types.
204
+ starts_with : bool, [default=True], optional
205
+ Starts with the supplied string.
206
+ ends_with : bool, [default=False], optional
207
+ Ends with the supplied string
208
+ ignore_case : bool, [default=False], optional
209
+ Ignore case when searching
210
+ anchor_domain: str, optional
211
+ The anchor domain to search in.
212
+ metadata_element_type: str, optional
213
+ The type of metadata element to search for.
214
+ metadata_element_subtypes: list[str], optional
215
+ The subtypes of metadata element to search for.
216
+ skip_relationships: list[str], optional
217
+ The types of relationships to skip.
218
+ include_only_relationships: list[str], optional
219
+ The types of relationships to include.
220
+ skip_classified_elements: list[str], optional
221
+ The types of classified elements to skip.
222
+ include_only_classified_elements: list[str], optional
223
+ The types of classified elements to include.
224
+ graph_query_depth: int, [default=3], optional
225
+ The depth of the graph query.
226
+ governance_zone_filter: list[str], optional
227
+ The governance zones to search in.
228
+ as_of_time: str, optional
229
+ The time to search as of.
230
+ effective_time: str, optional
231
+ The effective time to search at.
232
+ relationship_page_size: int, [default=0], optional
233
+ The page size for relationships.
234
+ limit_results_by_status: list[str], optional
235
+ The statuses to limit results by.
236
+ sequencing_order: str, optional
237
+ The order to sequence results by.
238
+ sequencing_property: str, optional
239
+ The property to sequence results by.
240
+ output_format: str, default = "JSON"
241
+ - one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
242
+ report_spec: str | dict , optional, default = "Referenceable"
243
+ - The desired output columns/fields to include.
244
+ start_from: int, [default=0], optional
245
+ When multiple pages of results are available, the page number to start from.
246
+ page_size: int, [default=100]
247
+ The number of items to return in a single page.
248
+ property_names: list[str], optional
249
+ The names of properties to search for.
250
+ body: dict | SearchStringRequestBody, optional, default = None
251
+ - if provided, the search parameters in the body will supercede other attributes, such as "search_string"
252
+
253
+ Returns
254
+ -------
255
+ List | str
256
+
257
+ Output depends on the output format specified.
258
+
259
+ Raises
260
+ -------
261
+
262
+ ValidationError
263
+ If the client passes incorrect parameters on the request that don't conform to the data model.
264
+ PyegeriaException
265
+ Issues raised in communicating or server side processing.
266
+ NotAuthorizedException
267
+ The principle specified by the user_id does not have authorization for the requested action
268
+
269
+ """
270
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-types/by-search-string"
271
+ response = await self._async_find_request(url, _type="SchemaType", _gen_output=self._generate_schema_output,
272
+ search_string=search_string, starts_with=starts_with,
273
+ ends_with=ends_with, ignore_case=ignore_case,
274
+ anchor_domain=anchor_domain,
275
+ metadata_element_type=metadata_element_type,
276
+ metadata_element_subtypes=metadata_element_subtypes,
277
+ skip_relationships=skip_relationships,
278
+ include_only_relationships=include_only_relationships,
279
+ skip_classified_elements=skip_classified_elements,
280
+ include_only_classified_elements=include_only_classified_elements,
281
+ graph_query_depth=graph_query_depth,
282
+ governance_zone_filter=governance_zone_filter,
283
+ as_of_time=as_of_time, effective_time=effective_time,
284
+ relationship_page_size=relationship_page_size,
285
+ limit_results_by_status=limit_results_by_status,
286
+ sequencing_order=sequencing_order,
287
+ sequencing_property=sequencing_property,
288
+ output_format=output_format, report_spec=report_spec,
289
+ start_from=start_from, page_size=page_size,
290
+ property_names=property_names, body=body)
291
+
292
+ return response
293
+
294
+ @dynamic_catch
295
+ def find_schema_types(self, search_string: str = "*",
296
+ starts_with: bool = True, ends_with: bool = False,
297
+ ignore_case: bool = False,
298
+ anchor_domain: Optional[str] = None,
299
+ metadata_element_type: Optional[str] = None,
300
+ metadata_element_subtypes: Optional[list[str]] = None,
301
+ skip_relationships: Optional[list[str]] = None,
302
+ include_only_relationships: Optional[list[str]] = None,
303
+ skip_classified_elements: Optional[list[str]] = None,
304
+ include_only_classified_elements: Optional[list[str]] = None,
305
+ graph_query_depth: int = 3,
306
+ governance_zone_filter: Optional[list[str]] = None, as_of_time: Optional[str] = None,
307
+ effective_time: Optional[str] = None, relationship_page_size: int = 0,
308
+ limit_results_by_status: Optional[list[str]] = None, sequencing_order: Optional[str] = None,
309
+ sequencing_property: Optional[str] = None,
310
+ output_format: str = "JSON",
311
+ report_spec: str | dict = "Referenceable",
312
+ start_from: int = 0, page_size: int = 100,
313
+ property_names: Optional[list[str]] = None,
314
+ body: Optional[dict | SearchStringRequestBody] = None) -> list | str:
315
+ """ Retrieve the list of schema type metadata elements that contain the search string.
316
+
317
+ Parameters
318
+ ----------
319
+ search_string: str
320
+ Search string to match against - None or '*' indicate match against all schema types.
321
+ starts_with : bool, [default=True], optional
322
+ Starts with the supplied string.
323
+ ends_with : bool, [default=False], optional
324
+ Ends with the supplied string
325
+ ignore_case : bool, [default=False], optional
326
+ Ignore case when searching
327
+ anchor_domain: str, optional
328
+ The anchor domain to search in.
329
+ metadata_element_type: str, optional
330
+ The type of metadata element to search for.
331
+ metadata_element_subtypes: list[str], optional
332
+ The subtypes of metadata element to search for.
333
+ skip_relationships: list[str], optional
334
+ The types of relationships to skip.
335
+ include_only_relationships: list[str], optional
336
+ The types of relationships to include.
337
+ skip_classified_elements: list[str], optional
338
+ The types of classified elements to skip.
339
+ include_only_classified_elements: list[str], optional
340
+ The types of classified elements to include.
341
+ graph_query_depth: int, [default=3], optional
342
+ The depth of the graph query.
343
+ governance_zone_filter: list[str], optional
344
+ The governance zones to search in.
345
+ as_of_time: str, optional
346
+ The time to search as of.
347
+ effective_time: str, optional
348
+ The effective time to search at.
349
+ relationship_page_size: int, [default=0], optional
350
+ The page size for relationships.
351
+ limit_results_by_status: list[str], optional
352
+ The statuses to limit results by.
353
+ sequencing_order: str, optional
354
+ The order to sequence results by.
355
+ sequencing_property: str, optional
356
+ The property to sequence results by.
357
+ output_format: str, default = "JSON"
358
+ - one of "MD", "LIST", "FORM", "REPORT", "DICT", "MERMAID" or "JSON"
359
+ report_spec: str | dict , optional, default = "Referenceable"
360
+ - The desired output columns/fields to include.
361
+ start_from: int, [default=0], optional
362
+ When multiple pages of results are available, the page number to start from.
363
+ page_size: int, [default=100]
364
+ The number of items to return in a single page.
365
+ property_names: list[str], optional
366
+ The names of properties to search for.
367
+ body: dict | SearchStringRequestBody, optional, default = None
368
+ - if provided, the search parameters in the body will supercede other attributes, such as "search_string"
369
+
370
+ Returns
371
+ -------
372
+ List | str
373
+
374
+ Output depends on the output format specified.
375
+
376
+ Raises
377
+ -------
378
+
379
+ ValidationError
380
+ If the client passes incorrect parameters on the request that don't conform to the data model.
381
+ PyegeriaException
382
+ Issues raised in communicating or server side processing.
383
+ NotAuthorizedException
384
+ The principle specified by the user_id does not have authorization for the requested action
385
+
386
+ """
387
+ loop = asyncio.get_event_loop()
388
+ return loop.run_until_complete(self._async_find_schema_types(search_string=search_string,
389
+ starts_with=starts_with,
390
+ ends_with=ends_with,
391
+ ignore_case=ignore_case,
392
+ anchor_domain=anchor_domain,
393
+ metadata_element_type=metadata_element_type,
394
+ metadata_element_subtypes=metadata_element_subtypes,
395
+ skip_relationships=skip_relationships,
396
+ include_only_relationships=include_only_relationships,
397
+ skip_classified_elements=skip_classified_elements,
398
+ include_only_classified_elements=include_only_classified_elements,
399
+ graph_query_depth=graph_query_depth,
400
+ governance_zone_filter=governance_zone_filter,
401
+ as_of_time=as_of_time,
402
+ effective_time=effective_time,
403
+ relationship_page_size=relationship_page_size,
404
+ limit_results_by_status=limit_results_by_status,
405
+ sequencing_order=sequencing_order,
406
+ sequencing_property=sequencing_property,
407
+ output_format=output_format,
408
+ report_spec=report_spec,
409
+ start_from=start_from,
410
+ page_size=page_size,
411
+ property_names=property_names,
412
+ body=body))
413
+
414
+ @dynamic_catch
415
+ async def _async_get_schema_type_by_guid(
416
+ self,
417
+ schema_type_guid: str,
418
+ element_type: str = "SchemaType",
419
+ body: Optional[dict | GetRequestBody] = None,
420
+ output_format: str = "JSON",
421
+ report_spec: str | dict = "SchemaTypes",
422
+ ) -> dict | str:
423
+ url = f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/schema-maker/schema-types/{schema_type_guid}/retrieve"
424
+ return await self._async_get_guid_request(
425
+ url,
426
+ _type=element_type,
427
+ _gen_output=self._generate_schema_output,
428
+ output_format=output_format,
429
+ report_spec=report_spec,
430
+ body=body,
431
+ )
432
+
433
+ def get_schema_type_by_guid(
434
+ self,
435
+ schema_type_guid: str,
436
+ element_type: str = "SchemaType",
437
+ body: Optional[dict | GetRequestBody] = None,
438
+ output_format: str = "JSON",
439
+ report_spec: str | dict = "SchemaTypes",
440
+ ) -> dict | str:
441
+ loop = asyncio.get_event_loop()
442
+ return loop.run_until_complete(
443
+ self._async_get_schema_type_by_guid(
444
+ schema_type_guid, element_type, body, output_format, report_spec
445
+ )
446
+ )
@@ -9,26 +9,25 @@ Copyright Contributors to the ODPi Egeria project.
9
9
  import asyncio
10
10
 
11
11
  from requests import Response
12
+ from typing import Any, Optional
13
+ from pyegeria.omvs.platform_services import Platform
14
+ from pyegeria.core._validators import validate_name
12
15
 
13
- from pyegeria.platform_services import Platform
14
- from pyegeria._validators import validate_name
15
- from pyegeria._globals import NO_ELEMENTS_FOUND
16
16
 
17
17
  class ServerOps(Platform):
18
18
  """
19
19
  Client to issue operations on a running OMAG server.
20
20
 
21
- Attributes:
22
- server_name: str
23
- Name of the server to use.
24
- platform_url : str
25
- URL of the server platform to connect to
26
- user_id : str
27
- The identity of the user calling the method - this sets a default optionally used by the methods
28
- when the user doesn't pass the user_id on a method call.
29
- user_pwd: str
30
- The password associated with the user_id. Defaults to None
31
-
21
+ Attributes
22
+ ----------
23
+ server_name : str
24
+ Name of the server to use.
25
+ platform_url : str
26
+ URL of the server platform to connect to.
27
+ user_id : str
28
+ The identity of the user calling the method.
29
+ user_pwd : str
30
+ The password associated with the user_id. Defaults to None.
32
31
  """
33
32
 
34
33
  def __init__(
@@ -36,11 +35,13 @@ class ServerOps(Platform):
36
35
  server_name: str,
37
36
  platform_url: str,
38
37
  user_id: str,
39
- user_pwd: str = None,
38
+ user_pwd: Optional[str] = None,
39
+ token: Optional[str] = None,
40
40
  ):
41
- Platform.__init__(self, server_name, platform_url, user_id, user_pwd)
41
+ Platform.__init__(self, server_name, platform_url, user_id, user_pwd, token=token)
42
42
  self.ops_command_root = (
43
- f"{self.platform_url}/open-metadata/server-operations/users/{user_id}"
43
+ # f"{self.platform_url}/open-metadata/server-operations/users/{user_id}"
44
+ f"{self.platform_url}/open-metadata/server-operations/"
44
45
  )
45
46
 
46
47
  async def _async_get_active_configuration(self, server: str = None) -> dict | str:
@@ -89,7 +90,7 @@ class ServerOps(Platform):
89
90
  # Archive Files
90
91
  #
91
92
  async def _async_add_archive_file(
92
- self, archive_file: str, server: str = None, timeout: int = 60
93
+ self, archive_file: str, server: Optional[str] = None, timeout: int = 60
93
94
  ) -> None:
94
95
  """
95
96
  Load the server with the contents of the indicated archive file.
@@ -115,10 +116,10 @@ class ServerOps(Platform):
115
116
  + "/instance/open-metadata-archives/file"
116
117
  )
117
118
 
118
- await self._async_make_request("POST-DATA", url, archive_file, time_out=timeout)
119
+ await self._async_make_request("POST-DATA", url, archive_file, time_out=timeout)
119
120
 
120
121
  def add_archive_file(
121
- self, archive_file: str, server: str = None, timeout: int = 30
122
+ self, archive_file: str, server: Optional[str] = None, timeout: int = 30
122
123
  ) -> None:
123
124
  """
124
125
  Load the server with the contents of the indicated archive file.
@@ -211,9 +212,9 @@ class ServerOps(Platform):
211
212
 
212
213
  Raises
213
214
  ------
214
- InvalidParameterException
215
+ PyegeriaInvalidParameterException
215
216
  If the client passes incorrect parameters on the request - such as bad URLs or invalid values
216
- PropertyServerException
217
+ PyegeriaAPIException
217
218
  Raised by the server when an issue arises in processing a valid request
218
219
  NotAuthorizedException
219
220
  The principle specified by the user_id does not have authorization for the requested action
@@ -241,9 +242,9 @@ class ServerOps(Platform):
241
242
 
242
243
  Raises
243
244
  ------
244
- InvalidParameterException
245
+ PyegeriaInvalidParameterException
245
246
  If the client passes incorrect parameters on the request - such as bad URLs or invalid values
246
- PropertyServerException
247
+ PyegeriaAPIException
247
248
  Raised by the server when an issue arises in processing a valid request
248
249
  NotAuthorizedException
249
250
  The principle specified by the user_id does not have authorization for the requested action
@@ -429,7 +430,7 @@ class ServerOps(Platform):
429
430
  return response
430
431
 
431
432
  async def _async_refresh_integration_connectors(
432
- self, connector_name: str = "all", server: str = None, time_out: int = 60
433
+ self, connector_name: str = "all", server: Optional[str] = None, time_out: int = 60
433
434
  ) -> None:
434
435
  """Issue a refresh request to all connectors running in the integration daemon, or a specific connector
435
436
  if one is specified - async version"""
@@ -451,7 +452,7 @@ class ServerOps(Platform):
451
452
  return
452
453
 
453
454
  def refresh_integration_connectors(
454
- self, connector_name: str, server: str = None, time_out: int = 60
455
+ self, connector_name: str, server: Optional[str] = None, time_out: int = 60
455
456
  ) -> None:
456
457
  """Restart the integration Connector specified by connector_name"""
457
458
  loop = asyncio.get_event_loop()