pyegeria 5.4.8.7__tar.gz → 5.4.8.9__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 (261) hide show
  1. {pyegeria-5.4.8.7/pyegeria.egg-info → pyegeria-5.4.8.9}/PKG-INFO +1 -1
  2. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/GeoSpatial Products Example.py +3 -3
  3. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/__init__.py +1 -1
  4. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/data/commands.json +39 -39
  5. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/dr_egeria.py +3 -3
  6. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/feedback_commands.py +58 -83
  7. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/common_md_utils.py +2 -2
  8. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/extraction_utils.py +9 -5
  9. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/md_processing_constants.py +7 -3
  10. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_client_new.py +77 -20
  11. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_exceptions_new.py +19 -11
  12. pyegeria-5.4.8.9/pyegeria/_globals.py +153 -0
  13. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/asset_catalog_omvs.py +2 -2
  14. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/base_report_formats.py +45 -8
  15. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/output_formatter.py +6 -2
  16. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9/pyegeria.egg-info}/PKG-INFO +1 -1
  17. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria.egg-info/top_level.txt +1 -0
  18. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyproject.toml +3 -2
  19. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_asset_catalog_omvs.py +1 -1
  20. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_client_new.py +66 -6
  21. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_solution_architect_omvs.py +5 -5
  22. pyegeria-5.4.8.7/pyegeria/_globals.py +0 -144
  23. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/LICENSE +0 -0
  24. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/MANIFEST.in +0 -0
  25. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/README.md +0 -0
  26. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/__init__.py +0 -0
  27. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/Dr-Egeria_md-orig.py +0 -0
  28. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/__init__.py +0 -0
  29. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/dr_egeria_command_help.py +0 -0
  30. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/dr_egeria_jupyter.py +0 -0
  31. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/dr_egeria_md.py +0 -0
  32. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/exp_list_glossaries.py +0 -0
  33. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/get_asset_graph.py +0 -0
  34. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/get_collection.py +0 -0
  35. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/get_project_dependencies.py +0 -0
  36. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/get_project_structure.py +0 -0
  37. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/get_tech_type_elements.py +0 -0
  38. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/glossary_actions.py +0 -0
  39. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_assets.py +0 -0
  40. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_cert_types.py +0 -0
  41. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_collections.py +0 -0
  42. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_data_designer.py +0 -0
  43. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_data_structures_full.py +0 -0
  44. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_deployed_catalogs.py +0 -0
  45. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_deployed_database_schemas.py +0 -0
  46. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_deployed_databases.py +0 -0
  47. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_deployed_servers.py +0 -0
  48. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_glossaries.py +0 -0
  49. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_projects.py +0 -0
  50. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_tech_type_elements.py +0 -0
  51. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_tech_types.py +0 -0
  52. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_terms.py +0 -0
  53. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_todos.py +0 -0
  54. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/list_user_ids.py +0 -0
  55. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cat/run_report.py +0 -0
  56. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/__init__.py +0 -0
  57. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/egeria.py +0 -0
  58. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/egeria_cat.py +0 -0
  59. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/egeria_login_tui.py +0 -0
  60. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/egeria_my.py +0 -0
  61. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/egeria_ops.py +0 -0
  62. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/egeria_tech.py +0 -0
  63. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/cli/ops_config.py +0 -0
  64. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/my/__init__.py +0 -0
  65. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/my/list_my_profile.py +0 -0
  66. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/my/list_my_roles.py +0 -0
  67. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/my/monitor_my_todos.py +0 -0
  68. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/my/monitor_open_todos.py +0 -0
  69. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/my/todo_actions.py +0 -0
  70. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/__init__.py +0 -0
  71. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/gov_server_actions.py +0 -0
  72. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/list_archives.py +0 -0
  73. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/list_catalog_targets.py +0 -0
  74. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/load_archive.py +0 -0
  75. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_asset_events.py +0 -0
  76. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_engine_activity.py +0 -0
  77. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_engine_activity_c.py +0 -0
  78. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_gov_eng_status.py +0 -0
  79. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_integ_daemon_status.py +0 -0
  80. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_platform_status.py +0 -0
  81. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_server_startup.py +0 -0
  82. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/monitor_server_status.py +0 -0
  83. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/orig_monitor_server_list.py +0 -0
  84. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/orig_monitor_server_status.py +0 -0
  85. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/refresh_integration_daemon.py +0 -0
  86. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/restart_integration_daemon.py +0 -0
  87. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/table_integ_daemon_status.py +0 -0
  88. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/ops/x_engine_actions.py +0 -0
  89. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/__init__.py +0 -0
  90. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/generic_actions.py +0 -0
  91. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/get_element_info.py +0 -0
  92. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/get_guid_info.py +0 -0
  93. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/get_tech_details.py +0 -0
  94. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/get_tech_type_template.py +0 -0
  95. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_all_om_type_elements.py +0 -0
  96. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_all_om_type_elements_x.py +0 -0
  97. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_all_related_elements.py +0 -0
  98. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_anchored_elements.py +0 -0
  99. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_asset_types.py +0 -0
  100. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_elements_by_classification_by_property_value.py +0 -0
  101. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_elements_by_property_value.py +0 -0
  102. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_elements_by_property_value_x.py +0 -0
  103. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_elements_for_classification.py +0 -0
  104. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_gov_action_processes.py +0 -0
  105. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_information_supply_chains.py +0 -0
  106. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_registered_services.py +0 -0
  107. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_related_elements_with_prop_value.py +0 -0
  108. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_related_specification.py +0 -0
  109. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_relationship_types.py +0 -0
  110. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_relationships.py +0 -0
  111. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_solution_blueprints.py +0 -0
  112. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_solution_components.py +0 -0
  113. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_solution_roles.py +0 -0
  114. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_tech_templates.py +0 -0
  115. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/list_valid_metadata_values.py +0 -0
  116. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/table_tech_templates.py +0 -0
  117. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/commands/tech/x_list_related_elements.py +0 -0
  118. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/README.md +0 -0
  119. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/__init__.py +0 -0
  120. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDS1.py +0 -0
  121. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDS2.py +0 -0
  122. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDS3.py +0 -0
  123. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDS4.py +0 -0
  124. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDS5.py +0 -0
  125. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDS6.py +0 -0
  126. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoMDSx.py +0 -0
  127. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_cocoView1.py +0 -0
  128. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_coco_core.py +0 -0
  129. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_coco_datalake.py +0 -0
  130. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_exchangeDL01.py +0 -0
  131. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_governDL01.py +0 -0
  132. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_monitorDev01.py +0 -0
  133. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/config_monitorGov01.py +0 -0
  134. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Coco_config/globals.py +0 -0
  135. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/P-egeria-server-config.ipynb +0 -0
  136. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/README.md +0 -0
  137. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/P-environment-check.ipynb +0 -0
  138. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/__init__.py +0 -0
  139. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/common-functions.ipynb +0 -0
  140. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/environment-check.ipynb +0 -0
  141. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/globals.ipynb +0 -0
  142. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/globals.py +0 -0
  143. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/Jupyter Notebooks/common/orig_globals.py +0 -0
  144. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/format_sets/all_format_sets.json +0 -0
  145. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/format_sets/custom_format_sets.json +0 -0
  146. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/format_sets/subset_format_sets.json +0 -0
  147. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/format_sets_save_load_example.py +0 -0
  148. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/examples/output_formats_example.py +0 -0
  149. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/data/commands-working.json +0 -0
  150. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/data/generated_format_sets.json +0 -0
  151. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/data/generated_format_sets.py +0 -0
  152. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/__init__.py +0 -0
  153. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/data_designer_commands.py +0 -0
  154. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/ext_ref_commands.py +0 -0
  155. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/glossary_commands.py +0 -0
  156. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/governance_officer_commands.py +0 -0
  157. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/product_manager_commands.py +0 -0
  158. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/project_commands.py +0 -0
  159. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/solution_architect_commands.py +0 -0
  160. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_commands/view_commands.py +0 -0
  161. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/__init__.py +0 -0
  162. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/common_md_proc_utils.py +0 -0
  163. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/determine_width.py +0 -0
  164. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/gen_format_sets.py +0 -0
  165. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/generate_dr_help.py +0 -0
  166. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/generate_md_cmd_templates.py +0 -0
  167. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/generate_md_templates.py +0 -0
  168. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/md_processing/md_processing_utils/message_constants.py +0 -0
  169. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/__init__.py +0 -0
  170. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_base_client.py +0 -0
  171. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_client.py +0 -0
  172. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_client_new_backup.py +0 -0
  173. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_deprecated_gov_engine.py +0 -0
  174. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_exceptions.py +0 -0
  175. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_output_format_models.py +0 -0
  176. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_output_formats.py +0 -0
  177. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/_validators.py +0 -0
  178. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/automated_curation.py +0 -0
  179. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/classification_manager.py +0 -0
  180. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/classification_manager_omvs.py +0 -0
  181. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/collection_manager.py +0 -0
  182. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/collection_models.py +0 -0
  183. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/config.py +0 -0
  184. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/core_omag_server_config.py +0 -0
  185. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/create_tech_guid_lists.py +0 -0
  186. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/data_designer.py +0 -0
  187. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/egeria_cat_client.py +0 -0
  188. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/egeria_client.py +0 -0
  189. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/egeria_config_client.py +0 -0
  190. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/egeria_tech_client.py +0 -0
  191. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/external_links.py +0 -0
  192. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/feedback_manager.py +0 -0
  193. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/feedback_manager_omvs.py +0 -0
  194. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/format_set_executor.py +0 -0
  195. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/full_omag_server_config.py +0 -0
  196. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/glossary_manager.py +0 -0
  197. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/governance_officer.py +0 -0
  198. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/load_config.py +0 -0
  199. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/logging_configuration.py +0 -0
  200. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/mcp_adapter.py +0 -0
  201. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/mcp_server.py +0 -0
  202. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/md_processing_utils.py +0 -0
  203. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/mermaid_utilities.py +0 -0
  204. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/metadata_explorer_omvs.py +0 -0
  205. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/models.py +0 -0
  206. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/my_profile_omvs.py +0 -0
  207. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/output_formatter_with_machine_keys.py +0 -0
  208. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/platform_services.py +0 -0
  209. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/project_manager.py +0 -0
  210. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/reference_data.py +0 -0
  211. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/registered_info.py +0 -0
  212. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/runtime_manager_omvs.py +0 -0
  213. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/server_operations.py +0 -0
  214. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/solution_architect.py +0 -0
  215. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/template_manager_omvs.py +0 -0
  216. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/utils.py +0 -0
  217. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/valid_metadata_omvs.py +0 -0
  218. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria/x_action_author_omvs.py +0 -0
  219. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria.egg-info/SOURCES.txt +0 -0
  220. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria.egg-info/dependency_links.txt +0 -0
  221. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria.egg-info/entry_points.txt +0 -0
  222. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/pyegeria.egg-info/requires.txt +0 -0
  223. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/setup.cfg +0 -0
  224. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_automated_curation_omvs.py +0 -0
  225. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_classification_manager_omvs.py +0 -0
  226. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_client.py +0 -0
  227. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_collection_manager_omvs.py +0 -0
  228. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_comments.py +0 -0
  229. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_config.py +0 -0
  230. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_config_unit.py +0 -0
  231. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_core_omag_server_config.py +0 -0
  232. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_data_designer.py +0 -0
  233. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_dr_egeria_command_help_modes.py +0 -0
  234. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_egeria_cat_client.py +0 -0
  235. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_egeria_client.py +0 -0
  236. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_egeria_my_client.py +0 -0
  237. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_env_settings.py +0 -0
  238. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_external_links.py +0 -0
  239. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_feedback_manager_omvs.py +0 -0
  240. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_format_set_dict.py +0 -0
  241. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_full_omag_server_config.py +0 -0
  242. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_glossary_manager_omvs.py +0 -0
  243. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_governance_officer_omvs.py +0 -0
  244. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_load_config.py +0 -0
  245. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_mcp_adapter.py +0 -0
  246. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_metadata_explorer_omvs.py +0 -0
  247. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_my_profile_omvs.py +0 -0
  248. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_output_format_models_unit.py +0 -0
  249. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_output_format_sets_unit.py +0 -0
  250. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_output_formats.py +0 -0
  251. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_output_formatter_deepcopy_isolation.py +0 -0
  252. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_output_formatter_dict_collisions.py +0 -0
  253. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_platform_services.py +0 -0
  254. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_project_manager_omvs.py +0 -0
  255. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_reference_data.py +0 -0
  256. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_registered_info.py +0 -0
  257. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_root_path.py +0 -0
  258. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_runtime_manager.py +0 -0
  259. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_server_operations.py +0 -0
  260. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_utils.py +0 -0
  261. {pyegeria-5.4.8.7 → pyegeria-5.4.8.9}/tests/test_valid_metadata_omvs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyegeria
3
- Version: 5.4.8.7
3
+ Version: 5.4.8.9
4
4
  Summary: A python client for Egeria
5
5
  Author-email: Dan Wolfson <dan.wolfson@pdr-associates.com>
6
6
  License-Expression: Apache-2.0
@@ -44,8 +44,8 @@ logger.info(f"Console width is {app_config.console_width}")
44
44
 
45
45
  view_server = app_config.egeria_view_server
46
46
  view_url = app_config.egeria_view_server_url
47
- user = app_settings.User_Profile.user_name
48
- user_pass = app_settings.User_Profile.user_pwd
47
+ user = EGERIA_USER
48
+ user_pass = EGERIA_USER_PASSWORD
49
49
 
50
50
 
51
51
  console = Console(
@@ -89,7 +89,7 @@ try:
89
89
  display_name = "Digital Products MarketPlace"
90
90
  description = "This is the digital products marketplace"
91
91
  category = "GeoSpatial"
92
- qualified_name = client.__create_qualified_name__("Folder", display_name)
92
+ qualified_name = client.__create_qualified_name__("Marketplace", display_name)
93
93
 
94
94
  props_body = {
95
95
  "class": "DigitalProductCatalogProperties",
@@ -32,7 +32,7 @@ from md_processing.md_commands.data_designer_commands import (process_data_field
32
32
  process_data_dict_upsert_command,
33
33
  process_data_structure_upsert_command)
34
34
 
35
- from md_processing.md_commands.feedback_commands import (process_add_comment_command, process_upsert_note_log_command,
35
+ from md_processing.md_commands.feedback_commands import (process_add_comment_command, process_journal_entry_command,
36
36
  process_upsert_note_command, process_attach_note_log_command,
37
37
  process_upsert_informal_tag_command, process_tag_element_command)
38
38
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "Command Specifications": {
3
- "exported": "Oct 29, 2025 at 10:57:59 AM",
3
+ "exported": "Oct 30, 2025 at 11:35:20 AM",
4
4
  "Create Comment": {
5
5
  "display_name": "Comment",
6
6
  "qn_prefix": "Comment",
@@ -54,7 +54,7 @@
54
54
  "default_value": "",
55
55
  "valid_values": "",
56
56
  "existing_element": "",
57
- "description": "The element the comment is attached to.",
57
+ "description": "The element the comment is attached to. To reply to a previous comment, you would use the ID of the previous comment as the associated element.",
58
58
  "qualified_name_pattern": "",
59
59
  "generated": false,
60
60
  "style": "Reference Name",
@@ -69,30 +69,6 @@
69
69
  "Journal Entry": ""
70
70
  }
71
71
  },
72
- {
73
- "Parent Comment": {
74
- "variable_name": "parent_comment",
75
- "inUpdate": true,
76
- "attr_labels": "Element",
77
- "examples": "",
78
- "default_value": "",
79
- "valid_values": "",
80
- "existing_element": "",
81
- "description": "The comment being replied to. If provided, the Associated Element will be ignored (this becomes the associated element).",
82
- "qualified_name_pattern": "",
83
- "generated": false,
84
- "style": "ID",
85
- "user_specified": true,
86
- "unique": false,
87
- "input_required": false,
88
- "isParent": false,
89
- "isAnchor": false,
90
- "min_cardinality": 1,
91
- "max_cardinality": 1,
92
- "level": "Basic",
93
- "Journal Entry": ""
94
- }
95
- },
96
72
  {
97
73
  "Comment Text": {
98
74
  "variable_name": "comment_text",
@@ -455,10 +431,10 @@
455
431
  }
456
432
  ]
457
433
  },
458
- "Create NoteLog": {
434
+ "Create Journal Entry": {
459
435
  "display_name": "NoteLog",
460
436
  "qn_prefix": "NoteLog",
461
- "alternate_names": "",
437
+ "alternate_names": "Note Log; Journal",
462
438
  "family": "Feedback Manager",
463
439
  "description": "Allows a sequence of notes to be attached to an associated element.",
464
440
  "verb": "Create",
@@ -476,21 +452,21 @@
476
452
  "Journal Entry": "",
477
453
  "Attributes": [
478
454
  {
479
- "Display Name": {
455
+ "Journal Name": {
480
456
  "variable_name": "display_name",
481
457
  "inUpdate": true,
482
- "attr_labels": "Name",
458
+ "attr_labels": "Name; Title",
483
459
  "examples": "",
484
460
  "default_value": "",
485
461
  "valid_values": "",
486
462
  "existing_element": "",
487
- "description": "Name of the NoteLog.",
463
+ "description": "Name of the NoteLog or Journal.",
488
464
  "qualified_name_pattern": "",
489
465
  "generated": false,
490
- "style": "Simple",
466
+ "style": "ID",
491
467
  "user_specified": true,
492
468
  "unique": false,
493
- "input_required": false,
469
+ "input_required": true,
494
470
  "isParent": false,
495
471
  "isAnchor": false,
496
472
  "min_cardinality": 0,
@@ -524,8 +500,8 @@
524
500
  }
525
501
  },
526
502
  {
527
- "Description": {
528
- "variable_name": "description",
503
+ "Journal Description": {
504
+ "variable_name": "journal_description",
529
505
  "inUpdate": true,
530
506
  "attr_labels": "",
531
507
  "examples": "",
@@ -547,6 +523,30 @@
547
523
  "Journal Entry": ""
548
524
  }
549
525
  },
526
+ {
527
+ "Note Entry": {
528
+ "variable_name": "note_entry",
529
+ "inUpdate": true,
530
+ "attr_labels": "Note; Journal Entry",
531
+ "examples": "",
532
+ "default_value": "",
533
+ "valid_values": "",
534
+ "existing_element": "",
535
+ "description": "The text of the journal entry.",
536
+ "qualified_name_pattern": "",
537
+ "generated": false,
538
+ "style": "Simple",
539
+ "user_specified": true,
540
+ "unique": false,
541
+ "input_required": true,
542
+ "isParent": false,
543
+ "isAnchor": false,
544
+ "min_cardinality": 1,
545
+ "max_cardinality": 1,
546
+ "level": "Basic",
547
+ "Journal Entry": ""
548
+ }
549
+ },
550
550
  {
551
551
  "URL": {
552
552
  "variable_name": "url",
@@ -885,7 +885,7 @@
885
885
  "Display Name": {
886
886
  "variable_name": "display_name",
887
887
  "inUpdate": true,
888
- "attr_labels": "Name",
888
+ "attr_labels": "Name; Title",
889
889
  "examples": "",
890
890
  "default_value": "",
891
891
  "valid_values": "",
@@ -909,7 +909,7 @@
909
909
  "NoteLog": {
910
910
  "variable_name": "note_log",
911
911
  "inUpdate": true,
912
- "attr_labels": "",
912
+ "attr_labels": "Journal",
913
913
  "examples": "",
914
914
  "default_value": "",
915
915
  "valid_values": "",
@@ -933,12 +933,12 @@
933
933
  "Description": {
934
934
  "variable_name": "description",
935
935
  "inUpdate": true,
936
- "attr_labels": "",
936
+ "attr_labels": "Text",
937
937
  "examples": "",
938
938
  "default_value": "",
939
939
  "valid_values": "",
940
940
  "existing_element": "",
941
- "description": "Description of the NoteLog.",
941
+ "description": "The text of the note..",
942
942
  "qualified_name_pattern": "",
943
943
  "generated": false,
944
944
  "style": "Simple",
@@ -45,7 +45,7 @@ from md_processing.md_commands.data_designer_commands import (process_data_spec_
45
45
  process_data_structure_upsert_command,
46
46
  process_data_class_upsert_command)
47
47
 
48
- from md_processing.md_commands.feedback_commands import (process_add_comment_command, process_upsert_note_log_command,
48
+ from md_processing.md_commands.feedback_commands import (process_add_comment_command, process_journal_entry_command,
49
49
  process_upsert_note_command, process_attach_note_log_command,
50
50
  process_upsert_informal_tag_command, process_tag_element_command)
51
51
 
@@ -124,8 +124,8 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
124
124
 
125
125
  elif potential_command in ["Create Comment", "Update Comment"]:
126
126
  result = process_add_comment_command(client, current_block, directive)
127
- elif potential_command in ["Create NoteLog", "Update NoteLog"]:
128
- result = process_upsert_note_log_command(client, current_block, directive)
127
+ elif potential_command in ["Create Journal Entry"]:
128
+ result = process_journal_entry_command(client, current_block, directive)
129
129
  elif potential_command in ["Create Note", "Update Note"]:
130
130
  result = process_upsert_note_command(client, current_block, directive)
131
131
  elif potential_command in ["Link NoteLog", "Detach NoteLog"]:
@@ -64,7 +64,8 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
64
64
 
65
65
  attributes = parsed_output['attributes']
66
66
 
67
-
67
+ valid = parsed_output['valid']
68
+ exists = parsed_output['exists']
68
69
 
69
70
  qualified_name = parsed_output.get('qualified_name', None)
70
71
  guid = parsed_output.get('guid', None)
@@ -79,19 +80,18 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
79
80
  associated_element = attributes.get('Associated Element', {}).get('value', None)
80
81
  associated_element_guid = attributes.get('Associated Element', {}).get('guid', None)
81
82
  description = attributes.get('Comment Text', {}).get('value', None)
82
- comment_type = attributes.get('Comment Type', {}).get('value', None)
83
- parent_comment = attributes.get('Parent Comment', {}).get('value', None)
84
- parent_comment_guid = attributes.get('Parent Comment', {}).get('guid', None)
85
-
86
- if associated_element_guid is None and parent_comment_guid is None:
87
- valid = False
88
- msg = f"Validation failed for {command} - One of `Associated Element` or `Parent Comment` must be specified\n"
89
- logger.error(msg)
90
- print(msg)
91
- else:
92
- if description:
93
- valid = True
94
- exists = True
83
+ comment_type = attributes.get('Comment Type', {}).get('value', None).strip()
84
+
85
+
86
+ # if associated_element_guid is None and parent_comment_guid is None:
87
+ # valid = False
88
+ # msg = f"Validation failed for {command} - One of `Associated Element` or `Parent Comment` must be specified\n"
89
+ # logger.error(msg)
90
+ # print(msg)
91
+ # else:
92
+ # if description:
93
+ # valid = True
94
+ # exists = True
95
95
  #
96
96
 
97
97
  if directive == "display":
@@ -109,13 +109,14 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
109
109
  obj = "Comment"
110
110
  if comment_type not in COMMENT_TYPES:
111
111
  raise ValueError(f"Invalid comment type: {comment_type}")
112
- target_guid = parent_comment_guid if parent_comment_guid else associated_element_guid
112
+ # target_guid = parent_comment_guid if parent_comment_guid else associated_element_guid
113
113
  if qualified_name is None:
114
- qualified_name = egeria_client.make_feedback_qn("Comment",target_guid,display_name)
114
+ qualified_name = egeria_client.make_feedback_qn("Comment",associated_element_guid,display_name)
115
115
  # Set the property body for a glossary collection
116
116
  #
117
117
  prop_body = {
118
118
  "class": "CommentProperties",
119
+ "displayName": display_name,
119
120
  "qualifiedName": qualified_name,
120
121
  "description": description,
121
122
  "commentType": comment_type
@@ -165,20 +166,21 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
165
166
  return None
166
167
 
167
168
  else:
169
+
168
170
  body = set_create_body(object_type,attributes)
169
171
  body['class'] = "NewAttachmentRequestBody"
170
172
  body["properties"] = prop_body
171
173
  slim_body = body_slimmer(body)
172
- if parent_comment_guid:
173
- guid = egeria_client.add_comment_reply(element_guid = parent_comment_guid, body = slim_body)
174
- else:
175
- guid = egeria_client.add_comment_to_element(element_guid = associated_element_guid, body =slim_body)
174
+ # if parent_comment_guid:
175
+ # guid = egeria_client.add_comment_reply(element_guid = parent_comment_guid, body = slim_body)
176
+ # else:
177
+ guid = egeria_client.add_comment_to_element(element_guid = associated_element_guid, body =slim_body)
176
178
 
177
179
  if guid:
178
180
  update_element_dictionary(qualified_name, {
179
181
  'guid': guid, 'display_name': display_name
180
182
  })
181
- msg = f"Created Element `{display_name}` with GUID {guid}\n\n___"
183
+ msg = f"## ==> Created Element `{display_name}` with GUID {guid}\n\n___"
182
184
  logger.success(msg)
183
185
  print(Markdown(msg))
184
186
  return egeria_client.get_comment_by_guid(guid, output_format='MD', report_spec = "Comments-DrE")
@@ -196,10 +198,11 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
196
198
  else:
197
199
  return None
198
200
 
199
- def process_upsert_note_log_command(egeria_client: EgeriaTech, txt: str, directive: str = "display") -> Optional[str]:
201
+ def process_journal_entry_command(egeria_client: EgeriaTech, txt: str,
202
+ directive: str = "display") -> Optional[str]:
200
203
  """
201
- Processes a noteLog create or update object_action by extracting key attributes from the given text and applying
202
- this using the pyegeria function.
204
+ Creates or updates a journal entry. If the journal (NoteLog) doesn't exist, then it will be created. Each journal
205
+ entry is a note in a NoteLog.
203
206
 
204
207
  :param txt: A string representing the input cell to be processed for
205
208
  extracting glossary-related attributes.
@@ -227,10 +230,24 @@ def process_upsert_note_log_command(egeria_client: EgeriaTech, txt: str, directi
227
230
 
228
231
  attributes = parsed_output['attributes']
229
232
 
230
- display_name = attributes['Display Name'].get('value', None)
231
- description = attributes['Description'].get('value', None)
233
+ journal_name = attributes['Journal Name'].get('value', None)
234
+ journal_qn = attributes['Journal Name'].get('qualified_name', None)
235
+ journal_exists = attributes['Journal Name'].get('Exists', False)
236
+ note_entry = attributes['Note Entry'].get('value', None)
237
+ journal_description = attributes['Journal Description'].get('value', None)
238
+
232
239
  associated_element = attributes.get('Associated Element', {}).get('value', None)
233
- associated_element_guid = attributes.get('Associated Element', {}).get('guid', None)
240
+ associated_element_qn = attributes.get('Associated Element', {}).get('qualified_name', None)
241
+
242
+ if journal_exists is False:
243
+ qualified_name = None
244
+ journal_qn = None
245
+
246
+
247
+ if journal_name and note_entry:
248
+ valid = True
249
+ else:
250
+ valid = False
234
251
  #
235
252
 
236
253
  if directive == "display":
@@ -244,71 +261,29 @@ def process_upsert_note_log_command(egeria_client: EgeriaTech, txt: str, directi
244
261
 
245
262
  elif directive == "process":
246
263
  try:
247
- obj = "NoteLog"
248
-
249
- # Set the property body for a glossary collection
250
- #
251
- prop_body = set_element_prop_body(obj, qualified_name, attributes)
252
264
 
253
- if object_action == "Update":
254
- if not exists:
255
- msg = (f" Element `{display_name}` does not exist! Updating result document with Create "
256
- f"{object_action}\n")
257
- logger.error(msg)
258
- return update_a_command(txt, object_action, object_type, qualified_name, guid)
259
- elif not valid:
260
- msg = (" The input data is invalid and cannot be processed. \nPlease review")
265
+ if object_action == "Create":
266
+ if valid is False:
267
+ msg = "Journal name or Journal entry are missing."
261
268
  logger.error(msg)
269
+ print(msg)
262
270
  print(Markdown(f"==> Validation of {command} failed!!\n"))
263
- print(Markdown(msg))
264
- return None
265
- else:
266
- print(Markdown(
267
- f"==> Validation of {command} completed successfully! Proceeding to apply the changes.\n"))
268
-
269
-
270
- body = set_update_body(obj, attributes)
271
- body['properties'] = prop_body
272
-
273
- egeria_client.update_note_log(associated_element_guid, body)
274
-
275
- logger.success(f"Updated {object_type} `{display_name}` with GUID {guid}\n\n___")
276
- update_element_dictionary(qualified_name, {
277
- 'guid': guid, 'display_name': display_name
278
- })
279
- return egeria_client.get_note_logs_by_name(filter = qualified_name, element_type="NoteLog",
280
- output_format='MD', report_spec = "NoteLog-DrE")
281
-
282
-
283
- elif object_action == "Create":
284
- if valid is False and exists:
285
- msg = (f"NoteLog `{display_name}` already exists and result document updated changing "
286
- f"`Create` to `Update` in processed output\n\n___")
287
- logger.error(msg)
288
- return update_a_command(txt, object_action, object_type, qualified_name, guid)
289
- elif not valid:
290
- msg = ("The input data is invalid and cannot be processed. \nPlease review")
291
- logger.error(msg)
292
- print(Markdown(f"==> Validation of {command} failed!!\n"))
293
- print(Markdown(msg))
294
271
  return None
295
272
 
296
273
  else:
297
- body = set_create_body(object_type,attributes)
298
274
 
299
- body["properties"] = prop_body
300
- slim_body = body_slimmer(body)
301
- guid = egeria_client.create_note_log(associated_element_guid, slim_body)
302
- if guid:
303
- update_element_dictionary(qualified_name, {
304
- 'guid': guid, 'display_name': display_name
305
- })
306
- msg = f"Created Element `{display_name}` with GUID {guid}\n\n___"
275
+ note_guid = egeria_client.add_journal_entry(note_log_qn = journal_qn,
276
+ element_qn = associated_element_qn,
277
+ note_log_display_name = journal_name,
278
+ note_entry = note_entry )
279
+ if note_guid:
280
+ msg = f"Created entry in `{journal_name}` with GUID {note_guid}\n\n___"
307
281
  logger.success(msg)
308
- return egeria_client.get_note_logs_by_name(filter = qualified_name, element_type="NoteLog",
309
- output_format='MD', report_spec = "NoteLog-DrE")
282
+ print(Markdown(msg))
283
+ return egeria_client.get_note_by_guid(note_guid,
284
+ output_format='MD', report_spec = "Journal-Entry-DrE")
310
285
  else:
311
- msg = f"Failed to create element `{display_name}` with GUID {guid}\n\n___"
286
+ msg = f"Failed to create entry for `{journal_name}`\n\n___"
312
287
  logger.error(msg)
313
288
  return None
314
289
 
@@ -572,8 +572,8 @@ def add_note_in_dr_e(client: Client2, qualified_name: str, display_name: str, jo
572
572
  note_log_qn = f"{qualified_name}-NoteLog"
573
573
  note_log_display_name = f"{display_name}-NoteLog"
574
574
  note_display_name = f"{qualified_name}-Journal-Entry-{datetime.now().strftime('%Y-%m-%d %H:%M')}"
575
- journal_entry_guid = client.add_journal_entry(note_log_qn, qualified_name, note_log_display_name, note_display_name,
576
- journal_entry)
575
+ journal_entry_guid = client.add_journal_entry(note_log_qn, qualified_name, note_log_display_name,
576
+ note_display_name, journal_entry)
577
577
  logger.info(f"Added journal entry `{journal_entry_guid}` to `{qualified_name}`")
578
578
  return journal_entry_guid
579
579
  else:
@@ -142,17 +142,21 @@ def extract_attribute(text: str, labels: List[str]) -> Optional[str]:
142
142
  Returns:
143
143
  The cleaned value of the attribute, or None if not found.
144
144
  """
145
+
146
+
145
147
  for label in labels:
146
- # Construct pattern for the current label
147
- pattern = rf"## {re.escape(label)}\n(.*?)(?=^##|\Z)" # Captures content until the next '##' or end of text
148
+ # Construct pattern for the current label - stops at next ##, ___ separator, or end of text
149
+ pattern = rf"## {re.escape(label)}\n(.*?)(?=^##|^_{3,}|\Z)"
148
150
  match = re.search(pattern, text, re.DOTALL | re.MULTILINE)
149
151
  if match:
150
152
  # Extract matched text
151
153
  extracted_text = match.group(1)
152
154
 
153
- # Remove lines starting with '>'
154
- filtered_lines = [line for line in extracted_text.splitlines() if not line.lstrip().startswith(">")]
155
-
155
+ # Remove lines starting with '>' and lines that are only underscores/whitespace
156
+ filtered_lines = [
157
+ line for line in extracted_text.splitlines()
158
+ if not line.lstrip().startswith(">") and not re.match(r'^\s*_+\s*$', line)
159
+ ]
156
160
  # Join the lines back, preserving single newlines
157
161
  cleaned_text = "\n".join(filtered_lines).strip()
158
162
 
@@ -6,10 +6,12 @@ import json
6
6
  import os
7
7
 
8
8
  import inflect
9
+ from loguru import logger
9
10
  from rich.markdown import Markdown
10
11
 
11
12
  from md_processing.md_processing_utils.message_constants import ERROR
12
13
  from pyegeria._globals import DEBUG_LEVEL
14
+ from pyegeria.logging_configuration import config_logging
13
15
 
14
16
  inflect_engine = inflect.engine()
15
17
 
@@ -167,7 +169,7 @@ COLLECTION_CREATE = ["Create Collection", "Update Collection", "Create Digital P
167
169
  "Update Digital Product Catalog",
168
170
  "Create Root Collection", "Update Root Collection", "Create Folder", "Update Folder",
169
171
  ]
170
- FEEDBACK_COMMANDS = ["Create Comment", "Update Comment", "Create NoteLog", "Update NoteLog", "Create Note", "Update Note",
172
+ FEEDBACK_COMMANDS = ["Create Comment", "Update Comment", "Create Journal Entry",
171
173
  "Create Informal Tag", "Update Informal Tag", "Tag Element"]
172
174
 
173
175
  command_list = ["Provenance", "Create Glossary", "Update Glossary", "Create Term", "Update Term", "List Terms",
@@ -263,9 +265,10 @@ command_seperator = Markdown("\n---\n")
263
265
  EXISTS_REQUIRED = "Exists Required"
264
266
  COMMAND_DEFINITIONS = {}
265
267
 
268
+ config_logging()
269
+ logger.enable("pyegeria")
266
270
  debug_level = DEBUG_LEVEL
267
271
 
268
-
269
272
  # def load_commands(filename: str) -> None:
270
273
  # global COMMAND_DEFINITIONS
271
274
  #
@@ -288,7 +291,8 @@ def load_commands(filename: str) -> None:
288
291
  # Validate JSON before attempting to load
289
292
  try:
290
293
  COMMAND_DEFINITIONS = json.loads(config_str)
291
- print(f"Successfully loaded {filename}")
294
+ msg = f"Successfully loaded {filename}"
295
+ logger.info(msg)
292
296
  except json.JSONDecodeError as json_err:
293
297
  # Provide detailed error information
294
298
  error_line = json_err.lineno