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,834 @@
1
+ """PDX-License-Identifier: Apache-2.0
2
+ Copyright Contributors to the ODPi Egeria project.
3
+
4
+ This module contains an initial version of the feedback_manager_omvs
5
+ module.
6
+
7
+ """
8
+
9
+ import asyncio
10
+ import json
11
+ import time
12
+ from typing import Any, Optional
13
+
14
+ # import json
15
+ from pyegeria.core._server_client import ServerClient, max_paging_size
16
+
17
+
18
+ def jprint(info, comment=None):
19
+ if comment:
20
+ print(comment)
21
+ print(json.dumps(info, indent=2))
22
+
23
+
24
+ def query_seperator(current_string):
25
+ if current_string == "":
26
+ return "?"
27
+ else:
28
+ return "&"
29
+
30
+
31
+ "params are in the form of [(paramName, value), (param2Name, value)] if the value is not None, it will be added to the query string"
32
+
33
+
34
+ def query_string(params):
35
+ result = ""
36
+ for i in range(len(params)):
37
+ if params[i][1] is not None:
38
+ result = f"{result}{query_seperator(result)}{params[i][0]}={params[i][1]}"
39
+ return result
40
+
41
+
42
+ def base_path(fm_client, view_server: str):
43
+ return f"{fm_client.platform_url}/servers/{view_server}/api/open-metadata/feedback-manager"
44
+
45
+
46
+ def extract_relationships_plus(element):
47
+ type_name = element["relatedElement"]["type"]["typeName"]
48
+ guid = element["relationshipHeader"]["guid"]
49
+ properties = element["relationshipProperties"]["propertiesAsStrings"]
50
+ name = element["relatedElement"]["uniqueName"]
51
+ return {"name": name, "typeName": type_name, "guid": guid, "properties": properties}
52
+
53
+
54
+ def extract_related_elements_list(element_list):
55
+ return [extract_relationships_plus(element) for element in element_list]
56
+
57
+
58
+ def related_elements_response(response: dict, detailed_response: bool):
59
+ if detailed_response:
60
+ return response
61
+ elif not "elementList" in response:
62
+ return response
63
+ else:
64
+ return extract_related_elements_list(response["elementList"])
65
+
66
+
67
+ def element_properties_plus(element):
68
+ props_plus = element["properties"]
69
+ props_plus.update({"guid": element["elementHeader"]["guid"]})
70
+ props_plus.update({"versions": element["elementHeader"]["versions"]})
71
+ return props_plus
72
+
73
+
74
+ def element_property_plus_list(element_list):
75
+ return [element_properties_plus(element) for element in element_list]
76
+
77
+
78
+ def element_response(response: dict, element_type: str, detailed_response: bool):
79
+ if detailed_response:
80
+ return response
81
+ elif not element_type in response:
82
+ return response
83
+ else:
84
+ return element_properties_plus(response[element_type])
85
+
86
+
87
+ def elements_response(response: dict, element_type: str, detailed_response: bool):
88
+ # print(response)
89
+ if detailed_response:
90
+ return response
91
+ elif not element_type in response:
92
+ return response
93
+ else:
94
+ return element_property_plus_list(response[element_type])
95
+
96
+
97
+
98
+
99
+ class FeedbackManager(ServerClient):
100
+ """FeedbackManager is a class that extends the Client class. It
101
+ provides methods to CRUD tags, comments and likes for managed
102
+ elements.
103
+
104
+ Attributes:
105
+
106
+ view_server: str
107
+ The name of the View Server to connect to.
108
+ platform_url : str
109
+ URL of the server platform to connect to
110
+ user_id : str
111
+ The identity of the user calling the method - this sets a
112
+ default optionally used by the methods when the user
113
+ doesn't pass the user_id on a method call.
114
+ user_pwd: str
115
+ The password associated with the user_id. Defaults to None
116
+
117
+ token: str, optional
118
+ bearer token
119
+
120
+ """
121
+
122
+ def __init__(
123
+ self,
124
+ view_server: str,
125
+ platform_url: str,
126
+ user_id: str,
127
+ user_pwd: Optional[str] = None,
128
+ token: Optional[str] = None,
129
+ ):
130
+ self.admin_command_root: str = f"{platform_url}/servers/{view_server}api/open-metadata/feedback-manager/"
131
+ self.view_server = view_server
132
+ self.platform_url = platform_url
133
+ self.user_id = user_id
134
+ self.user_pwd = user_pwd
135
+
136
+ ServerClient.__init__(
137
+ self,
138
+ view_server,
139
+ platform_url,
140
+ user_id,
141
+ user_pwd,
142
+ token=token,
143
+ )
144
+
145
+ def make_feedback_qn(self, feedback_type, src_guid) -> str:
146
+ timestamp = int(time.time())
147
+ return f"{feedback_type}::{src_guid}::{self.user_id}::{timestamp}"
148
+
149
+
150
+
151
+ #
152
+ ## add_comment_to_element implementation
153
+ #
154
+
155
+
156
+
157
+
158
+
159
+ async def _async_add_like_to_element(
160
+ self,
161
+ element_guid: str,
162
+ is_public: bool = True,
163
+ body: dict = {},
164
+ view_service_url_marker: Optional[str] = None,
165
+ access_service_url_marker: Optional[str] = None,
166
+ ) -> dict | str:
167
+ """
168
+ Creates a "like" object and attaches it to an element.
169
+
170
+ Parameters
171
+ ----------
172
+
173
+ element_guid
174
+ - String - unique id for the element.
175
+ is_public
176
+ - is this visible to other people
177
+ view_service_url_marker
178
+ - optional view service URL marker (overrides access_service_url_marker)
179
+ access_service_url_marker
180
+ - optional access service URL marker used to identify which back end service to call
181
+ body
182
+ - optional effective time
183
+
184
+ Returns
185
+ -------
186
+ Void
187
+
188
+ Raises
189
+ ------
190
+ PyegeriaInvalidParameterException
191
+ one of the parameters is null or invalid or
192
+ PyegeriaAPIException
193
+ There is a problem adding the element properties to the metadata repository or
194
+ PyegeriaUnauthorizedException
195
+ the requesting user is not authorized to issue this request.
196
+ """
197
+
198
+ possible_query_params = query_string(
199
+ [
200
+ ("isPublic", is_public),
201
+ ("viewServiceUrlMarker", view_service_url_marker),
202
+ ("accessServiceUrlMarker", access_service_url_marker),
203
+ ]
204
+ )
205
+
206
+ url = f"{base_path(self, self.view_server)}/elements/{element_guid}/likes{possible_query_params}"
207
+
208
+ response = await self._async_make_request("POST", url, body)
209
+ return response.json()
210
+
211
+ def add_like_to_element(
212
+ self,
213
+ element_guid: str,
214
+ is_public: bool = True,
215
+ body: dict = {},
216
+ view_service_url_marker: Optional[str] = None,
217
+ access_service_url_marker: Optional[str] = None,
218
+ ) -> dict | str:
219
+ """
220
+ Creates a "like" object and attaches it to an element.
221
+
222
+ Parameters
223
+ ----------
224
+
225
+ element_guid
226
+ - String - unique id for the element.
227
+ is_public
228
+ - is this visible to other people
229
+ view_service_url_marker
230
+ - optional view service URL marker (overrides access_service_url_marker)
231
+ access_service_url_marker
232
+ - optional access service URL marker used to identify which back end service to call
233
+ body
234
+ - optional effective time
235
+
236
+ Returns
237
+ -------
238
+ Void
239
+
240
+ Raises
241
+ ------
242
+ PyegeriaInvalidParameterException
243
+ one of the parameters is null or invalid or
244
+ PyegeriaAPIException
245
+ There is a problem adding the element properties to the metadata repository or
246
+ PyegeriaUnauthorizedException
247
+ the requesting user is not authorized to issue this request.
248
+ """
249
+ loop = asyncio.get_event_loop()
250
+ response = loop.run_until_complete(
251
+ self._async_add_like_to_element(
252
+ element_guid,
253
+ is_public,
254
+ body,
255
+ view_service_url_marker,
256
+ access_service_url_marker,
257
+ )
258
+ )
259
+ return response
260
+
261
+ #
262
+ ## add_rating_to_element implementation
263
+ #
264
+
265
+ async def _async_add_rating_to_element(
266
+ self,
267
+ element_guid: str,
268
+ is_public: bool = True,
269
+ body: dict = {},
270
+ view_service_url_marker: Optional[str] = None,
271
+ access_service_url_marker: Optional[str] = None,
272
+ ) -> dict | str:
273
+ """
274
+ Adds a star rating and optional review text to the element.
275
+
276
+ Parameters
277
+ ----------
278
+
279
+ element_guid
280
+ - String - unique id for the element.
281
+ is_public
282
+ - is this visible to other people
283
+ view_service_url_marker
284
+ - optional view service URL marker (overrides access_service_url_marker)
285
+ access_service_url_marker
286
+ - optional access service URL marker used to identify which back end service to call
287
+ body
288
+ - containing the StarRating and user review of element.
289
+
290
+ Returns
291
+ -------
292
+ ElementGUID
293
+
294
+ Raises
295
+ ------
296
+ PyegeriaInvalidParameterException
297
+ one of the parameters is null or invalid or
298
+ PyegeriaAPIException
299
+ There is a problem adding the element properties to the metadata repository or
300
+ PyegeriaUnauthorizedException
301
+ the requesting user is not authorized to issue this request.
302
+ """
303
+
304
+ possible_query_params = query_string(
305
+ [
306
+ ("isPublic", is_public),
307
+ ("viewServiceUrlMarker", view_service_url_marker),
308
+ ("accessServiceUrlMarker", access_service_url_marker),
309
+ ]
310
+ )
311
+ url = f"{base_path(self, self.view_server)}/elements/{element_guid}/ratings{possible_query_params}"
312
+
313
+ response = await self._async_make_request("POST", url, body)
314
+ return response.json()
315
+
316
+ def add_rating_to_element(
317
+ self,
318
+ element_guid: str,
319
+ is_public: bool = True,
320
+ body: dict = {},
321
+ view_service_url_marker: Optional[str] = None,
322
+ access_service_url_marker: Optional[str] = None,
323
+ ) -> dict | str:
324
+ """
325
+ Adds a star rating and optional review text to the element.
326
+
327
+ Parameters
328
+ ----------
329
+
330
+ element_guid
331
+ - String - unique id for the element.
332
+ is_public
333
+ - is this visible to other people
334
+ view_service_url_marker
335
+ - optional view service URL marker (overrides access_service_url_marker)
336
+ access_service_url_marker
337
+ - optional access service URL marker used to identify which back end service to call
338
+ body
339
+ - containing the StarRating and user review of element.
340
+
341
+ Returns
342
+ -------
343
+ ElementGUID
344
+
345
+ Raises
346
+ ------
347
+ PyegeriaInvalidParameterException
348
+ one of the parameters is null or invalid or
349
+ PyegeriaAPIException
350
+ There is a problem adding the element properties to the metadata repository or
351
+ PyegeriaUnauthorizedException
352
+ the requesting user is not authorized to issue this request.
353
+ """
354
+ loop = asyncio.get_event_loop()
355
+ response = loop.run_until_complete(
356
+ self._async_add_rating_to_element(
357
+ element_guid,
358
+ is_public,
359
+ body,
360
+ view_service_url_marker,
361
+ access_service_url_marker,
362
+ )
363
+ )
364
+ return response
365
+
366
+ #
367
+ ## add_tag_to_element implementation
368
+ #
369
+
370
+
371
+
372
+ #
373
+ ## find_comments implementation
374
+ #
375
+
376
+
377
+ #
378
+ ## get_attached_comments implementation
379
+ #
380
+
381
+
382
+
383
+ #
384
+ ## get_attached_likes implementation
385
+ #
386
+ async def _async_get_attached_likes(
387
+ self,
388
+ element_guid: str,
389
+ body: dict = {},
390
+ start_from: int = 0,
391
+ page_size: int = max_paging_size,
392
+ view_service_url_marker: Optional[str] = None,
393
+ access_service_url_marker: Optional[str] = None,
394
+ detailed_response: bool = False,
395
+ ) -> dict | str:
396
+ """
397
+ Return the likes attached to an element
398
+
399
+ Parameters
400
+ ----------
401
+ element_guid
402
+ - unique identifier for the element that the likes are connected to
403
+ server_name
404
+ - name of the server instances for this request
405
+ body
406
+ - optional effective time
407
+ start_from
408
+ - index of the list to start from (0 for start)
409
+ page_size
410
+ - maximum number of elements to return.
411
+ view_service_url_marker
412
+ - optional view service URL marker (overrides access_service_url_marker)
413
+ access_service_url_marker
414
+ - optional access service URL marker used to identify which back end service to call
415
+
416
+
417
+ Returns
418
+ -------
419
+ List of Likes (LikeElementsResponse)
420
+
421
+ Raises
422
+ ------
423
+ PyegeriaInvalidParameterException
424
+ one of the parameters is null or invalid or
425
+ PyegeriaAPIException
426
+ There is a problem adding the element properties to the metadata repository or
427
+ PyegeriaUnauthorizedException
428
+ the requesting user is not authorized to issue this request.
429
+ """
430
+
431
+ possible_query_params = query_string(
432
+ [
433
+ ("startFrom", start_from),
434
+ ("pageSize", page_size),
435
+ ("viewServiceUrlMarker", view_service_url_marker),
436
+ ("accessServiceUrlMarker", access_service_url_marker),
437
+ ]
438
+ )
439
+ url = f"{base_path(self, self.view_server)}/elements/{element_guid}/likes/retrieve{possible_query_params}"
440
+ response = await self._async_make_request("POST", url, body)
441
+ return elements_response(response.json(), "elementList", detailed_response)
442
+ # return response.json().get("ratings", "---")
443
+
444
+ def get_attached_likes(
445
+ self,
446
+ element_guid: str,
447
+ body: dict = {},
448
+ start_from: int = 0,
449
+ page_size: int = max_paging_size,
450
+ view_service_url_marker: Optional[str] = None,
451
+ access_service_url_marker: Optional[str] = None,
452
+ detailed_response: bool = False,
453
+ ) -> dict | str:
454
+ """
455
+ Return the likes attached to an element
456
+
457
+
458
+ Parameters
459
+ ----------
460
+ element_guid
461
+ - unique identifier for the element that the likes are connected to
462
+ server_name
463
+ - name of the server instances for this request
464
+ body
465
+ - optional effective time
466
+ start_from
467
+ - index of the list to start from (0 for start)
468
+ page_size
469
+ - maximum number of elements to return.
470
+ view_service_url_marker
471
+ - optional view service URL marker (overrides access_service_url_marker)
472
+ access_service_url_marker
473
+ - optional access service URL marker used to identify which back end service to call
474
+
475
+
476
+ Returns
477
+ -------
478
+ List of Likes (LikeElementsResponse)
479
+
480
+ Raises
481
+ ------
482
+ PyegeriaInvalidParameterException
483
+ one of the parameters is null or invalid or
484
+ PyegeriaAPIException
485
+ There is a problem adding the element properties to the metadata repository or
486
+ PyegeriaUnauthorizedException
487
+ the requesting user is not authorized to issue this request.
488
+ """
489
+ loop = asyncio.get_event_loop()
490
+ response = loop.run_until_complete(
491
+ self._async_get_attached_likes(
492
+ element_guid,
493
+ body,
494
+ start_from,
495
+ page_size,
496
+ view_service_url_marker,
497
+ access_service_url_marker,
498
+ detailed_response,
499
+ )
500
+ )
501
+ return response
502
+
503
+ #
504
+ ## get_attached_ratings implementation
505
+ #
506
+ async def _async_get_attached_ratings(
507
+ self,
508
+ element_guid: str,
509
+ body: dict = {},
510
+ start_from: int = 0,
511
+ page_size: int = max_paging_size,
512
+ view_service_url_marker: Optional[str] = None,
513
+ access_service_url_marker: Optional[str] = None,
514
+ detailed_response: bool = False,
515
+ ) -> dict | str:
516
+ """
517
+ Return the ratings attached to an element.
518
+
519
+ Parameters
520
+ ----------
521
+ element_guid
522
+ - unique identifier for the element that the ratings are connected to
523
+ server_name
524
+ - name of the server instances for this request
525
+ body
526
+ - optional effective time
527
+ start_from
528
+ - index of the list to start from (0 for start)
529
+ page_size
530
+ - maximum number of elements to return.
531
+ view_service_url_marker
532
+ - optional view service URL marker (overrides access_service_url_marker)
533
+ access_service_url_marker
534
+ - optional access service URL marker used to identify which back end service to call
535
+
536
+ Returns
537
+ -------
538
+ List of ratings (RatingElementsResponse)
539
+
540
+ Raises
541
+ ------
542
+ PyegeriaInvalidParameterException
543
+ one of the parameters is null or invalid or
544
+ PyegeriaAPIException
545
+ There is a problem adding the element properties to the metadata repository or
546
+ PyegeriaUnauthorizedException
547
+ the requesting user is not authorized to issue this request.
548
+ """
549
+
550
+ possible_query_params = query_string(
551
+ [
552
+ ("startFrom", start_from),
553
+ ("pageSize", page_size),
554
+ ("viewServiceUrlMarker", view_service_url_marker),
555
+ ("accessServiceUrlMarker", access_service_url_marker),
556
+ ]
557
+ )
558
+ url = f"{base_path(self, self.view_server)}/elements/{element_guid}/ratings/retrieve{possible_query_params}"
559
+ response = await self._async_make_request("POST", url, body)
560
+ return elements_response(response.json(), "elementList", detailed_response)
561
+
562
+ def get_attached_ratings(
563
+ self,
564
+ element_guid: str,
565
+ body: dict = {},
566
+ start_from: int = 0,
567
+ page_size: int = max_paging_size,
568
+ view_service_url_marker: Optional[str] = None,
569
+ access_service_url_marker: Optional[str] = None,
570
+ detailed_response: bool = False,
571
+ ) -> dict | str:
572
+ """
573
+ Return the ratings attached to an element.
574
+
575
+ Parameters
576
+ ----------
577
+ element_guid
578
+ - unique identifier for the element that the ratings are connected to
579
+ server_name
580
+ - name of the server instances for this request
581
+ body
582
+ - optional effective time
583
+ start_from
584
+ - index of the list to start from (0 for start)
585
+ page_size
586
+ - maximum number of elements to return.
587
+ view_service_url_marker
588
+ - optional view service URL marker (overrides access_service_url_marker)
589
+ access_service_url_marker
590
+ - optional access service URL marker used to identify which back end service to call
591
+
592
+ Returns
593
+ -------
594
+ List of ratings (RatingElementsResponse)
595
+
596
+ Raises
597
+ ------
598
+ PyegeriaInvalidParameterException
599
+ one of the parameters is null or invalid or
600
+ PyegeriaAPIException
601
+ There is a problem adding the element properties to the metadata repository or
602
+ PyegeriaUnauthorizedException
603
+ the requesting user is not authorized to issue this request.
604
+ """
605
+ loop = asyncio.get_event_loop()
606
+ response = loop.run_until_complete(
607
+ self._async_get_attached_ratings(
608
+ element_guid,
609
+ body,
610
+ start_from,
611
+ page_size,
612
+ view_service_url_marker,
613
+ access_service_url_marker,
614
+ detailed_response,
615
+ )
616
+ )
617
+ return response
618
+
619
+ #
620
+ ## get_attached_tags implementation
621
+ #
622
+
623
+ #
624
+ ## remove_comment_from_element implementation
625
+ #
626
+
627
+
628
+ async def _async_remove_like_from_element(
629
+ self,
630
+ element_guid: str,
631
+ body: dict = {},
632
+ view_service_url_marker: Optional[str] = None,
633
+ access_service_url_marker: Optional[str] = None,
634
+ ) -> dict | str:
635
+ """
636
+ Removes a "Like" added to the element by this user.
637
+
638
+ Parameters
639
+ ----------
640
+
641
+ element_guid
642
+ - unique identifier for the element where the like is attached.
643
+ view_service_url_marker
644
+ - optional view service URL marker (overrides access_service_url_marker)
645
+ access_service_url_marker
646
+ - optional access service URL marker used to identify which back end service to call
647
+ body
648
+ - containing type of comment enum and the text of the comment.
649
+
650
+ Returns
651
+ -------
652
+ VoidResponse
653
+
654
+ Raises
655
+ ------
656
+ PyegeriaInvalidParameterException
657
+ one of the parameters is null or invalid or
658
+ PyegeriaAPIException
659
+ There is a problem adding the element properties to the metadata repository or
660
+ PyegeriaUnauthorizedException
661
+ the requesting user is not authorized to issue this request.
662
+ """
663
+
664
+ possible_query_params = query_string(
665
+ [
666
+ ("viewServiceUrlMarker", view_service_url_marker),
667
+ ("accessServiceUrlMarker", access_service_url_marker),
668
+ ]
669
+ )
670
+ url = f"{base_path(self, self.view_server)}/elements/{element_guid}/likes/remove{possible_query_params}"
671
+ response = await self._async_make_request("POST", url, body)
672
+ return response.json()
673
+
674
+ def remove_like_from_element(
675
+ self,
676
+ element_guid: str,
677
+ body: dict = {},
678
+ view_service_url_marker: Optional[str] = None,
679
+ access_service_url_marker: Optional[str] = None,
680
+ ) -> dict | str:
681
+ """
682
+ Removes a "Like" added to the element by this user.
683
+
684
+ Parameters
685
+ ----------
686
+
687
+ element_guid
688
+ - unique identifier for the element where the like is attached.
689
+ view_service_url_marker
690
+ - optional view service URL marker (overrides access_service_url_marker)
691
+ access_service_url_marker
692
+ - optional access service URL marker used to identify which back end service to call
693
+ body
694
+ - containing type of comment enum and the text of the comment.
695
+
696
+ Returns
697
+ -------
698
+ VoidResponse
699
+
700
+ Raises
701
+ ------
702
+ PyegeriaInvalidParameterException
703
+ one of the parameters is null or invalid or
704
+ PyegeriaAPIException
705
+ There is a problem adding the element properties to the metadata repository or
706
+ PyegeriaUnauthorizedException
707
+ the requesting user is not authorized to issue this request.
708
+ """
709
+ loop = asyncio.get_event_loop()
710
+ response = loop.run_until_complete(
711
+ self._async_remove_like_from_element(
712
+ element_guid,
713
+ body,
714
+ view_service_url_marker,
715
+ access_service_url_marker,
716
+ )
717
+ )
718
+ return response
719
+
720
+ #
721
+ ## remove_note implementation
722
+ #
723
+
724
+
725
+
726
+ #
727
+ ## remove_note_log implementation
728
+ #
729
+
730
+
731
+ #
732
+ ## remove_rating_from_element implementation
733
+ #
734
+
735
+ async def _async_remove_rating_from_element(
736
+ self,
737
+ element_guid: str,
738
+ body: dict = {},
739
+ view_service_url_marker: Optional[str] = None,
740
+ access_service_url_marker: Optional[str] = None,
741
+ ) -> dict | str:
742
+ """
743
+ Removes of a star rating/review that was added to the element by this user.
744
+
745
+ Parameters
746
+ ----------
747
+
748
+ element_guid
749
+ - unique identifier for the element where the rating is attached.
750
+ view_service_url_marker
751
+ - optional view service URL marker (overrides access_service_url_marker)
752
+ access_service_url_marker
753
+ - optional access service URL marker used to identify which back end service to call
754
+ body
755
+ - containing type of comment enum and the text of the comment.
756
+
757
+ Returns
758
+ -------
759
+ Void
760
+
761
+ Raises
762
+ ------
763
+ PyegeriaInvalidParameterException
764
+ one of the parameters is null or invalid or
765
+ PyegeriaAPIException
766
+ There is a problem adding the element properties to the metadata repository or
767
+ PyegeriaUnauthorizedException
768
+ the requesting user is not authorized to issue this request.
769
+ """
770
+
771
+ possible_query_params = query_string(
772
+ [
773
+ ("viewServiceUrlMarker", view_service_url_marker),
774
+ ("accessServiceUrlMarker", access_service_url_marker),
775
+ ]
776
+ )
777
+ url = f"{base_path(self, self.view_server)}/elements/{element_guid}/ratings/remove{possible_query_params}"
778
+ response = await self._async_make_request("POST", url, body)
779
+ return response.json()
780
+
781
+ def remove_rating_from_element(
782
+ self,
783
+ element_guid: str,
784
+ body: dict = {},
785
+ view_service_url_marker: Optional[str] = None,
786
+ access_service_url_marker: Optional[str] = None,
787
+ ) -> dict | str:
788
+ """
789
+ Removes of a star rating/review that was added to the element by this user.
790
+
791
+ Parameters
792
+ ----------
793
+
794
+ element_guid
795
+ - unique identifier for the element where the rating is attached.
796
+ view_service_url_marker
797
+ - optional view service URL marker (overrides access_service_url_marker)
798
+ access_service_url_marker
799
+ - optional access service URL marker used to identify which back end service to call
800
+ body
801
+ - containing type of comment enum and the text of the comment.
802
+
803
+ Returns
804
+ -------
805
+ Void
806
+
807
+ Raises
808
+ ------
809
+ PyegeriaInvalidParameterException
810
+ one of the parameters is null or invalid or
811
+ PyegeriaAPIException
812
+ There is a problem adding the element properties to the metadata repository or
813
+ PyegeriaUnauthorizedException
814
+ the requesting user is not authorized to issue this request.
815
+ """
816
+ loop = asyncio.get_event_loop()
817
+ response = loop.run_until_complete(
818
+ self._async_remove_rating_from_element(
819
+ element_guid,
820
+ body,
821
+ view_service_url_marker,
822
+ access_service_url_marker,
823
+ )
824
+ )
825
+ return response
826
+
827
+ #
828
+ ## remove_tag_from_element implementation
829
+ #
830
+
831
+
832
+
833
+ if __name__ == "__main__":
834
+ print("Main-Feedback Manager")