pyegeria 5.3.9.5__py3-none-any.whl → 5.3.9.7__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.
Files changed (240) hide show
  1. {pyegeria/commands → commands}/cat/Dr-Egeria_md-orig.py +10 -11
  2. {pyegeria/commands → commands}/cat/dr_egeria_jupyter.py +4 -4
  3. {pyegeria/commands → commands}/cat/dr_egeria_md.py +36 -16
  4. {pyegeria/commands → commands}/cat/list_categories.py +3 -3
  5. {pyegeria/commands → commands}/cat/list_collections.py +59 -16
  6. commands/cat/list_data_structures.py +223 -0
  7. {pyegeria/commands → commands}/cat/list_glossaries.py +3 -3
  8. {pyegeria/commands → commands}/cat/list_terms.py +4 -4
  9. {pyegeria/commands → commands}/cli/__init__.py +1 -1
  10. {pyegeria/commands → commands}/cli/egeria.py +91 -87
  11. {pyegeria/commands → commands}/cli/egeria_cat.py +29 -29
  12. {pyegeria/commands → commands}/cli/egeria_login_tui.py +1 -1
  13. {pyegeria/commands → commands}/cli/egeria_my.py +8 -8
  14. {pyegeria/commands → commands}/cli/egeria_ops.py +24 -24
  15. {pyegeria/commands → commands}/cli/egeria_tech.py +34 -34
  16. commands/tech/generic_actions.py +74 -0
  17. {pyegeria/commands → commands}/tech/list_information_supply_chains.py +3 -1
  18. pyegeria/__init__.py +11 -9
  19. pyegeria/_client.py +2 -49
  20. pyegeria/collection_manager_omvs.py +484 -735
  21. pyegeria/data_designer_omvs.py +251 -103
  22. pyegeria/egeria_client.py +5 -0
  23. pyegeria/egeria_tech_client.py +10 -1
  24. pyegeria/glossary_browser_omvs.py +144 -260
  25. pyegeria/md_processing_helpers.py +1 -1
  26. pyegeria/md_processing_utils.py +114 -32
  27. pyegeria/md_processing_utils_orig.py +19 -19
  28. pyegeria/mermaid_utilities.py +2 -2
  29. pyegeria/output_formatter.py +389 -0
  30. {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.7.dist-info}/METADATA +1 -1
  31. pyegeria-5.3.9.7.dist-info/RECORD +141 -0
  32. pyegeria-5.3.9.7.dist-info/entry_points.txt +99 -0
  33. pyegeria/commands/README.md +0 -47
  34. pyegeria/commands/__init__.py +0 -30
  35. pyegeria/commands/cat/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -341
  36. pyegeria/commands/doc/README.md +0 -145
  37. pyegeria/commands/doc/Visual Command Reference/README.md +0 -511
  38. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/asset-graph 2024-11-20 at 15.56.42.png +0 -0
  39. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/assets-in-domain 2024-11-20 at 15.49.55@2x.png +0 -0
  40. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/elements-of-type 2024-11-20 at 16.01.35.png +0 -0
  41. pyegeria/commands/doc/Visual Command Reference/cat/show/assets/tech-type-elements 2024-11-20 at 16.05.05.png +0 -0
  42. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs 2024-12-17 at 15.43.27@2x.png +0 -0
  43. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-data-catalogs-2024-11-20 at 16.17.43@2x.png +0 -0
  44. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-11-25 at 20.14.50@2x.png +0 -0
  45. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-schemas 2024-12-17 at 15.48.38@2x.png +0 -0
  46. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-11-25 at 20.21.25@2x.png +0 -0
  47. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed-servers 2024-12-17 at 15.52.16@2x.png +0 -0
  48. pyegeria/commands/doc/Visual Command Reference/cat/show/deployed-data/deployed_databases 2024-12-16 at 16.40.31@2x.png +0 -0
  49. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-glossaries 2024-11-25 at 20.30.02.png +0 -0
  50. pyegeria/commands/doc/Visual Command Reference/cat/show/glossary/list-terms 2024-11-25 at 20.32.11.png +0 -0
  51. pyegeria/commands/doc/Visual Command Reference/cat/show/info/asset-types 2024-11-25 at 20.34.19@2x.png +0 -0
  52. pyegeria/commands/doc/Visual Command Reference/cat/show/info/certification-types 2024-11-25 at 20.37.07.png +0 -0
  53. pyegeria/commands/doc/Visual Command Reference/cat/show/info/collection-graph 2024-12-12 at 11.33.18@2x.png +0 -0
  54. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-collections 2024-12-10 at 14.25.51@2x.png +0 -0
  55. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-todos 2024-12-12 at 11.46.30@2x.png +0 -0
  56. pyegeria/commands/doc/Visual Command Reference/cat/show/info/list-user-ids 2024-12-12 at 11.51.09@2x.png +0 -0
  57. pyegeria/commands/doc/Visual Command Reference/cat/show/info/tech-types 2024-12-12 at 11.37.20@2x.png +0 -0
  58. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_dependencies 2024-12-14 at 16.24.39@2x.png +0 -0
  59. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/project_structure 2024-12-14 at 16.21.35@2x.png +0 -0
  60. pyegeria/commands/doc/Visual Command Reference/cat/show/projects/projects 2024-12-14 at 16.18.10@2x.png +0 -0
  61. pyegeria/commands/doc/Visual Command Reference/hey_egeria tui 2024-12-16 at 16.58.22@2x.png +0 -0
  62. pyegeria/commands/doc/Visual Command Reference/my/show/my_profile 2024-12-14 at 16.29.27@2x.png +0 -0
  63. pyegeria/commands/doc/Visual Command Reference/my/show/my_roles 2024-12-14 at 16.32.10@2x.png +0 -0
  64. pyegeria/commands/doc/Visual Command Reference/my/show/my_todos 2024-12-15 at 16.24.13@2x.png +0 -0
  65. pyegeria/commands/doc/Visual Command Reference/my/show/open_todos 2024-12-14 at 16.36.12@2x.png +0 -0
  66. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/list_engine_activity compressed 2024-12-15 at 16.48.48@2x.png +0 -0
  67. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity 2024-12-15 at 16.32.55@2x.png +0 -0
  68. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_activity compressed 2024-12-15 at 16.38.29@2x.png +0 -0
  69. pyegeria/commands/doc/Visual Command Reference/ops/show/engines/monitor_engine_status 2024-12-15 at 16.51.26.jpeg +0 -0
  70. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_daemon_status 2024-12-15 at 16.57.12@2x.png +0 -0
  71. pyegeria/commands/doc/Visual Command Reference/ops/show/integrations/monitor_integration_targets 2024-12-15 at 17.02.19@2x.png +0 -0
  72. pyegeria/commands/doc/Visual Command Reference/ops/show/platforms/monitor_platform_status 2024-12-15 at 19.53.18@2x.png +0 -0
  73. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status 2024-12-15 at 19.59.39@2x.png +0 -0
  74. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_server_status full 2024-12-15 at 20.01.57@2x.png +0 -0
  75. pyegeria/commands/doc/Visual Command Reference/ops/show/servers/monitor_startup_servers 2024-12-15 at 19.56.07@2x.png +0 -0
  76. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_anchored_elements 2024-12-15 at 21.25.41@2x.png +0 -0
  77. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/get_elements_of_om_type 2024-12-16 at 14.39.59@2x.png +0 -0
  78. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/info_for_guid 2024-12-16 at 11.35.29@2x.png +0 -0
  79. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type 2024-12-16 at 14.24.18@2x.png +0 -0
  80. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_by_om-type extended 2024-12-16 at 14.28.46@2x.png +0 -0
  81. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/list_elements_of_om_type_by_classification 2024-12-16 at 14.35.26@2x.png +0 -0
  82. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/related_elements 2024-12-16 at 14.55.01@2x.png +0 -0
  83. pyegeria/commands/doc/Visual Command Reference/tech/show/elements/show_related_specifications 2024-12-16 at 15.04.55@2x.png +0 -0
  84. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/asset_types 2024-12-16 at 15.10.16@2x.png +0 -0
  85. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/detailed_governance_action_processes 2024-12-16 at 15.16.26@2x.png +0 -0
  86. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/governance_action_processes 2024-12-16 at 15.13.01@2x.png +0 -0
  87. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/registered_services 2024-12-16 at 16.44.54@2x.png +0 -0
  88. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-16 at 16.20.34@2x.png +0 -0
  89. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/relationship_types 2024-12-19 at 10.51.54@2x.png +0 -0
  90. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-info/valid_metadata_values 2024-12-16 at 15.31.56@2x.png +0 -0
  91. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_tech_type_template_specs 2024-12-16 at 16.03.22@2x.png +0 -0
  92. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/list_technology_types 2024-12-16 at 15.39.20@2x.png +0 -0
  93. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_details 2024-12-16 at 15.37.21@2x.png +0 -0
  94. pyegeria/commands/doc/Visual Command Reference/tech/show/tech-types/tech_type_templates 2024-12-16 at 16.11.48@2x.png +0 -0
  95. pyegeria/commands/doc/glossary/basic-glossary-tui.md +0 -109
  96. pyegeria/commands/doc/glossary/images/delete-glossary-step1 2024-11-06 at 15.47.23@2x.png +0 -0
  97. pyegeria/commands/doc/glossary/images/delete-glossary-step2 2024-11-06 at 15.51.29@2x.png +0 -0
  98. pyegeria/commands/doc/glossary/images/delete-glossary-step3 2024-11-06 at 15.53.19@2x.png +0 -0
  99. pyegeria/commands/doc/glossary/images/delete-glossary-step4 2024-11-06 at 15.55.11@2x.png +0 -0
  100. pyegeria/commands/doc/glossary/images/out-create-glossary example 2024-11-05 at 20.38.04@2x.png +0 -0
  101. pyegeria/commands/doc/glossary/images/out-create-term 2024-11-06 at 20.48.29.png +0 -0
  102. pyegeria/commands/doc/glossary/images/out-delete-term 2024-11-07 at 03.57.25.png +0 -0
  103. pyegeria/commands/doc/glossary/images/out-display-terms-for-glossary-test 2024-11-06 at 20.51.28.png +0 -0
  104. pyegeria/commands/doc/glossary/images/out-export-example 2024-11-07 at 09.54.57.png +0 -0
  105. pyegeria/commands/doc/glossary/images/out-exported-terms 2024-11-06 at 21.06.32.png +0 -0
  106. pyegeria/commands/doc/glossary/images/out-glossary-list example 2024-11-05 at 20.41.02@2x.png +0 -0
  107. pyegeria/commands/doc/glossary/images/out-import-terms 2024-11-07 at 08.15.18.png +0 -0
  108. pyegeria/commands/doc/glossary/images/out-list-all-terms 2024-11-06 at 16.22.20@2x.png +0 -0
  109. pyegeria/commands/doc/glossary/images/out-list-terms-for-example 2024-11-06 at 16.40.12.png +0 -0
  110. pyegeria/commands/doc/glossary/images/out-list-terms-second 2024-11-06 at 16.45.13.png +0 -0
  111. pyegeria/commands/doc/glossary/images/out-pipx install pyegeria 2024-11-10 at 18.12.21.png +0 -0
  112. pyegeria/commands/doc/glossary/images/out-server-status-full 2024-11-10 at 18.25.14.png +0 -0
  113. pyegeria/commands/doc/glossary/images/out-servers-status 2024-11-10 at 18.15.42.png +0 -0
  114. pyegeria/commands/doc/glossary/images/out-upsert-import 2024-11-07 at 19.37.00.png +0 -0
  115. pyegeria/commands/doc/glossary/images/tui-2024-11-10 at 18.26.29.png +0 -0
  116. pyegeria/commands/doc/glossary/images/tui-create-glossary example 2024-11-05 at 20.34.24@2x.png +0 -0
  117. pyegeria/commands/doc/glossary/images/tui-create-term 2024-11-06 at 20.46.35.png +0 -0
  118. pyegeria/commands/doc/glossary/images/tui-delete-term 2024-11-07 at 03.51.57.png +0 -0
  119. pyegeria/commands/doc/glossary/images/tui-display-terms-for-example 2024-11-06 at 20.56.49.png +0 -0
  120. pyegeria/commands/doc/glossary/images/tui-export-example 2024-11-07 at 09.52.59.png +0 -0
  121. pyegeria/commands/doc/glossary/images/tui-hey-egeria 2024-11-10 at 18.31.01.png +0 -0
  122. pyegeria/commands/doc/glossary/images/tui-import-upsert-example 2024-11-07 at 10.08.37.png +0 -0
  123. pyegeria/commands/doc/glossary/images/tui-list-terms-second 2024-11-06 at 16.46.34.png +0 -0
  124. pyegeria/commands/doc/glossary/images/tui-load-archive.png +0 -0
  125. pyegeria/commands/doc/glossary/images/tui-server-status-full 2024-11-10 at 19.14.36.png +0 -0
  126. pyegeria/commands/doc/glossary/images/tui-show-glossaries 2024-11-07 at 20.00.05.png +0 -0
  127. pyegeria/commands/doc/glossary/images/tui-show-glossary-terms 2024-11-05 at 19.37.53@2x.png +0 -0
  128. pyegeria/commands/doc/glossary/images/tui-upsert 2024-11-07 at 11.49.04.png +0 -0
  129. pyegeria/commands/doc/glossary/images/upsert-example.om-terms 2024-11-07 at 11.44.05.png +0 -0
  130. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/README.md +0 -346
  131. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/CleanShot 2024-11-18 at 21.32.03@2x.png +0 -0
  132. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731421782704.png +0 -0
  133. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/Xmind 1731422134920.png +0 -0
  134. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria 2024-11-12 at 20.38.43.png +0 -0
  135. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/hey_egeria cat 2024-11-12 at 21.41.43.png +0 -0
  136. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-list 2024-11-12 at 16.45.26.png +0 -0
  137. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-integ-status-live 2024-11-12 at 16.44.12@2x.png +0 -0
  138. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status 2024-11-10 at 18.15.42@2x.png +0 -0
  139. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/out-server-status-full 2024-11-10 at 18.25.14@2x.png +0 -0
  140. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/short-cut commands 2024-11-12 at 22.22.13.png +0 -0
  141. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-hey-egeria.png +0 -0
  142. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-integration-status-paging.png +0 -0
  143. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-load-archive 2024-11-10 at 19.19.09@2x.png +0 -0
  144. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status 2024-11-10 at 18.52.01@2x.png +0 -0
  145. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-show-server-status-full 2024-11-10.png +0 -0
  146. pyegeria/commands/doc/hey_egeria: a pyegeria command line interface/images/tui-status-paging 2024-11-12 at 16.26.14@2x.png +0 -0
  147. pyegeria/dr_egeria_state.py +0 -67
  148. pyegeria/md_processing/__init__.py +0 -51
  149. pyegeria/md_processing/commands/__init__.py +0 -3
  150. pyegeria/md_processing/commands/blueprint_commands.py +0 -307
  151. pyegeria/md_processing/commands/category_commands.py +0 -242
  152. pyegeria/md_processing/commands/glossary_commands.py +0 -225
  153. pyegeria/md_processing/commands/project_commands.py +0 -169
  154. pyegeria/md_processing/commands/term_commands.py +0 -524
  155. pyegeria/md_processing/utils/__init__.py +0 -3
  156. pyegeria/md_processing/utils/common_utils.py +0 -101
  157. pyegeria/md_processing/utils/display_utils.py +0 -53
  158. pyegeria/md_processing/utils/extraction_utils.py +0 -177
  159. pyegeria/md_processing/utils/validation_utils.py +0 -208
  160. pyegeria-5.3.9.5.dist-info/RECORD +0 -265
  161. pyegeria-5.3.9.5.dist-info/entry_points.txt +0 -98
  162. {pyegeria/commands → commands}/cat/README.md +0 -0
  163. {pyegeria/commands → commands}/cat/__init__.py +0 -0
  164. {pyegeria/commands → commands}/cat/exp_list_glossaries.py +0 -0
  165. {pyegeria/commands → commands}/cat/get_asset_graph.py +0 -0
  166. {pyegeria/commands → commands}/cat/get_collection.py +0 -0
  167. {pyegeria/commands → commands}/cat/get_project_dependencies.py +0 -0
  168. {pyegeria/commands → commands}/cat/get_project_structure.py +0 -0
  169. {pyegeria/commands → commands}/cat/get_tech_type_elements.py +0 -0
  170. {pyegeria/commands → commands}/cat/glossary_actions.py +0 -0
  171. {pyegeria/commands → commands}/cat/list_assets.py +0 -0
  172. {pyegeria/commands → commands}/cat/list_cert_types.py +0 -0
  173. {pyegeria/commands → commands}/cat/list_deployed_catalogs.py +0 -0
  174. {pyegeria/commands → commands}/cat/list_deployed_database_schemas.py +0 -0
  175. {pyegeria/commands → commands}/cat/list_deployed_databases.py +0 -0
  176. {pyegeria/commands → commands}/cat/list_deployed_servers.py +0 -0
  177. {pyegeria/commands → commands}/cat/list_projects.py +0 -0
  178. {pyegeria/commands → commands}/cat/list_tech_type_elements.py +0 -0
  179. {pyegeria/commands → commands}/cat/list_tech_types.py +0 -0
  180. {pyegeria/commands → commands}/cat/list_todos.py +0 -0
  181. {pyegeria/commands → commands}/cat/list_user_ids.py +0 -0
  182. {pyegeria/commands → commands}/cli/ops_config.py +0 -0
  183. {pyegeria/commands → commands}/cli/txt_custom_v2.tcss +0 -0
  184. {pyegeria/commands → commands}/my/README.md +0 -0
  185. {pyegeria/commands → commands}/my/__init__.py +0 -0
  186. {pyegeria/commands → commands}/my/list_my_profile.py +0 -0
  187. {pyegeria/commands → commands}/my/list_my_roles.py +0 -0
  188. {pyegeria/commands → commands}/my/monitor_my_todos.py +0 -0
  189. {pyegeria/commands → commands}/my/monitor_open_todos.py +0 -0
  190. {pyegeria/commands → commands}/my/todo_actions.py +0 -0
  191. {pyegeria/commands → commands}/ops/README.md +0 -0
  192. {pyegeria/commands → commands}/ops/__init__.py +0 -0
  193. {pyegeria/commands → commands}/ops/gov_server_actions.py +0 -0
  194. {pyegeria/commands → commands}/ops/list_archives.py +0 -0
  195. {pyegeria/commands → commands}/ops/list_catalog_targets.py +0 -0
  196. {pyegeria/commands → commands}/ops/load_archive.py +0 -0
  197. {pyegeria/commands → commands}/ops/monitor_asset_events.py +0 -0
  198. {pyegeria/commands → commands}/ops/monitor_engine_activity.py +0 -0
  199. {pyegeria/commands → commands}/ops/monitor_engine_activity_c.py +0 -0
  200. {pyegeria/commands → commands}/ops/monitor_gov_eng_status.py +0 -0
  201. {pyegeria/commands → commands}/ops/monitor_integ_daemon_status.py +0 -0
  202. {pyegeria/commands → commands}/ops/monitor_platform_status.py +0 -0
  203. {pyegeria/commands → commands}/ops/monitor_server_startup.py +0 -0
  204. {pyegeria/commands → commands}/ops/monitor_server_status.py +0 -0
  205. {pyegeria/commands → commands}/ops/orig_monitor_server_list.py +0 -0
  206. {pyegeria/commands → commands}/ops/orig_monitor_server_status.py +0 -0
  207. {pyegeria/commands → commands}/ops/refresh_integration_daemon.py +0 -0
  208. {pyegeria/commands → commands}/ops/restart_integration_daemon.py +0 -0
  209. {pyegeria/commands → commands}/ops/table_integ_daemon_status.py +0 -0
  210. {pyegeria/commands → commands}/ops/x_engine_actions.py +0 -0
  211. {pyegeria/commands → commands}/tech/README.md +0 -0
  212. {pyegeria/commands → commands}/tech/__init__.py +0 -0
  213. {pyegeria/commands → commands}/tech/get_element_info.py +0 -0
  214. {pyegeria/commands → commands}/tech/get_guid_info.py +0 -0
  215. {pyegeria/commands → commands}/tech/get_tech_details.py +0 -0
  216. {pyegeria/commands → commands}/tech/get_tech_type_template.py +0 -0
  217. {pyegeria/commands → commands}/tech/list_all_om_type_elements.py +0 -0
  218. {pyegeria/commands → commands}/tech/list_all_om_type_elements_x.py +0 -0
  219. {pyegeria/commands → commands}/tech/list_all_related_elements.py +0 -0
  220. {pyegeria/commands → commands}/tech/list_anchored_elements.py +0 -0
  221. {pyegeria/commands → commands}/tech/list_asset_types.py +0 -0
  222. {pyegeria/commands → commands}/tech/list_elements_by_classification_by_property_value.py +0 -0
  223. {pyegeria/commands → commands}/tech/list_elements_by_property_value.py +0 -0
  224. {pyegeria/commands → commands}/tech/list_elements_by_property_value_x.py +0 -0
  225. {pyegeria/commands → commands}/tech/list_elements_for_classification.py +0 -0
  226. {pyegeria/commands → commands}/tech/list_gov_action_processes.py +0 -0
  227. {pyegeria/commands → commands}/tech/list_registered_services.py +0 -0
  228. {pyegeria/commands → commands}/tech/list_related_elements_with_prop_value.py +0 -0
  229. {pyegeria/commands → commands}/tech/list_related_specification.py +0 -0
  230. {pyegeria/commands → commands}/tech/list_relationship_types.py +0 -0
  231. {pyegeria/commands → commands}/tech/list_relationships.py +0 -0
  232. {pyegeria/commands → commands}/tech/list_solution_blueprints.py +0 -0
  233. {pyegeria/commands → commands}/tech/list_solution_components.py +0 -0
  234. {pyegeria/commands → commands}/tech/list_solution_roles.py +0 -0
  235. {pyegeria/commands → commands}/tech/list_tech_templates.py +0 -0
  236. {pyegeria/commands → commands}/tech/list_valid_metadata_values.py +0 -0
  237. {pyegeria/commands → commands}/tech/table_tech_templates.py +0 -0
  238. {pyegeria/commands → commands}/tech/x_list_related_elements.py +0 -0
  239. {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.7.dist-info}/LICENSE +0 -0
  240. {pyegeria-5.3.9.5.dist-info → pyegeria-5.3.9.7.dist-info}/WHEEL +0 -0
pyegeria/egeria_client.py CHANGED
@@ -29,6 +29,7 @@ from pyegeria.server_operations import ServerOps
29
29
  from pyegeria.registered_info import RegisteredInfo
30
30
  from pyegeria.valid_metadata_omvs import ValidMetadataManager
31
31
  from pyegeria.egeria_config_client import EgeriaConfig
32
+ from pyegeria.data_designer_omvs import DataDesigner
32
33
  # from pyegeria.md_processing_utils import render_markdown
33
34
 
34
35
 
@@ -53,6 +54,7 @@ class Egeria(
53
54
  MetadataExplorer,
54
55
  SolutionArchitect,
55
56
  EgeriaConfig,
57
+ DataDesigner,
56
58
  ):
57
59
  """
58
60
  Client to issue Runtime status requests.
@@ -124,4 +126,7 @@ class Egeria(
124
126
  SolutionArchitect.__init__(
125
127
  self, view_server, platform_url, user_id, user_pwd, token
126
128
  )
129
+ DataDesigner.__init__(
130
+ self, view_server, platform_url, user_id, user_pwd, token
131
+ )
127
132
  print(Egeria.mro())
@@ -26,6 +26,8 @@ from pyegeria.metadata_explorer_omvs import MetadataExplorer
26
26
  from pyegeria.feedback_manager_omvs import FeedbackManager
27
27
  from pyegeria.my_profile_omvs import MyProfile
28
28
  from pyegeria.solution_architect_omvs import SolutionArchitect
29
+ from pyegeria.data_designer_omvs import DataDesigner
30
+ from pyegeria.template_manager_omvs import TemplateManager
29
31
  from pyegeria.my_profile_omvs import MyProfile
30
32
  from pyegeria.utils import body_slimmer
31
33
  from pyegeria import (
@@ -46,6 +48,8 @@ class EgeriaTech(
46
48
  ValidMetadataManager,
47
49
  MetadataExplorer,
48
50
  SolutionArchitect,
51
+ DataDesigner,
52
+ TemplateManager,
49
53
  ):
50
54
  """
51
55
  Client for technical Egeria users.
@@ -100,7 +104,12 @@ class EgeriaTech(
100
104
  SolutionArchitect.__init__(
101
105
  self, view_server, platform_url, user_id, user_pwd, token
102
106
  )
103
-
107
+ DataDesigner.__init__(
108
+ self, view_server, platform_url, user_id, user_pwd, token
109
+ )
110
+ TemplateManager.__init__(
111
+ self, view_server, platform_url, user_id, user_pwd, token
112
+ )
104
113
 
105
114
  if __name__ == "__main__":
106
115
  print("Main-Tech Client")
@@ -16,14 +16,22 @@ from pyegeria._exceptions import InvalidParameterException, PropertyServerExcept
16
16
  from pyegeria._globals import NO_CATEGORIES_FOUND, NO_TERMS_FOUND
17
17
  from pyegeria._validators import validate_guid, validate_name, validate_search_string
18
18
  from pyegeria.utils import body_slimmer
19
-
20
- MD_SEPERATOR = "\n---\n\n"
19
+ from pyegeria.output_formatter import (
20
+ make_preamble,
21
+ make_md_attribute,
22
+ format_for_markdown_table,
23
+ generate_entity_md,
24
+ generate_entity_md_table,
25
+ generate_entity_dict,
26
+ generate_output,
27
+ MD_SEPARATOR
28
+ )
21
29
 
22
30
 
23
31
  class GlossaryBrowser(Client):
24
32
  """
25
33
  GlossaryBrowser is a class that extends the Client class. It provides methods to search and retrieve glossaries,
26
- terms and categories.
34
+ terms, and categories.
27
35
 
28
36
  Attributes:
29
37
 
@@ -48,75 +56,14 @@ class GlossaryBrowser(Client):
48
56
 
49
57
  Client.__init__(self, view_server, platform_url, user_id, user_pwd, token)
50
58
 
51
- def make_preamble(self, obj_type, search_string, output_format: str = 'MD') -> tuple[str, str | None]:
52
- """
53
- Creates a preamble string and an elements action based on the given object type, search string,
54
- and output format. The preamble provides a descriptive header based on the intent: To make a form,
55
- a report, or unadorned Markdown. The element action specifies the action to be taken on the object type.
56
-
57
- Args:
58
- obj_type: The type of object being updated or reported on (e.g., "Product", "Category").
59
- search_string: The search string used to filter objects. Defaults to "All Terms" if None.
60
- output_format: A format identifier determining the output structure.
61
- JSON - output standard json
62
- MD - output standard markdown with no preamble
63
- FORM - output markdown with a preamble for a form
64
- REPORT - output markdown with a preamble for a report
65
-
66
- Returns:
67
- tuple: A tuple containing:
68
- - A string representing the formatted update or report preamble.
69
- - A string or None indicating the action description for the elements,
70
- depending on the output format.
71
- """
72
- search_string = search_string if search_string else "All Elements"
73
- elements_action = "Update " + obj_type
74
- if output_format == "FORM":
75
- preamble = (f"\n# Update {obj_type} Form - created at {datetime.now().strftime('%Y-%m-%d %H:%M')}\n"
76
- f"\t {obj_type} found from the search string: `{search_string}`\n\n")
77
-
78
- return preamble, elements_action
79
- elif output_format == "REPORT":
80
- elements_md = (f"# {obj_type} Report - created at {datetime.now().strftime('%Y-%m-%d %H:%M')}\n"
81
- f"\t{obj_type} found from the search string: `{search_string}`\n\n")
82
- elements_action = None
83
- return elements_md, elements_action
84
-
85
- else:
86
- return "\n", elements_action
87
-
88
- def make_md_attribute(self, attribute_name: str, attribute_value: str, output_type: str) -> str | None:
89
- output = ""
90
- attribute_value = attribute_value.strip() if attribute_value else ""
91
- attribute_title = attribute_name.title() if attribute_name else ""
92
- if output_type in ["FORM", "MD"]:
93
- output = f"## {attribute_title}\n{attribute_value}\n\n"
94
- elif output_type == "REPORT":
95
- if attribute_value:
96
- output = f"## {attribute_title}\n{attribute_value}\n\n"
97
- return output
98
-
99
- def _format_for_markdown_table(self, text: str) -> str:
100
- """
101
- Format text for markdown tables by replacing newlines with spaces and escaping pipe characters.
102
-
103
- Args:
104
- text (str): The text to format
105
-
106
- Returns:
107
- str: Formatted text safe for markdown tables
108
- """
109
- if not text:
110
- return ""
111
- # Replace newlines with spaces and escape pipe characters
112
- return text.replace("\n", " ").replace("|", "\\|")
113
59
 
114
- def _extract_glossary_properties(self, element: dict) -> dict:
60
+ def _extract_glossary_properties(self, element: dict, output_format: str = None) -> dict:
115
61
  """
116
62
  Extract common properties from a glossary element.
117
63
 
118
64
  Args:
119
65
  element (dict): The glossary element
66
+ output_format (str, optional): The output format (FORM, REPORT, etc.)
120
67
 
121
68
  Returns:
122
69
  dict: Dictionary of extracted properties
@@ -142,11 +89,18 @@ class GlossaryBrowser(Client):
142
89
  category_names = cat_md_display.rstrip(',')
143
90
  category_qualified_names = cat_md_qn.rstrip(',')
144
91
 
145
- return {
92
+ result = {
146
93
  'guid': guid, 'properties': properties, 'display_name': display_name, 'description': description,
147
- 'language': language, 'usage': usage, 'qualified_name': qualified_name, 'categories_names': category_names,
148
- 'categories_qualified_names': category_qualified_names
149
- }
94
+ 'language': language, 'usage': usage, 'qualified_name': qualified_name
95
+ }
96
+
97
+ # Include appropriate category information based on output format
98
+ if output_format == 'FORM':
99
+ result['categories_qualified_names'] = category_qualified_names
100
+ else:
101
+ result['categories_names'] = category_names
102
+
103
+ return result
150
104
 
151
105
  def _generate_entity_md(self, elements: list, elements_action: str, output_format: str, entity_type: str,
152
106
  extract_properties_func, get_additional_props_func=None) -> str:
@@ -164,55 +118,14 @@ class GlossaryBrowser(Client):
164
118
  Returns:
165
119
  str: Markdown representation
166
120
  """
167
- elements_md = ""
168
-
169
- for element in elements:
170
- props = extract_properties_func(element)
171
-
172
- # Get additional properties if function is provided
173
- additional_props = {}
174
- if get_additional_props_func:
175
- additional_props = get_additional_props_func(element, props['guid'], output_format)
176
-
177
- # Format header based on output format
178
- if output_format in ['FORM', 'MD']:
179
- elements_md += f"# {elements_action}\n\n"
180
- elements_md += f"## {entity_type} Name \n\n{props['display_name']}\n\n"
181
- elif output_format == 'REPORT':
182
- elements_md += f"# {entity_type} Name: {props['display_name']}\n\n"
183
- else:
184
- elements_md += f"## {entity_type} Name \n\n{props['display_name']}\n\n"
185
-
186
- # Add common attributes
187
- for key, value in props.items():
188
- if key not in ['guid', 'properties', 'display_name']:
189
- # Handle categories based on output format
190
- if key == 'categories_qualified_names':
191
- if output_format == 'FORM':
192
- elements_md += self.make_md_attribute("Category Names", value, output_format)
193
- elif output_format != 'REPORT': # Include for all formats except REPORT
194
- elements_md += self.make_md_attribute(key.replace('_', ' '), value, output_format)
195
- elif key == 'categories_names':
196
- if output_format == 'REPORT':
197
- elements_md += self.make_md_attribute("Category Names", value, output_format)
198
- elif output_format != 'FORM': # Include for all formats except FORM
199
- elements_md += self.make_md_attribute(key.replace('_', ' '), value, output_format)
200
- else:
201
- elements_md += self.make_md_attribute(key.replace('_', ' '), value, output_format)
202
-
203
- # Add additional properties
204
- for key, value in additional_props.items():
205
- elements_md += self.make_md_attribute(key.replace('_', ' '), value, output_format)
206
-
207
- # Add GUID
208
- # elements_md += self.make_md_attribute("qualified name", props['qualified_name'], output_format)
209
- elements_md += self.make_md_attribute("GUID", props['guid'], output_format)
210
-
211
- # Add separator if not the last element
212
- if element != elements[-1]:
213
- elements_md += MD_SEPERATOR
214
-
215
- return elements_md
121
+ return generate_entity_md(
122
+ elements=elements,
123
+ elements_action=elements_action,
124
+ output_format=output_format,
125
+ entity_type=entity_type,
126
+ extract_properties_func=extract_properties_func,
127
+ get_additional_props_func=get_additional_props_func
128
+ )
216
129
 
217
130
  def _generate_glossary_md(self, elements: list, elements_action: str, output_format: str) -> str:
218
131
  """
@@ -226,9 +139,12 @@ class GlossaryBrowser(Client):
226
139
  Returns:
227
140
  str: Markdown representation
228
141
  """
142
+ # Store the current output format for use by _extract_glossary_properties_with_format
143
+ self._current_output_format = output_format
144
+
229
145
  return self._generate_entity_md(elements=elements, elements_action=elements_action, output_format=output_format,
230
146
  entity_type="Glossary",
231
- extract_properties_func=self._extract_glossary_properties)
147
+ extract_properties_func=self._extract_glossary_properties_with_format)
232
148
 
233
149
  def _generate_entity_md_table(self, elements: list, search_string: str, entity_type: str, extract_properties_func,
234
150
  columns: list, get_additional_props_func=None, output_format: str = 'LIST') -> str:
@@ -247,54 +163,15 @@ class GlossaryBrowser(Client):
247
163
  Returns:
248
164
  str: Markdown table
249
165
  """
250
- # Create table header
251
-
252
- # Handle pluralization - if entity_type ends with 'y', use 'ies' instead of 's'
253
- entity_type_plural = f"{entity_type[:-1]}ies" if entity_type.endswith('y') else f"{entity_type}s"
254
-
255
- elements_md = f"# {entity_type_plural} Table\n\n"
256
- elements_md += f"{entity_type_plural} found from the search string: `{search_string}`\n\n"
257
-
258
- # Add column headers
259
- header_row = "| "
260
- separator_row = "|"
261
- for column in columns:
262
- header_row += f"{column['name']} | "
263
- separator_row += "-------------|"
264
-
265
- elements_md += header_row + "\n"
266
- elements_md += separator_row + "\n"
267
-
268
- # Add rows
269
- for element in elements:
270
- props = extract_properties_func(element)
271
-
272
- # Get additional properties if function is provided
273
- additional_props = {}
274
- if get_additional_props_func:
275
- additional_props = get_additional_props_func(element, props['guid'], output_format)
276
-
277
- # Build row
278
- row = "| "
279
- for column in columns:
280
- key = column['key']
281
- value = ""
282
-
283
- # Check if the key is in props or additional_props
284
- if key in props:
285
- value = props[key]
286
- elif key in additional_props:
287
- value = additional_props[key]
288
-
289
- # Format the value if needed
290
- if 'format' in column and column['format']:
291
- value = self._format_for_markdown_table(value)
292
-
293
- row += f"{value} | "
294
-
295
- elements_md += row + "\n"
296
-
297
- return elements_md
166
+ return generate_entity_md_table(
167
+ elements=elements,
168
+ search_string=search_string,
169
+ entity_type=entity_type,
170
+ extract_properties_func=extract_properties_func,
171
+ columns=columns,
172
+ get_additional_props_func=get_additional_props_func,
173
+ output_format=output_format
174
+ )
298
175
 
299
176
  def _generate_glossary_md_table(self, elements: list, search_string: str) -> str:
300
177
  """
@@ -307,6 +184,9 @@ class GlossaryBrowser(Client):
307
184
  Returns:
308
185
  str: Markdown table
309
186
  """
187
+ # Store the current output format for use by _extract_glossary_properties_with_format
188
+ self._current_output_format = 'LIST' # Tables use LIST format
189
+
310
190
  columns = [{'name': 'Glossary Name', 'key': 'display_name'},
311
191
  {'name': 'Qualified Name', 'key': 'qualified_name'},
312
192
  {'name': 'Language', 'key': 'language', 'format': True},
@@ -315,7 +195,7 @@ class GlossaryBrowser(Client):
315
195
  {'name': 'Categories', 'key': 'categories_names', 'format': True}, ]
316
196
 
317
197
  return self._generate_entity_md_table(elements=elements, search_string=search_string, entity_type="Glossary",
318
- extract_properties_func=self._extract_glossary_properties,
198
+ extract_properties_func=self._extract_glossary_properties_with_format,
319
199
  columns=columns)
320
200
 
321
201
  def _generate_entity_dict(self, elements: list, extract_properties_func, get_additional_props_func=None,
@@ -334,34 +214,14 @@ class GlossaryBrowser(Client):
334
214
  Returns:
335
215
  list: List of entity dictionaries
336
216
  """
337
- result = []
338
-
339
- for element in elements:
340
- props = extract_properties_func(element)
341
-
342
- # Get additional properties if function is provided
343
- additional_props = {}
344
- if get_additional_props_func:
345
- additional_props = get_additional_props_func(element, props['guid'], output_format)
346
-
347
- # Create entity dictionary
348
- entity_dict = {}
349
-
350
- # Add properties based on include/exclude lists
351
- for key, value in props.items():
352
- if key != 'properties': # Skip the raw properties object
353
- if (include_keys is None or key in include_keys) and (
354
- exclude_keys is None or key not in exclude_keys):
355
- entity_dict[key] = value
356
-
357
- # Add additional properties
358
- for key, value in additional_props.items():
359
- if (include_keys is None or key in include_keys) and (exclude_keys is None or key not in exclude_keys):
360
- entity_dict[key] = value
361
-
362
- result.append(entity_dict)
363
-
364
- return result
217
+ return generate_entity_dict(
218
+ elements=elements,
219
+ extract_properties_func=extract_properties_func,
220
+ get_additional_props_func=get_additional_props_func,
221
+ include_keys=include_keys,
222
+ exclude_keys=exclude_keys,
223
+ output_format=output_format
224
+ )
365
225
 
366
226
  def _generate_glossary_dict(self, elements: list, output_format: str = 'DICT') -> list:
367
227
  """
@@ -374,8 +234,25 @@ class GlossaryBrowser(Client):
374
234
  Returns:
375
235
  list: List of glossary dictionaries
376
236
  """
377
- return self._generate_entity_dict(elements=elements, extract_properties_func=self._extract_glossary_properties,
378
- exclude_keys=['properties', 'categories_qualified_names'], output_format=output_format)
237
+ # Store the current output format for use by _extract_glossary_properties_with_format
238
+ self._current_output_format = output_format
239
+
240
+ return self._generate_entity_dict(elements=elements, extract_properties_func=self._extract_glossary_properties_with_format,
241
+ exclude_keys=['properties'], output_format=output_format)
242
+
243
+ def _extract_glossary_properties_with_format(self, element: dict) -> dict:
244
+ """
245
+ Wrapper function for _extract_glossary_properties that passes the current output format.
246
+ This is used internally by generate_glossaries_md.
247
+
248
+ Args:
249
+ element (dict): The glossary element
250
+
251
+ Returns:
252
+ dict: Dictionary of extracted properties
253
+ """
254
+ # The output_format is stored as an instance variable during generate_glossaries_md
255
+ return self._extract_glossary_properties(element, self._current_output_format)
379
256
 
380
257
  def generate_glossaries_md(self, elements: list | dict, search_string: str,
381
258
  output_format: str = 'MD') -> str | list:
@@ -390,25 +267,27 @@ class GlossaryBrowser(Client):
390
267
  Returns:
391
268
  str | list: Markdown string or list of dictionaries depending on output_format
392
269
  """
393
- elements_md, elements_action = self.make_preamble(obj_type="Glossary", search_string=search_string,
394
- output_format=output_format)
395
- if isinstance(elements, dict):
396
- elements = [elements]
397
-
398
- if search_string is None or search_string == '':
399
- search_string = "All"
400
-
401
- # If output format is LIST, create a markdown table
402
- if output_format == 'LIST':
403
- return self._generate_glossary_md_table(elements, search_string)
404
-
405
- # If output format is DICT, return a dictionary structure
406
- elif output_format == 'DICT':
407
- return self._generate_glossary_dict(elements, output_format)
408
-
409
- # Original implementation for other formats (MD, FORM, REPORT)
410
- elements_md += self._generate_glossary_md(elements, elements_action, output_format)
411
- return elements_md
270
+ # Store the current output format for use by _extract_glossary_properties_with_format
271
+ self._current_output_format = output_format
272
+
273
+ # Define columns for LIST format
274
+ columns = [
275
+ {'name': 'Glossary Name', 'key': 'display_name'},
276
+ {'name': 'Qualified Name', 'key': 'qualified_name'},
277
+ {'name': 'Language', 'key': 'language', 'format': True},
278
+ {'name': 'Description', 'key': 'description', 'format': True},
279
+ {'name': 'Usage', 'key': 'usage', 'format': True},
280
+ {'name': 'Categories', 'key': 'categories_names', 'format': True},
281
+ ]
282
+
283
+ return generate_output(
284
+ elements=elements,
285
+ search_string=search_string,
286
+ entity_type="Glossary",
287
+ output_format=output_format,
288
+ extract_properties_func=self._extract_glossary_properties_with_format,
289
+ columns=columns if output_format == 'LIST' else None
290
+ )
412
291
 
413
292
  def _extract_term_properties(self, element: dict) -> dict:
414
293
  """
@@ -621,25 +500,26 @@ class GlossaryBrowser(Client):
621
500
  Returns:
622
501
  str | list: Markdown string or list of dictionaries depending on output_format
623
502
  """
624
- elements_md, elements_action = self.make_preamble(obj_type="Term", search_string=search_string,
625
- output_format=output_format)
626
- if isinstance(elements, dict):
627
- elements = [elements]
628
-
629
- if search_string is None or search_string == '':
630
- search_string = "All"
631
-
632
- # If output format is LIST, create a markdown table
633
- if output_format == 'LIST':
634
- return self._generate_term_md_table(elements, search_string, output_format)
635
-
636
- # If output format is DICT, return a dictionary structure
637
- elif output_format == 'DICT':
638
- return self._generate_term_dict(elements, output_format)
639
-
640
- # Original implementation for other formats (MD, FORM, REPORT)
641
- elements_md += self._generate_term_md(elements, elements_action, output_format)
642
- return elements_md
503
+ # Define columns for LIST format
504
+ columns = [
505
+ {'name': 'Term Name', 'key': 'display_name'},
506
+ {'name': 'Qualified Name', 'key': 'qualified_name'},
507
+ {'name': 'Summary', 'key': 'summary', 'format': True},
508
+ {'name': 'Description', 'key': 'description', 'format': True},
509
+ {'name': 'Status', 'key': 'status'},
510
+ {'name': 'Categories', 'key': 'categories', 'format': True},
511
+ {'name': 'Glossary', 'key': 'glossary_name'},
512
+ ]
513
+
514
+ return generate_output(
515
+ elements=elements,
516
+ search_string=search_string,
517
+ entity_type="Term",
518
+ output_format=output_format,
519
+ extract_properties_func=self._extract_term_properties,
520
+ get_additional_props_func=self._get_term_additional_properties,
521
+ columns=columns if output_format == 'LIST' else None
522
+ )
643
523
 
644
524
  def _get_parent_category_name(self, category_guid: str, output_format: str = None) -> str:
645
525
  """
@@ -910,25 +790,29 @@ class GlossaryBrowser(Client):
910
790
  Returns:
911
791
  str | list: Markdown string or list of dictionaries depending on output_format
912
792
  """
913
- elements_md, elements_action = self.make_preamble(obj_type="Categories", search_string=search_string,
914
- output_format=output_format)
915
- if isinstance(elements, dict):
916
- elements = [elements]
917
-
918
- if search_string is None or search_string == '':
919
- search_string = "All"
793
+ # Define columns for LIST format
794
+ columns = [
795
+ {'name': 'Category Name', 'key': 'display_name'},
796
+ {'name': 'Qualified Name', 'key': 'qualified_name'},
797
+ {'name': 'Description', 'key': 'description', 'format': True},
798
+ {'name': 'Parent Category', 'key': 'parent_category', 'format': True},
799
+ {'name': 'Subcategories', 'key': 'subcategories', 'format': True},
800
+ {'name': 'Glossary', 'key': 'glossary_name'},
801
+ ]
920
802
 
921
- # If output format is LIST, create a markdown table
922
- if output_format == 'LIST':
923
- return self._generate_category_md_table(elements, search_string, output_format)
924
-
925
- # If output format is DICT, return a dictionary structure
926
- elif output_format == 'DICT':
927
- return self._generate_category_dict(elements, output_format)
803
+ # Create a wrapper function to pass output_format to _get_category_additional_properties
804
+ def get_additional_props_with_format(element, category_guid, output_format_param=None):
805
+ return self._get_category_additional_properties(element, category_guid, output_format)
928
806
 
929
- # Original implementation for other formats (MD, FORM, REPORT)
930
- elements_md += self._generate_category_md(elements, elements_action, output_format)
931
- return elements_md
807
+ return generate_output(
808
+ elements=elements,
809
+ search_string=search_string,
810
+ entity_type="Category",
811
+ output_format=output_format,
812
+ extract_properties_func=self._extract_category_properties,
813
+ get_additional_props_func=get_additional_props_with_format,
814
+ columns=columns if output_format == 'LIST' else None
815
+ )
932
816
 
933
817
  #
934
818
  # Get Valid Values for Enumerations
@@ -1096,7 +980,7 @@ class GlossaryBrowser(Client):
1096
980
  page_size: int = None, output_format: str = 'JSON') -> list | str:
1097
981
  """Retrieve the list of glossary metadata elements that contain the search string. Async version.
1098
982
  The search string is located in the request body and is interpreted as a plain string.
1099
- The request parameters, startsWith, endsWith and ignoreCase can be used to allow a fuzzy search.
983
+ The request parameters, startsWith, endsWith, and ignoreCase can be used to allow a fuzzy search.
1100
984
 
1101
985
  Parameters
1102
986
  ----------
@@ -1194,7 +1078,7 @@ class GlossaryBrowser(Client):
1194
1078
  page_size: int = None, output_format: str = "JSON") -> list | str:
1195
1079
  """Retrieve the list of glossary metadata elements that contain the search string.
1196
1080
  The search string is located in the request body and is interpreted as a plain string.
1197
- The request parameters, startsWith, endsWith and ignoreCase can be used to allow a fuzzy search.
1081
+ The request parameters, startsWith, endsWith, and ignoreCase can be used to allow a fuzzy search.
1198
1082
 
1199
1083
  Parameters
1200
1084
  ----------
@@ -1636,7 +1520,7 @@ class GlossaryBrowser(Client):
1636
1520
  output_format: str = "JSON") -> list | str:
1637
1521
  """Retrieve the list of glossary category metadata elements that contain the search string.
1638
1522
  The search string is located in the request body and is interpreted as a plain string.
1639
- The request parameters, startsWith, endsWith and ignoreCase can be used to allow a fuzzy search.
1523
+ The request parameters, startsWith, endsWith, and ignoreCase can be used to allow a fuzzy search.
1640
1524
  Async version.
1641
1525
 
1642
1526
  Parameters
@@ -1721,7 +1605,7 @@ class GlossaryBrowser(Client):
1721
1605
  page_size: int = None, output_format: str = "JSON") -> list | str:
1722
1606
  """Retrieve the list of glossary category metadata elements that contain the search string.
1723
1607
  The search string is located in the request body and is interpreted as a plain string.
1724
- The request parameters, startsWith, endsWith and ignoreCase can be used to allow a fuzzy search.
1608
+ The request parameters, startsWith, endsWith, and ignoreCase can be used to allow a fuzzy search.
1725
1609
 
1726
1610
  Parameters
1727
1611
  ----------
@@ -3610,7 +3494,7 @@ class GlossaryBrowser(Client):
3610
3494
  Notes
3611
3495
  -----
3612
3496
  The search string is located in the request body and is interpreted as a plain string.
3613
- The request parameters, startsWith, endsWith and ignoreCase can be used to allow a fuzzy search.
3497
+ The request parameters, startsWith, endsWith, and ignoreCase can be used to allow a fuzzy search.
3614
3498
  The request body also supports the specification of a glossaryGUID to restrict the search to within a single
3615
3499
  glossary.
3616
3500
  """
@@ -3713,7 +3597,7 @@ class GlossaryBrowser(Client):
3713
3597
  Notes
3714
3598
  -----
3715
3599
  The search string is located in the request body and is interpreted as a plain string.
3716
- The request parameters, startsWith, endsWith and ignoreCase can be used to allow a fuzzy search.
3600
+ The request parameters, startsWith, endsWith, and ignoreCase can be used to allow a fuzzy search.
3717
3601
  The request body also supports the specification of a glossaryGUID to restrict the search to within a
3718
3602
  single glossary.
3719
3603
  """
@@ -17,7 +17,7 @@
17
17
  # ERROR = "ERROR-> "
18
18
  # INFO = "INFO- "
19
19
  # WARNING = "WARNING-> "
20
- # pre_command = "\n---\n==> Processing command:"
20
+ # pre_command = "\n---\n==> Processing object_action:"
21
21
  #
22
22
  #
23
23
  #