pyegeria 5.3.10__tar.gz → 5.4.0.dev2__tar.gz

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 (207) hide show
  1. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/PKG-INFO +2 -1
  2. pyegeria-5.4.0.dev2/commands/cat/debug_log.2025-06-05_20-24-18_123924.log.zip +0 -0
  3. pyegeria-5.4.0.dev2/commands/cat/debug_log.2025-06-10_08-45-03_929921.log.zip +0 -0
  4. pyegeria-5.4.0.dev2/commands/cat/debug_log.2025-06-11_09-57-21_247890.log.zip +0 -0
  5. pyegeria-5.4.0.dev2/commands/cat/debug_log.2025-06-12_16-14-31_212042.log.zip +0 -0
  6. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/dr_egeria_md.py +32 -5
  7. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_collections.py +10 -4
  8. pyegeria-5.4.0.dev2/commands/cat/list_data_designer.py +171 -0
  9. pyegeria-5.4.0.dev2/md_Processing/data/commands.json +7070 -0
  10. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/__init__.py +7 -2
  11. pyegeria-5.4.0.dev2/md_processing/data/commands.json +7070 -0
  12. pyegeria-5.4.0.dev2/md_processing/md_commands/data_designer_commands.py +1465 -0
  13. pyegeria-5.4.0.dev2/md_processing/md_commands/solution_architect_commands.py +985 -0
  14. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_processing_utils/common_md_proc_utils.py +262 -89
  15. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_processing_utils/common_md_utils.py +11 -4
  16. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_processing_utils/md_processing_constants.py +18 -16
  17. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/_client.py +39 -0
  18. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/classification_manager_omvs.py +1 -1
  19. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/collection_manager_omvs.py +248 -188
  20. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/data_designer_omvs.py +217 -9
  21. pyegeria-5.4.0.dev2/pyegeria/governance_officer_omvs.py +2349 -0
  22. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/output_formatter.py +24 -12
  23. pyegeria-5.4.0.dev2/pyegeria/solution_architect_omvs.py +5291 -0
  24. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/utils.py +15 -2
  25. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyproject.toml +6 -1
  26. pyegeria-5.3.10/commands/cat/.DS_Store +0 -0
  27. pyegeria-5.3.10/md_Processing/data/commands.json +0 -3252
  28. pyegeria-5.3.10/md_processing/data/commands.json +0 -3252
  29. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  30. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  31. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  32. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  33. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  34. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  35. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  36. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  37. pyegeria-5.3.10/md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  38. pyegeria-5.3.10/md_processing/dr_egeria_inbox/cat_test.md +0 -100
  39. pyegeria-5.3.10/md_processing/dr_egeria_inbox/data_field.md +0 -54
  40. pyegeria-5.3.10/md_processing/dr_egeria_inbox/data_spec.md +0 -77
  41. pyegeria-5.3.10/md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
  42. pyegeria-5.3.10/md_processing/dr_egeria_inbox/data_test.md +0 -86
  43. pyegeria-5.3.10/md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  44. pyegeria-5.3.10/md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  45. pyegeria-5.3.10/md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -313
  46. pyegeria-5.3.10/md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  47. pyegeria-5.3.10/md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  48. pyegeria-5.3.10/md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
  49. pyegeria-5.3.10/md_processing/dr_egeria_inbox/rel.md +0 -8
  50. pyegeria-5.3.10/md_processing/dr_egeria_inbox/sb.md +0 -119
  51. pyegeria-5.3.10/md_processing/dr_egeria_inbox/search_test.md +0 -39
  52. pyegeria-5.3.10/md_processing/dr_egeria_inbox/solution-components.md +0 -154
  53. pyegeria-5.3.10/md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  54. pyegeria-5.3.10/md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  55. pyegeria-5.3.10/md_processing/dr_egeria_inbox/t1.md +0 -0
  56. pyegeria-5.3.10/md_processing/dr_egeria_inbox/t2.md +0 -268
  57. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md +0 -94
  58. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md +0 -88
  59. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md +0 -56
  60. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md +0 -103
  61. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md +0 -94
  62. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md +0 -96
  63. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md +0 -100
  64. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md +0 -88
  65. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md +0 -91
  66. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md +0 -91
  67. pyegeria-5.3.10/md_processing/dr_egeria_outbox/processed-2025-05-19 14:04-data_test.md +0 -91
  68. pyegeria-5.3.10/md_processing/md_commands/blueprint_commands.py +0 -303
  69. pyegeria-5.3.10/md_processing/md_commands/data_designer_commands.py +0 -1182
  70. pyegeria-5.3.10/pyegeria/.DS_Store +0 -0
  71. pyegeria-5.3.10/pyegeria/solution_architect_omvs.py +0 -2156
  72. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/LICENSE +0 -0
  73. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/README.md +0 -0
  74. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/Dr-Egeria_md-orig.py +0 -0
  75. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/README.md +0 -0
  76. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/__init__.py +0 -0
  77. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/dr_egeria_jupyter.py +0 -0
  78. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/exp_list_glossaries.py +0 -0
  79. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/get_asset_graph.py +0 -0
  80. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/get_collection.py +0 -0
  81. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/get_project_dependencies.py +0 -0
  82. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/get_project_structure.py +0 -0
  83. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/get_tech_type_elements.py +0 -0
  84. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/glossary_actions.py +0 -0
  85. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_assets.py +0 -0
  86. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_categories.py +0 -0
  87. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_cert_types.py +0 -0
  88. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_data_structures.py +0 -0
  89. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_deployed_catalogs.py +0 -0
  90. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_deployed_database_schemas.py +0 -0
  91. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_deployed_databases.py +0 -0
  92. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_deployed_servers.py +0 -0
  93. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_glossaries.py +0 -0
  94. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_projects.py +0 -0
  95. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_tech_type_elements.py +0 -0
  96. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_tech_types.py +0 -0
  97. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_terms.py +0 -0
  98. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_todos.py +0 -0
  99. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cat/list_user_ids.py +0 -0
  100. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/__init__.py +0 -0
  101. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/egeria.py +0 -0
  102. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/egeria_cat.py +0 -0
  103. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/egeria_login_tui.py +0 -0
  104. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/egeria_my.py +0 -0
  105. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/egeria_ops.py +0 -0
  106. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/egeria_tech.py +0 -0
  107. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/ops_config.py +0 -0
  108. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/cli/txt_custom_v2.tcss +0 -0
  109. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/README.md +0 -0
  110. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/__init__.py +0 -0
  111. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/list_my_profile.py +0 -0
  112. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/list_my_roles.py +0 -0
  113. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/monitor_my_todos.py +0 -0
  114. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/monitor_open_todos.py +0 -0
  115. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/my/todo_actions.py +0 -0
  116. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/README.md +0 -0
  117. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/__init__.py +0 -0
  118. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/gov_server_actions.py +0 -0
  119. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/list_archives.py +0 -0
  120. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/list_catalog_targets.py +0 -0
  121. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/load_archive.py +0 -0
  122. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_asset_events.py +0 -0
  123. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_engine_activity.py +0 -0
  124. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_engine_activity_c.py +0 -0
  125. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_gov_eng_status.py +0 -0
  126. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_integ_daemon_status.py +0 -0
  127. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_platform_status.py +0 -0
  128. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_server_startup.py +0 -0
  129. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/monitor_server_status.py +0 -0
  130. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/orig_monitor_server_list.py +0 -0
  131. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/orig_monitor_server_status.py +0 -0
  132. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/refresh_integration_daemon.py +0 -0
  133. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/restart_integration_daemon.py +0 -0
  134. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/table_integ_daemon_status.py +0 -0
  135. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/ops/x_engine_actions.py +0 -0
  136. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/README.md +0 -0
  137. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/__init__.py +0 -0
  138. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/generic_actions.py +0 -0
  139. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/get_element_info.py +0 -0
  140. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/get_guid_info.py +0 -0
  141. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/get_tech_details.py +0 -0
  142. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/get_tech_type_template.py +0 -0
  143. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_all_om_type_elements.py +0 -0
  144. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_all_om_type_elements_x.py +0 -0
  145. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_all_related_elements.py +0 -0
  146. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_anchored_elements.py +0 -0
  147. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_asset_types.py +0 -0
  148. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_elements_by_classification_by_property_value.py +0 -0
  149. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_elements_by_property_value.py +0 -0
  150. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_elements_by_property_value_x.py +0 -0
  151. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_elements_for_classification.py +0 -0
  152. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_gov_action_processes.py +0 -0
  153. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_information_supply_chains.py +0 -0
  154. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_registered_services.py +0 -0
  155. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_related_elements_with_prop_value.py +0 -0
  156. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_related_specification.py +0 -0
  157. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_relationship_types.py +0 -0
  158. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_relationships.py +0 -0
  159. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_solution_blueprints.py +0 -0
  160. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_solution_components.py +0 -0
  161. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_solution_roles.py +0 -0
  162. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_tech_templates.py +0 -0
  163. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/list_valid_metadata_values.py +0 -0
  164. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/table_tech_templates.py +0 -0
  165. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/commands/tech/x_list_related_elements.py +0 -0
  166. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb +0 -0
  167. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_commands/__init__.py +0 -0
  168. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_commands/glossary_commands.py +0 -0
  169. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_commands/project_commands.py +0 -0
  170. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_processing_utils/__init__.py +0 -0
  171. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_processing_utils/extraction_utils.py +0 -0
  172. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/md_processing/md_processing_utils/message_constants.py +0 -0
  173. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/README.md +0 -0
  174. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/__init__.py +0 -0
  175. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/_deprecated_gov_engine.py +0 -0
  176. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/_exceptions.py +0 -0
  177. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/_globals.py +0 -0
  178. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/_validators.py +0 -0
  179. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/asset_catalog_omvs.py +0 -0
  180. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/automated_curation_omvs.py +0 -0
  181. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/core_omag_server_config.py +0 -0
  182. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/create_tech_guid_lists.py +0 -0
  183. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/dr.egeria spec.md +0 -0
  184. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/egeria_cat_client.py +0 -0
  185. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/egeria_client.py +0 -0
  186. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/egeria_config_client.py +0 -0
  187. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/egeria_my_client.py +0 -0
  188. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/egeria_tech_client.py +0 -0
  189. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/feedback_manager_omvs.py +0 -0
  190. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/full_omag_server_config.py +0 -0
  191. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/glossary_browser_omvs.py +0 -0
  192. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/glossary_manager_omvs.py +0 -0
  193. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/m_test.py +0 -0
  194. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/md_processing_helpers.py +0 -0
  195. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/md_processing_utils.py +0 -0
  196. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/md_processing_utils_orig.py +0 -0
  197. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/mermaid_utilities.py +0 -0
  198. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/metadata_explorer_omvs.py +0 -0
  199. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/my_profile_omvs.py +0 -0
  200. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/platform_services.py +0 -0
  201. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/project_manager_omvs.py +0 -0
  202. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/registered_info.py +0 -0
  203. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/runtime_manager_omvs.py +0 -0
  204. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/server_operations.py +0 -0
  205. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/template_manager_omvs.py +0 -0
  206. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/valid_metadata_omvs.py +0 -0
  207. {pyegeria-5.3.10 → pyegeria-5.4.0.dev2}/pyegeria/x_action_author_omvs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyegeria
3
- Version: 5.3.10
3
+ Version: 5.4.0.dev2
4
4
  Summary: A python client for Egeria
5
5
  License: Apache 2.0
6
6
  Keywords: egeria,metadata,governance
@@ -16,6 +16,7 @@ Requires-Dist: click
16
16
  Requires-Dist: httpx
17
17
  Requires-Dist: jupyter
18
18
  Requires-Dist: jupyter-notebook-parser (>=0.1.4,<0.2.0)
19
+ Requires-Dist: loguru (>=0.7.3,<0.8.0)
19
20
  Requires-Dist: mermaid-py
20
21
  Requires-Dist: psycopg2-binary (>=2.9.9,<3.0.0)
21
22
  Requires-Dist: pytest (>=8.3.5,<9.0.0)
@@ -1,9 +1,14 @@
1
1
  """
2
2
  This is an ongoing experiment in parsing and playing with Freddie docs
3
3
  """
4
- import os
4
+ import os, sys
5
5
  from datetime import datetime
6
-
6
+ from loguru import logger
7
+ log_format = "{time} | {level} | {function} | {line} | {message} | {extra}"
8
+ logger.remove()
9
+ logger.add(sys.stderr, level="SUCCESS", format=log_format, colorize=True)
10
+ logger.add("debug_log.log", rotation="1 day", retention="1 week", compression="zip", level="TRACE", format=log_format,
11
+ colorize=True)
7
12
  import click
8
13
  from rich import print
9
14
  from rich.console import Console
@@ -15,12 +20,14 @@ from md_processing import (extract_command, process_glossary_upsert_command, pro
15
20
  process_category_list_command, process_glossary_list_command, process_term_history_command,
16
21
  process_glossary_structure_command, process_term_revision_history_command,
17
22
  process_create_term_term_relationship_command, process_term_details_command,
18
- )
23
+ process_information_supply_chain_upsert_command, process_information_supply_chain_segment_upsert_command,
24
+ process_information_supply_chain_link_unlink_command,process_sol_arch_list_command)
19
25
  from md_processing.md_commands.data_designer_commands import (process_data_spec_upsert_command,
20
26
  process_data_dict_upsert_command,
21
27
  process_data_dict_list_command,
22
28
  process_data_field_upsert_command,
23
- process_data_structure_upsert_command)
29
+ process_data_structure_upsert_command,
30
+ process_data_class_upsert_command)
24
31
 
25
32
  from pyegeria import EgeriaTech
26
33
 
@@ -53,10 +60,12 @@ EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_eger
53
60
  @click.option("--url", default=EGERIA_VIEW_SERVER_URL, help="URL of Egeria platform to connect to")
54
61
  @click.option("--userid", default=EGERIA_USER, help="Egeria user")
55
62
  @click.option("--user_pass", default=EGERIA_USER_PASSWORD, help="Egeria user password")
63
+ @logger.catch
56
64
  def process_markdown_file(file_path: str, directive: str, server: str, url: str, userid: str, user_pass: str, ) -> None:
57
65
  """
58
66
  Process a markdown file by parsing and executing Dr. Egeria md_commands. Write output to a new file.
59
67
  """
68
+
60
69
  cmd_list = command_list
61
70
  console = Console(width=int(EGERIA_WIDTH))
62
71
  client = EgeriaTech(server, url, user_id=userid)
@@ -64,7 +73,8 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
64
73
 
65
74
  updated = False
66
75
  full_file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_INBOX_PATH, file_path)
67
- print(f"Processing Markdown File: {full_file_path}")
76
+ logger.info("\n\n====================================================\n\n")
77
+ logger.info(f"Processing Markdown File: {full_file_path}")
68
78
  try:
69
79
  with open(full_file_path, 'r') as f:
70
80
  lines = f.readlines()
@@ -121,8 +131,23 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
121
131
  elif potential_command in ["Create Blueprint", "Update Blueprint", "Create Solution Blueprint",
122
132
  "Update Solution Blueprint"]:
123
133
  result = process_blueprint_upsert_command(client, current_block, directive)
134
+ elif potential_command in ["View Solution Blueprints", "View Blueprint", "View Solution Blueprint"]:
135
+ result = process_sol_arch_list_command(client, current_block, "Solution Blueprints",directive)
136
+ elif potential_command in ["View Solution Component", "View Solution Components"]:
137
+ result = process_sol_arch_list_command(client, current_block, "Solution Components",directive)
138
+ elif potential_command in ["View Solution Roles", "View Solution Role"]:
139
+ result = process_sol_arch_list_command(client, current_block, "Solution Roles",directive)
140
+ elif potential_command in ["View Information Supply Chain", "View Information Supply Chains"]:
141
+ result = process_sol_arch_list_command(client, current_block, "Information Supply Chains",directive)
124
142
  elif potential_command in ["Create Solution Component", "Update Solution Component"]:
125
143
  result = process_solution_component_upsert_command(client, current_block, directive)
144
+ elif potential_command in ["Create Information Supply Chain", "Update Information Supply Chain"]:
145
+ result = process_information_supply_chain_upsert_command(client, current_block, directive)
146
+ elif potential_command in ["Create Information Supply Chain Segment", "Update Information Supply Chain Segment"]:
147
+ result = process_information_supply_chain_segment_upsert_command(client, current_block, directive)
148
+ elif potential_command in ["Link Segments", "Detach Segments"]:
149
+ result = process_information_supply_chain_link_unlink_command(client, current_block, directive)
150
+
126
151
  elif potential_command in ["Create Data Spec", "Create Data Specification", "Update Data Spec",
127
152
  "Update Data Specification"]:
128
153
  result = process_data_spec_upsert_command(client, current_block, directive)
@@ -133,6 +158,8 @@ def process_markdown_file(file_path: str, directive: str, server: str, url: str,
133
158
  result = process_data_field_upsert_command(client, current_block, directive)
134
159
  elif potential_command in ["Create Data Structure", "Update Data Structure"]:
135
160
  result = process_data_structure_upsert_command(client, current_block, directive)
161
+ elif potential_command in ["Create Data Class", "Update Data Class"]:
162
+ result = process_data_class_upsert_command(client, current_block, directive)
136
163
  elif potential_command in ["View Data Dictionaries", "View Data Dictionary"]:
137
164
  result = process_data_dict_list_command(client, current_block, directive)
138
165
 
@@ -94,7 +94,7 @@ def display_collections(
94
94
  full_file_path = os.path.join(file_path, file_name)
95
95
  os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
96
96
  output = m_client.find_collections(
97
- search_string.strip(), None, False, ends_with=False, ignore_case=True,
97
+ search_string.strip(), None, None, False, ends_with=False, ignore_case=True,
98
98
  output_format=output_format
99
99
  )
100
100
  if output == NO_ELEMENTS_FOUND:
@@ -129,7 +129,7 @@ def display_collections(
129
129
  table.add_column("Members")
130
130
 
131
131
  collections = m_client.find_collections(
132
- search_string.strip(), None, False, ends_with=False, ignore_case=True,
132
+ search_string.strip(), None, None, False, ends_with=False, ignore_case=True,
133
133
  output_format = "DICT"
134
134
  )
135
135
  if type(collections) is list:
@@ -145,8 +145,14 @@ def display_collections(
145
145
  collection_type = collection.get("collectionType", "---")
146
146
  classifications = collection.get("classifications", "---")
147
147
  classifications_md = Markdown(classifications)
148
- members = "\n* ".join(collection.get("members", []))
149
- members_md = Markdown(members)
148
+ members_struct = m_client.get_collection_members(collection_guid=guid)
149
+ member_list = ""
150
+ if isinstance(members_struct, list):
151
+ for member in members_struct:
152
+ member_list = member_list + f"- {member['properties'].get('qualifiedName','---')}\n"
153
+
154
+ # members = "\n* ".join(collection.get("members", []))
155
+ members_md = Markdown(member_list)
150
156
 
151
157
  table.add_row(
152
158
  display_name,
@@ -0,0 +1,171 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ SPDX-License-Identifier: Apache-2.0
4
+ Copyright Contributors to the ODPi Egeria project.
5
+
6
+ List categories for a category.
7
+
8
+
9
+ A simple display for category terms
10
+ """
11
+ import argparse
12
+ import os
13
+ import sys
14
+ import time
15
+
16
+ from rich import box, print
17
+ from rich.console import Console
18
+ from rich.prompt import Prompt
19
+ from rich.table import Table
20
+ from rich.text import Text
21
+ from rich.console import Console
22
+ from rich.markdown import Markdown
23
+
24
+
25
+ from pyegeria import (
26
+ EgeriaTech,
27
+ InvalidParameterException,
28
+ PropertyServerException,
29
+ UserNotAuthorizedException,
30
+ print_exception_response,
31
+ )
32
+
33
+ disable_ssl_warnings = True
34
+
35
+ EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
36
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
37
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
38
+ EGERIA_VIEW_SERVER = os.environ.get("EGERIA_VIEW_SERVER", "view-server")
39
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
40
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
41
+ )
42
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("EGERIA_INTEGRATION_DAEMON", "integration-daemon")
43
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
44
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
45
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
46
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
47
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
48
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "150"))
49
+ EGERIA_category_PATH = os.environ.get("EGERIA_category_PATH", None)
50
+ EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
51
+ EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
52
+ EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
53
+
54
+ console = Console(width=EGERIA_WIDTH)
55
+
56
+
57
+ def display_categories(
58
+ object_type: str,
59
+ search_string: str = "*",
60
+ view_server: str = EGERIA_VIEW_SERVER,
61
+ view_url: str = EGERIA_VIEW_SERVER_URL,
62
+ user: str = EGERIA_USER,
63
+ user_pass: str = EGERIA_USER_PASSWORD,
64
+ jupyter: bool = EGERIA_JUPYTER,
65
+ width: int = EGERIA_WIDTH,
66
+ output_format: str = "TABLE",
67
+ ):
68
+ """Display either a specified category or all categories if the search_string is '*'.
69
+ Parameters
70
+ ----------
71
+ object_type: str
72
+ The type of object to display,
73
+ search_string : str, default is '*'
74
+ The string used to search for categories.
75
+ view_server : str
76
+ The view server name or address where the Egeria services are hosted.
77
+ view_url : str
78
+ The URL of the platform the view server is on.
79
+ user : str
80
+ The user ID for authentication with the Egeria server.
81
+ user_pass : str
82
+ The password for authentication with the Egeria server.
83
+ jupyter : bool, optional
84
+ A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
85
+ width : int, optional
86
+ The width of the console output (default is EGERIA_WIDTH).
87
+ output_format: str, optional, default is 'JSON'
88
+ One of FORM, REPORT, TABLE
89
+ """
90
+ m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
91
+ token = m_client.create_egeria_bearer_token()
92
+
93
+ match object_type:
94
+ case "Data Structure":
95
+ find_proc = m_client.find_data_structures
96
+ case "Data Fields":
97
+ find_proc = m_client.find_data_fields
98
+ case "Data Classes":
99
+ find_proc = m_client.find_data_classes
100
+
101
+ try:
102
+ if output_format == "FORM":
103
+ action = "Update-Form"
104
+ elif output_format == "REPORT":
105
+ action = "Report"
106
+ if output_format != "TABLE":
107
+ file_path = os.path.join(EGERIA_ROOT_PATH, EGERIA_OUTBOX_PATH)
108
+ file_name = f"{object_type}-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
109
+ full_file_path = os.path.join(file_path, file_name)
110
+ os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
111
+ output = m_client.find_proc(search_string, output_format=output_format)
112
+ if output == "NO_ELEMENTSS_FOUND":
113
+ print(f"\n==> No elements found for search string '{search_string}'")
114
+ return
115
+ with open(full_file_path, 'w') as f:
116
+ f.write(output)
117
+ print(f"\n==> Elements output written to {full_file_path}")
118
+ return
119
+ else:
120
+ output = m_client.find_proec(search_string, output_format=output_format)
121
+ console.print(Markdown(output))
122
+ return
123
+
124
+
125
+
126
+
127
+ except (InvalidParameterException, PropertyServerException) as e:
128
+ print_exception_response(e)
129
+ finally:
130
+ m_client.close_session()
131
+
132
+
133
+ def main_structs():
134
+ main(object_type = "Data Structure")
135
+
136
+ def main_fileds():
137
+ main(object_type = "Data Fields")
138
+
139
+ def main_classes():
140
+ main(object_type = "Data Classes")
141
+
142
+ def main(object_type: str):
143
+ parser = argparse.ArgumentParser()
144
+ parser.add_argument("--server", help="Name of the server to display status for")
145
+ parser.add_argument("--url", help="URL Platform to connect to")
146
+ parser.add_argument("--userid", help="User Id")
147
+ parser.add_argument("--password", help="User Password")
148
+
149
+ args = parser.parse_args()
150
+
151
+ server = args.server if args.server is not None else EGERIA_VIEW_SERVER
152
+ url = args.url if args.url is not None else EGERIA_PLATFORM_URL
153
+ userid = args.userid if args.userid is not None else EGERIA_USER
154
+ user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
155
+
156
+ try:
157
+ search_string = Prompt.ask(
158
+ "Enter the category you are searching for or '*' for all:", default="*"
159
+ )
160
+ output_format = Prompt.ask("What output format do you want?", choices=["TABLE", "FORM", "REPORT"],
161
+ default="TABLE")
162
+ object_type = object_type if not None else "Data Structure"
163
+ display_categories(object_type, search_string, server, url, userid,
164
+ user_pass, output_format = output_format)
165
+
166
+ except KeyboardInterrupt:
167
+ pass
168
+
169
+
170
+ if __name__ == "__main__":
171
+ main()