pyegeria 5.4.7.9__tar.gz → 5.4.8__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 (260) hide show
  1. {pyegeria-5.4.7.9/pyegeria.egg-info → pyegeria-5.4.8}/PKG-INFO +33 -3
  2. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/README.md +28 -1
  3. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/dr_egeria_command_help.py +1 -1
  4. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_collections.py +2 -2
  5. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/run_report.py +12 -12
  6. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/list_archives.py +1 -3
  7. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/GeoSpatial Products Example.py +11 -11
  8. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets/all_format_sets.json +18 -18
  9. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets/custom_format_sets.json +6 -6
  10. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets/subset_format_sets.json +4 -4
  11. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/format_sets_save_load_example.py +18 -18
  12. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/output_formats_example.py +20 -20
  13. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/generated_format_sets.json +43 -43
  14. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/data_designer_commands.py +10 -10
  15. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/ext_ref_commands.py +2 -2
  16. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/glossary_commands.py +3 -3
  17. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/governance_officer_commands.py +2 -2
  18. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/product_manager_commands.py +8 -8
  19. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/project_commands.py +2 -2
  20. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/solution_architect_commands.py +3 -3
  21. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/view_commands.py +7 -7
  22. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/common_md_proc_utils.py +8 -8
  23. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/gen_format_sets.py +12 -12
  24. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/generate_dr_help.py +1 -1
  25. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/__init__.py +3 -3
  26. pyegeria-5.4.8/pyegeria/_client_new.py +4886 -0
  27. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_output_format_models.py +41 -16
  28. pyegeria-5.4.8/pyegeria/_output_formats.py +14 -0
  29. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/automated_curation.py +90 -81
  30. pyegeria-5.4.7.9/pyegeria/_output_formats.py → pyegeria-5.4.8/pyegeria/base_report_formats.py +351 -163
  31. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/classification_manager.py +184 -199
  32. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/classification_manager_omvs.py +45 -69
  33. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/collection_manager.py +56 -56
  34. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/data_designer.py +110 -110
  35. pyegeria-5.4.8/pyegeria/egeria_cat_client.py +49 -0
  36. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/egeria_client.py +2 -2
  37. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/egeria_tech_client.py +2 -2
  38. pyegeria-5.4.7.9/pyegeria/external_references.py → pyegeria-5.4.8/pyegeria/external_links.py +33 -34
  39. pyegeria-5.4.8/pyegeria/feedback_manager.py +833 -0
  40. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/feedback_manager_omvs.py +104 -306
  41. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/format_set_executor.py +16 -16
  42. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/glossary_manager.py +30 -30
  43. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/governance_officer.py +22 -22
  44. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/mcp_adapter.py +6 -6
  45. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/output_formatter.py +59 -43
  46. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/platform_services.py +2 -1
  47. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/project_manager.py +45 -45
  48. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/reference_data.py +28 -28
  49. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/solution_architect.py +73 -73
  50. {pyegeria-5.4.7.9 → pyegeria-5.4.8/pyegeria.egg-info}/PKG-INFO +33 -3
  51. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/SOURCES.txt +5 -3
  52. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/requires.txt +5 -1
  53. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyproject.toml +6 -2
  54. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_automated_curation_omvs.py +4 -4
  55. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_classification_manager_omvs.py +8 -10
  56. pyegeria-5.4.8/tests/test_client_new.py +36 -0
  57. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_collection_manager_omvs.py +23 -22
  58. pyegeria-5.4.8/tests/test_comments.py +194 -0
  59. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_data_designer.py +23 -17
  60. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_egeria_my_client.py +1 -1
  61. pyegeria-5.4.7.9/tests/test_external_references.py → pyegeria-5.4.8/tests/test_external_links.py +7 -8
  62. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_feedback_manager_omvs.py +138 -86
  63. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_glossary_manager_omvs.py +1 -1
  64. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_governance_officer_omvs.py +11 -9
  65. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_mcp_adapter.py +1 -1
  66. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_output_format_sets_unit.py +3 -3
  67. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_output_formats.py +39 -39
  68. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_project_manager_omvs.py +3 -3
  69. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_reference_data.py +2 -2
  70. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_registered_info.py +2 -2
  71. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_runtime_manager.py +1 -1
  72. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_solution_architect_omvs.py +3 -3
  73. pyegeria-5.4.7.9/pyegeria/_client_new.py +0 -2458
  74. pyegeria-5.4.7.9/pyegeria/egeria_cat_client.py +0 -93
  75. pyegeria-5.4.7.9/pyegeria/egeria_my_client.py +0 -91
  76. pyegeria-5.4.7.9/pyegeria/feedback_manager.py +0 -4510
  77. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/LICENSE +0 -0
  78. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/MANIFEST.in +0 -0
  79. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/__init__.py +0 -0
  80. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/Dr-Egeria_md-orig.py +0 -0
  81. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/__init__.py +0 -0
  82. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/dr_egeria_jupyter.py +0 -0
  83. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/dr_egeria_md.py +0 -0
  84. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/exp_list_glossaries.py +0 -0
  85. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_asset_graph.py +0 -0
  86. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_collection.py +0 -0
  87. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_project_dependencies.py +0 -0
  88. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_project_structure.py +0 -0
  89. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/get_tech_type_elements.py +0 -0
  90. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/glossary_actions.py +0 -0
  91. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_assets.py +0 -0
  92. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_cert_types.py +0 -0
  93. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_data_designer.py +0 -0
  94. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_data_structures_full.py +0 -0
  95. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_catalogs.py +0 -0
  96. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_database_schemas.py +0 -0
  97. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_databases.py +0 -0
  98. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_deployed_servers.py +0 -0
  99. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_glossaries.py +0 -0
  100. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_projects.py +0 -0
  101. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_tech_type_elements.py +0 -0
  102. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_tech_types.py +0 -0
  103. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_terms.py +0 -0
  104. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_todos.py +0 -0
  105. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cat/list_user_ids.py +0 -0
  106. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/__init__.py +0 -0
  107. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria.py +0 -0
  108. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_cat.py +0 -0
  109. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_login_tui.py +0 -0
  110. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_my.py +0 -0
  111. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_ops.py +0 -0
  112. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/egeria_tech.py +0 -0
  113. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/cli/ops_config.py +0 -0
  114. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/__init__.py +0 -0
  115. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/list_my_profile.py +0 -0
  116. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/list_my_roles.py +0 -0
  117. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/monitor_my_todos.py +0 -0
  118. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/monitor_open_todos.py +0 -0
  119. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/my/todo_actions.py +0 -0
  120. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/__init__.py +0 -0
  121. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/gov_server_actions.py +0 -0
  122. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/list_catalog_targets.py +0 -0
  123. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/load_archive.py +0 -0
  124. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_asset_events.py +0 -0
  125. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_engine_activity.py +0 -0
  126. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_engine_activity_c.py +0 -0
  127. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_gov_eng_status.py +0 -0
  128. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_integ_daemon_status.py +0 -0
  129. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_platform_status.py +0 -0
  130. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_server_startup.py +0 -0
  131. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/monitor_server_status.py +0 -0
  132. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/orig_monitor_server_list.py +0 -0
  133. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/orig_monitor_server_status.py +0 -0
  134. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/refresh_integration_daemon.py +0 -0
  135. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/restart_integration_daemon.py +0 -0
  136. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/table_integ_daemon_status.py +0 -0
  137. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/ops/x_engine_actions.py +0 -0
  138. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/__init__.py +0 -0
  139. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/generic_actions.py +0 -0
  140. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_element_info.py +0 -0
  141. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_guid_info.py +0 -0
  142. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_tech_details.py +0 -0
  143. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/get_tech_type_template.py +0 -0
  144. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_all_om_type_elements.py +0 -0
  145. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_all_om_type_elements_x.py +0 -0
  146. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_all_related_elements.py +0 -0
  147. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_anchored_elements.py +0 -0
  148. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_asset_types.py +0 -0
  149. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_by_classification_by_property_value.py +0 -0
  150. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_by_property_value.py +0 -0
  151. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_by_property_value_x.py +0 -0
  152. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_elements_for_classification.py +0 -0
  153. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_gov_action_processes.py +0 -0
  154. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_information_supply_chains.py +0 -0
  155. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_registered_services.py +0 -0
  156. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_related_elements_with_prop_value.py +0 -0
  157. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_related_specification.py +0 -0
  158. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_relationship_types.py +0 -0
  159. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_relationships.py +0 -0
  160. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_solution_blueprints.py +0 -0
  161. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_solution_components.py +0 -0
  162. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_solution_roles.py +0 -0
  163. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_tech_templates.py +0 -0
  164. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/list_valid_metadata_values.py +0 -0
  165. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/table_tech_templates.py +0 -0
  166. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/commands/tech/x_list_related_elements.py +0 -0
  167. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/README.md +0 -0
  168. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/__init__.py +0 -0
  169. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS1.py +0 -0
  170. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS2.py +0 -0
  171. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS3.py +0 -0
  172. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS4.py +0 -0
  173. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS5.py +0 -0
  174. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDS6.py +0 -0
  175. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoMDSx.py +0 -0
  176. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_cocoView1.py +0 -0
  177. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_coco_core.py +0 -0
  178. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_coco_datalake.py +0 -0
  179. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_exchangeDL01.py +0 -0
  180. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_governDL01.py +0 -0
  181. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_monitorDev01.py +0 -0
  182. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/config_monitorGov01.py +0 -0
  183. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Coco_config/globals.py +0 -0
  184. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/P-egeria-server-config.ipynb +0 -0
  185. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/README.md +0 -0
  186. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/P-environment-check.ipynb +0 -0
  187. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/__init__.py +0 -0
  188. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/common-functions.ipynb +0 -0
  189. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/environment-check.ipynb +0 -0
  190. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/globals.ipynb +0 -0
  191. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/globals.py +0 -0
  192. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/examples/Jupyter Notebooks/common/orig_globals.py +0 -0
  193. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/__init__.py +0 -0
  194. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/commands-working.json +0 -0
  195. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/commands.json +0 -0
  196. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/data/generated_format_sets.py +0 -0
  197. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/dr_egeria.py +0 -0
  198. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_commands/__init__.py +0 -0
  199. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/__init__.py +0 -0
  200. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/common_md_utils.py +0 -0
  201. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/determine_width.py +0 -0
  202. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/extraction_utils.py +0 -0
  203. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/generate_md_cmd_templates.py +0 -0
  204. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/generate_md_templates.py +0 -0
  205. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/md_processing_constants.py +0 -0
  206. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/md_processing/md_processing_utils/message_constants.py +0 -0
  207. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_base_client.py +0 -0
  208. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_client.py +0 -0
  209. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_deprecated_gov_engine.py +0 -0
  210. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_exceptions.py +0 -0
  211. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_exceptions_new.py +0 -0
  212. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_globals.py +0 -0
  213. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/_validators.py +0 -0
  214. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/asset_catalog_omvs.py +0 -0
  215. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/collection_models.py +0 -0
  216. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/config.py +0 -0
  217. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/core_omag_server_config.py +0 -0
  218. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/create_tech_guid_lists.py +0 -0
  219. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/egeria_config_client.py +0 -0
  220. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/full_omag_server_config.py +0 -0
  221. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/load_config.py +0 -0
  222. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/logging_configuration.py +0 -0
  223. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/mcp_server.py +0 -0
  224. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/md_processing_utils.py +0 -0
  225. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/md_processing_utils_orig.py +0 -0
  226. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/mermaid_utilities.py +0 -0
  227. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/metadata_explorer_omvs.py +0 -0
  228. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/models.py +0 -0
  229. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/my_profile_omvs.py +0 -0
  230. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/registered_info.py +0 -0
  231. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/runtime_manager_omvs.py +0 -0
  232. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/server_operations.py +0 -0
  233. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/template_manager_omvs.py +0 -0
  234. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/utils.py +0 -0
  235. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/valid_metadata_omvs.py +0 -0
  236. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria/x_action_author_omvs.py +0 -0
  237. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/dependency_links.txt +0 -0
  238. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/entry_points.txt +0 -0
  239. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/pyegeria.egg-info/top_level.txt +0 -0
  240. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/setup.cfg +0 -0
  241. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_asset_catalog_omvs.py +0 -0
  242. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_client.py +0 -0
  243. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_config.py +0 -0
  244. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_config_unit.py +0 -0
  245. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_core_omag_server_config.py +0 -0
  246. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_dr_egeria_command_help_modes.py +0 -0
  247. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_egeria_cat_client.py +0 -0
  248. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_egeria_client.py +0 -0
  249. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_env_settings.py +0 -0
  250. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_format_set_dict.py +0 -0
  251. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_full_omag_server_config.py +0 -0
  252. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_load_config.py +0 -0
  253. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_metadata_explorer_omvs.py +0 -0
  254. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_my_profile_omvs.py +0 -0
  255. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_output_format_models_unit.py +0 -0
  256. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_platform_services.py +0 -0
  257. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_root_path.py +0 -0
  258. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_server_operations.py +0 -0
  259. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/tests/test_utils.py +0 -0
  260. {pyegeria-5.4.7.9 → pyegeria-5.4.8}/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.7.9
3
+ Version: 5.4.8
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
@@ -19,7 +19,7 @@ Requires-Dist: jupyter
19
19
  Requires-Dist: click
20
20
  Requires-Dist: trogon
21
21
  Requires-Dist: mermaid-py
22
- Requires-Dist: psycopg2-binary
22
+ Requires-Dist: psycopg2-binary>=2.9.11
23
23
  Requires-Dist: jupyter-notebook-parser
24
24
  Requires-Dist: loguru
25
25
  Requires-Dist: inflect
@@ -30,6 +30,9 @@ Requires-Dist: wcwidth
30
30
  Requires-Dist: altair
31
31
  Requires-Dist: modelcontextprotocol
32
32
  Requires-Dist: mcp>=1.15.0
33
+ Requires-Dist: markers>=0.3.0
34
+ Provides-Extra: test
35
+ Requires-Dist: pytest; extra == "test"
33
36
  Dynamic: license-file
34
37
 
35
38
  <!-- SPDX-License-Identifier: CC-BY-4.0 -->
@@ -57,6 +60,9 @@ to visualize and use Egeria. The commands also serve as useful examples.
57
60
 
58
61
  An examples folder holds some useful examples showing different facets of using pyegeria.
59
62
 
63
+ For detailed guidance on report formats (selection, dynamic loading, runtime registration, and migration from columns→attributes), see:
64
+ - examples/doc_samples/report_formats.md
65
+
60
66
  WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and
61
67
  evolve.
62
68
 
@@ -142,10 +148,34 @@ print(cfg.Logging.enable_logging)
142
148
  python scripts/validate_env.py --env config/env
143
149
  python scripts/validate_env.py # auto-detects ./config/env or ./.env
144
150
 
145
- - Run tests (requires Poetry):
151
+ ### Testing
152
+
153
+ By default, running pytest executes unit tests that use monkeypatching/fakes and do not contact a live Egeria.
154
+
155
+ - Run unit tests (recommended default):
146
156
  poetry install
147
157
  poetry run pytest -v
148
158
 
159
+ You can also run tests live against a local Egeria instance. Enable live mode with either a CLI flag or an environment variable. In live mode, tests marked as `unit` are skipped and live tests run using a real Client2 connection.
160
+
161
+ - Enable live mode via CLI:
162
+ poetry run pytest -q --live-egeria
163
+
164
+ - Or enable via environment variable:
165
+ PYEG_LIVE_EGERIA=1 poetry run pytest -q
166
+
167
+ Default live connection parameters (can be overridden via env):
168
+ - server_name = "qs-view-server" (override with PYEG_SERVER_NAME)
169
+ - platform_url = "https://localhost:9443" (override with PYEG_PLATFORM_URL)
170
+ - user_id = "peterprofile" (override with PYEG_USER_ID)
171
+ - user_pwd = "secret" (override with PYEG_USER_PWD)
172
+
173
+ Notes:
174
+ - SSL verification is controlled by pyegeria._globals.enable_ssl_check, which defaults to False in this repo to support localhost/self-signed certs.
175
+ - See tests/conftest.py for the live test fixtures and switches.
176
+
177
+ ### Troubleshooting
178
+
149
179
  ### Troubleshooting
150
180
 
151
181
  - If your env doesn’t seem to apply, confirm which config.json is used (the loader checks PYEGERIA_CONFIG_DIRECTORY first, then PYEGERIA_ROOT_PATH, then ./config.json).
@@ -23,6 +23,9 @@ to visualize and use Egeria. The commands also serve as useful examples.
23
23
 
24
24
  An examples folder holds some useful examples showing different facets of using pyegeria.
25
25
 
26
+ For detailed guidance on report formats (selection, dynamic loading, runtime registration, and migration from columns→attributes), see:
27
+ - examples/doc_samples/report_formats.md
28
+
26
29
  WARNING: files that start with "X" are in-progress placeholders that are not meant to be used..they will mature and
27
30
  evolve.
28
31
 
@@ -108,10 +111,34 @@ print(cfg.Logging.enable_logging)
108
111
  python scripts/validate_env.py --env config/env
109
112
  python scripts/validate_env.py # auto-detects ./config/env or ./.env
110
113
 
111
- - Run tests (requires Poetry):
114
+ ### Testing
115
+
116
+ By default, running pytest executes unit tests that use monkeypatching/fakes and do not contact a live Egeria.
117
+
118
+ - Run unit tests (recommended default):
112
119
  poetry install
113
120
  poetry run pytest -v
114
121
 
122
+ You can also run tests live against a local Egeria instance. Enable live mode with either a CLI flag or an environment variable. In live mode, tests marked as `unit` are skipped and live tests run using a real Client2 connection.
123
+
124
+ - Enable live mode via CLI:
125
+ poetry run pytest -q --live-egeria
126
+
127
+ - Or enable via environment variable:
128
+ PYEG_LIVE_EGERIA=1 poetry run pytest -q
129
+
130
+ Default live connection parameters (can be overridden via env):
131
+ - server_name = "qs-view-server" (override with PYEG_SERVER_NAME)
132
+ - platform_url = "https://localhost:9443" (override with PYEG_PLATFORM_URL)
133
+ - user_id = "peterprofile" (override with PYEG_USER_ID)
134
+ - user_pwd = "secret" (override with PYEG_USER_PWD)
135
+
136
+ Notes:
137
+ - SSL verification is controlled by pyegeria._globals.enable_ssl_check, which defaults to False in this repo to support localhost/self-signed certs.
138
+ - See tests/conftest.py for the live test fixtures and switches.
139
+
140
+ ### Troubleshooting
141
+
115
142
  ### Troubleshooting
116
143
 
117
144
  - If your env doesn’t seem to apply, confirm which config.json is used (the loader checks PYEGERIA_CONFIG_DIRECTORY first, then PYEGERIA_ROOT_PATH, then ./config.json).
@@ -151,7 +151,7 @@ def display_command_terms(
151
151
  file_name = f"Command-Help-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
152
152
  full_file_path = os.path.join(file_path, file_name)
153
153
  os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
154
- output = g_client.find_glossary_terms(search_string, output_format=output_format, output_format_set="Help-Terms")
154
+ output = g_client.find_glossary_terms(search_string, output_format=output_format, report_spec="Help-Terms")
155
155
  if output == "NO_TERMS_FOUND":
156
156
  print(f"\n==> No commands found for search string '{search_string}'")
157
157
  return
@@ -36,7 +36,7 @@ config_logging()
36
36
  out_struct = {
37
37
  "formats": {
38
38
  "types": ["ALL"],
39
- "columns": [
39
+ "attributes": [
40
40
  {'name': 'display_name', 'key': 'display_name'},
41
41
  {'name': 'qualified_name', 'key': 'qualified_name', 'format': True},
42
42
  {'name': 'description', 'key': 'description', 'format': True},
@@ -139,7 +139,7 @@ def display_collections(
139
139
 
140
140
  collections = m_client.find_collections(
141
141
  search_string.strip(), None, ["Collection"],True, False, ignore_case=True,
142
- output_format = "DICT", output_format_set=out_struct
142
+ output_format = "DICT", report_spec=out_struct
143
143
  )
144
144
  if type(collections) is list:
145
145
 
@@ -3,7 +3,7 @@
3
3
  SPDX-License-Identifier: Apache-2.0
4
4
  Copyright Contributors to the ODPi Egeria project.
5
5
 
6
- A command that takes an output format set name, looks up the format set using select_output_format_set,
6
+ A command that takes an output format set name, looks up the format set using select_report_spec,
7
7
  and invokes the specified function with parameters filled from command line arguments.
8
8
 
9
9
  This command works with any format set defined in output_formatter.py that has an "action" property.
@@ -55,12 +55,12 @@ from pyegeria import (
55
55
  NO_ELEMENTS_FOUND, GovernanceOfficer, GlossaryManager, print_validation_error,
56
56
  )
57
57
  from pyegeria.config import settings
58
- from pyegeria.external_references import ExternalReferences
58
+ from pyegeria.external_links import ExternalReferences
59
59
  from pyegeria.logging_configuration import config_logging
60
60
  from pyegeria._output_format_models import load_format_sets_from_json
61
- from pyegeria._output_formats import (select_output_format_set, get_output_format_set_heading,
62
- load_user_format_sets, load_output_format_sets,
63
- get_output_format_set_description)
61
+ from pyegeria.base_report_formats import (select_report_format, get_report_format_heading,
62
+ load_user_report_specs, load_report_specs,
63
+ get_report_format_description)
64
64
  from pyegeria._exceptions_new import PyegeriaException, print_exception_response
65
65
 
66
66
  # pydevd_pycharm.settrace('host.docker.internal', # Use 'host.docker.internal' to connect to the host machine
@@ -122,7 +122,7 @@ def execute_format_set_action(
122
122
  # Get the output format set
123
123
  # logger.info(f"Entering execute_format_set_action, format set name: {format_set_name}, search_string: {kwargs.get('search_string',"meow")}")
124
124
  # logger.info(json.dumps(kwargs, indent=2))
125
- format_set = select_output_format_set(format_set_name, output_format)
125
+ format_set = select_report_format(format_set_name, output_format)
126
126
  if not format_set:
127
127
  print(f"Error: Output format set '{format_set_name}' does not have a format compatible with output format '{output_format}'.")
128
128
  return
@@ -154,7 +154,7 @@ def execute_format_set_action(
154
154
  params.update(spec_params)
155
155
 
156
156
  params['output_format'] = output_format
157
- params['output_format_set'] = format_set_name
157
+ params['report_spec'] = format_set_name
158
158
 
159
159
  # Determine the appropriate client class based on the format set name or function
160
160
  client_class = None
@@ -206,8 +206,8 @@ def execute_format_set_action(
206
206
  client.create_egeria_bearer_token()
207
207
 
208
208
  # Get heading and description information
209
- heading = get_output_format_set_heading(format_set_name)
210
- desc = get_output_format_set_description(format_set_name)
209
+ heading = get_report_format_heading(format_set_name)
210
+ desc = get_report_format_description(format_set_name)
211
211
  preamble = f"# {heading}\n{desc}\n\n" if heading and desc else ""
212
212
 
213
213
  try:
@@ -366,14 +366,14 @@ def main():
366
366
 
367
367
  # Get the format set to determine parameters
368
368
  format_set_name = initial_args.report
369
- format_set = select_output_format_set(format_set_name, "ANY")
369
+ format_set = select_report_format(format_set_name, "ANY")
370
370
 
371
371
  # Check if the format set exists
372
372
  if not format_set:
373
373
  print(f"Error: Format set for '{format_set_name}' not found.")
374
374
  print("Available format sets:")
375
- from pyegeria._output_formats import output_format_set_list
376
- for name in output_format_set_list():
375
+ from pyegeria.base_report_formats import report_spec_list
376
+ for name in report_spec_list():
377
377
  print(f" - {name}")
378
378
  return
379
379
 
@@ -81,9 +81,7 @@ def display_archive_list(
81
81
  open_metadata_type_name = None
82
82
  property_value = "omarchive"
83
83
  property_names = ["fileExtension"]
84
- archives = c_client.get_elements_by_property_value(
85
- property_value, property_names, open_metadata_type_name
86
- )
84
+ archives = c_client.get_elements_by_property_value(property_value, property_names, open_metadata_type_name)
87
85
 
88
86
  if type(archives) != list:
89
87
  raise ValueError("--> No archives found")
@@ -25,7 +25,7 @@ from pyegeria import (
25
25
  )
26
26
  from pyegeria.config import settings, get_app_config
27
27
  from pyegeria.logging_configuration import config_logging
28
- from pyegeria._output_formats import (select_output_format_set, get_output_format_set_heading, get_output_format_set_description)
28
+ from pyegeria.base_report_formats import (select_report_spec, get_report_spec_heading, get_report_spec_description)
29
29
  from pyegeria._exceptions_new import (PyegeriaException, print_basic_exception, print_validation_error,
30
30
  PyegeriaInvalidParameterException, PyegeriaConnectionException,
31
31
  PyegeriaAPIException, PyegeriaUnknownException, print_exception_table
@@ -92,7 +92,7 @@ try:
92
92
  qualified_name = client.__create_qualified_name__("Folder", display_name)
93
93
 
94
94
  props_body = {
95
- "class": "CollectionProperties",
95
+ "class": "DigitalProductCatalogProperties",
96
96
  "qualifiedName": qualified_name,
97
97
  "displayName": display_name,
98
98
  "description": description,
@@ -115,7 +115,7 @@ try:
115
115
  marketplace_guid = marketplace[0]['elementHeader']['guid']
116
116
  print(f"Found marketplace guid of {marketplace_guid}")
117
117
  else:
118
- marketplace_guid = client.create_folder_collection(body=request_body)
118
+ marketplace_guid = client.create_digital_product_catalog(body=request_body)
119
119
  logger.success(f"Created folder collection for marketplace: {marketplace_guid}")
120
120
  #
121
121
  # GeoSpatial Products folder
@@ -126,7 +126,7 @@ try:
126
126
  qualified_name = client.__create_qualified_name__("Folder", display_name)
127
127
 
128
128
  props_body = {
129
- "class": "CollectionProperties",
129
+ "class": "DigitalProductCatalogProperties",
130
130
  "qualifiedName": qualified_name,
131
131
  "displayName": display_name,
132
132
  "description": description,
@@ -148,7 +148,7 @@ try:
148
148
  geo_prods_guid = geo_prods[0]['elementHeader']['guid']
149
149
  print(f"Found geo_prods guid of {geo_prods_guid}")
150
150
  else:
151
- geo_prods_guid = client.create_folder_collection(body=request_body)
151
+ geo_prods_guid = client.create_digital_product_catalog(body=request_body)
152
152
  logger.success(f"Created folder collection for geoprods: {geo_prods_guid}")
153
153
  #
154
154
  # Agricultural Products Folder
@@ -160,7 +160,7 @@ try:
160
160
 
161
161
  props_body = {
162
162
 
163
- "class": "CollectionProperties",
163
+ "class": "DigitalProductCatalogProperties",
164
164
  "qualifiedName": qualified_name,
165
165
  "displayName": display_name,
166
166
  "description": description,
@@ -183,7 +183,7 @@ try:
183
183
  ag_prods_guid = ag_prods[0]['elementHeader']['guid']
184
184
  print(f"Found ag_prods guid of {ag_prods_guid}")
185
185
  else:
186
- ag_prods_guid = client.create_folder_collection(body=request_body)
186
+ ag_prods_guid = client.create_digital_product_catalog(body=request_body)
187
187
  logger.success(f"Created folder collection for ag products: {ag_prods_guid}")
188
188
  #
189
189
  # Folder to hold Prepared Imagery Products
@@ -194,7 +194,7 @@ try:
194
194
  qualified_name = client.__create_qualified_name__("Folder", display_name)
195
195
 
196
196
  props_body = {
197
- "class": "CollectionProperties",
197
+ "class": "DigitalProductCatalogProperties",
198
198
  "qualifiedName": qualified_name,
199
199
  "displayName": display_name,
200
200
  "description": description,
@@ -216,7 +216,7 @@ try:
216
216
  prepared_imagery_guid = prepared_imagery[0]['elementHeader']['guid']
217
217
  print(f"Found prepared_imagery guid of {prepared_imagery_guid}")
218
218
  else:
219
- prepared_imagery_guid = client.create_folder_collection(body=request_body)
219
+ prepared_imagery_guid = client.create_digital_product_catalog(body=request_body)
220
220
  logger.success(f"Created folder for prepared imagery products: {prepared_imagery_guid}")
221
221
  #
222
222
  # A digital product covering NDVI - derived from Sentinel 2
@@ -266,7 +266,7 @@ try:
266
266
  qualified_name = client.__create_qualified_name__("Folder", display_name)
267
267
 
268
268
  props_body = {
269
- "class": "CollectionProperties",
269
+ "class": "DigitalProductCatalogProperties",
270
270
  "qualifiedName": qualified_name,
271
271
  "displayName": display_name,
272
272
  "description": description,
@@ -288,7 +288,7 @@ try:
288
288
  raw_imagery_guid = raw_imagery[0]['elementHeader']['guid']
289
289
  print(f"Found raw_imagery guid of {raw_imagery_guid}")
290
290
  else:
291
- raw_imagery_guid = client.create_folder_collection(body=request_body)
291
+ raw_imagery_guid = client.create_digital_product_catalog(body=request_body)
292
292
  logger.success(f"Created folder for raw imagery products: {raw_imagery_guid}")
293
293
  #
294
294
  # A digital product providing Sentinel-2a imagery
@@ -9,7 +9,7 @@
9
9
  "types": [
10
10
  "ALL"
11
11
  ],
12
- "columns": [
12
+ "attributes": [
13
13
  {
14
14
  "name": "Display Name",
15
15
  "key": "display_name",
@@ -129,7 +129,7 @@
129
129
  "types": [
130
130
  "DICT"
131
131
  ],
132
- "columns": [
132
+ "attributes": [
133
133
  {
134
134
  "name": "Display Name",
135
135
  "key": "display_name",
@@ -176,7 +176,7 @@
176
176
  "types": [
177
177
  "TABLE"
178
178
  ],
179
- "columns": [
179
+ "attributes": [
180
180
  {
181
181
  "name": "Display Name",
182
182
  "key": "display_name",
@@ -203,7 +203,7 @@
203
203
  "types": [
204
204
  "ALL"
205
205
  ],
206
- "columns": [
206
+ "attributes": [
207
207
  {
208
208
  "name": "Display Name",
209
209
  "key": "display_name",
@@ -255,7 +255,7 @@
255
255
  "types": [
256
256
  "DICT"
257
257
  ],
258
- "columns": [
258
+ "attributes": [
259
259
  {
260
260
  "name": "Display Name",
261
261
  "key": "display_name",
@@ -302,7 +302,7 @@
302
302
  "types": [
303
303
  "TABLE"
304
304
  ],
305
- "columns": [
305
+ "attributes": [
306
306
  {
307
307
  "name": "Display Name",
308
308
  "key": "display_name",
@@ -351,7 +351,7 @@
351
351
  "types": [
352
352
  "REPORT"
353
353
  ],
354
- "columns": [
354
+ "attributes": [
355
355
  {
356
356
  "name": "Display Name",
357
357
  "key": "display_name",
@@ -444,7 +444,7 @@
444
444
  "types": [
445
445
  "ALL"
446
446
  ],
447
- "columns": [
447
+ "attributes": [
448
448
  {
449
449
  "name": "Display Name",
450
450
  "key": "display_name",
@@ -487,7 +487,7 @@
487
487
  "types": [
488
488
  "ALL"
489
489
  ],
490
- "columns": [
490
+ "attributes": [
491
491
  {
492
492
  "name": "Display Name",
493
493
  "key": "display_name",
@@ -542,7 +542,7 @@
542
542
  "REPORT",
543
543
  "HTML"
544
544
  ],
545
- "columns": [
545
+ "attributes": [
546
546
  {
547
547
  "name": "Display Name",
548
548
  "key": "display_name",
@@ -574,7 +574,7 @@
574
574
  "types": [
575
575
  "MERMAID"
576
576
  ],
577
- "columns": [
577
+ "attributes": [
578
578
  {
579
579
  "name": "Display Name",
580
580
  "key": "display_name",
@@ -591,7 +591,7 @@
591
591
  "types": [
592
592
  "ALL"
593
593
  ],
594
- "columns": [
594
+ "attributes": [
595
595
  {
596
596
  "name": "Display Name",
597
597
  "key": "display_name",
@@ -647,7 +647,7 @@
647
647
  "types": [
648
648
  "ALL"
649
649
  ],
650
- "columns": [
650
+ "attributes": [
651
651
  {
652
652
  "name": "Display Name",
653
653
  "key": "display_name",
@@ -699,7 +699,7 @@
699
699
  "types": [
700
700
  "ALL"
701
701
  ],
702
- "columns": [
702
+ "attributes": [
703
703
  {
704
704
  "name": "Display Name",
705
705
  "key": "display_name",
@@ -747,7 +747,7 @@
747
747
  "types": [
748
748
  "TABLE"
749
749
  ],
750
- "columns": [
750
+ "attributes": [
751
751
  {
752
752
  "name": "Display Name",
753
753
  "key": "display_name",
@@ -780,7 +780,7 @@
780
780
  "DICT",
781
781
  "LIST"
782
782
  ],
783
- "columns": [
783
+ "attributes": [
784
784
  {
785
785
  "name": "Display Name",
786
786
  "key": "display_name",
@@ -814,7 +814,7 @@
814
814
  "MERMAID",
815
815
  "HTML"
816
816
  ],
817
- "columns": [
817
+ "attributes": [
818
818
  {
819
819
  "name": "Display Name",
820
820
  "key": "display_name",
@@ -856,7 +856,7 @@
856
856
  "types": [
857
857
  "ALL"
858
858
  ],
859
- "columns": [
859
+ "attributes": [
860
860
  {
861
861
  "name": "Display Name",
862
862
  "key": "display_name",
@@ -12,7 +12,7 @@
12
12
  "types": [
13
13
  "TABLE"
14
14
  ],
15
- "columns": [
15
+ "attributes": [
16
16
  {
17
17
  "name": "ID",
18
18
  "key": "id",
@@ -35,7 +35,7 @@
35
35
  "DETAIL",
36
36
  "FORM"
37
37
  ],
38
- "columns": [
38
+ "attributes": [
39
39
  {
40
40
  "name": "ID",
41
41
  "key": "id",
@@ -78,7 +78,7 @@
78
78
  "TECHNICAL",
79
79
  "DICT"
80
80
  ],
81
- "columns": [
81
+ "attributes": [
82
82
  {
83
83
  "name": "ID",
84
84
  "key": "id",
@@ -135,7 +135,7 @@
135
135
  "types": [
136
136
  "TABLE"
137
137
  ],
138
- "columns": [
138
+ "attributes": [
139
139
  {
140
140
  "name": "ID",
141
141
  "key": "id",
@@ -158,7 +158,7 @@
158
158
  "DETAIL",
159
159
  "FORM"
160
160
  ],
161
- "columns": [
161
+ "attributes": [
162
162
  {
163
163
  "name": "ID",
164
164
  "key": "id",
@@ -201,7 +201,7 @@
201
201
  "FULL",
202
202
  "REPORT"
203
203
  ],
204
- "columns": [
204
+ "attributes": [
205
205
  {
206
206
  "name": "ID",
207
207
  "key": "id",
@@ -23,7 +23,7 @@
23
23
  "types": [
24
24
  "DICT"
25
25
  ],
26
- "columns": [
26
+ "attributes": [
27
27
  {
28
28
  "name": "Display Name",
29
29
  "key": "display_name",
@@ -70,7 +70,7 @@
70
70
  "types": [
71
71
  "TABLE"
72
72
  ],
73
- "columns": [
73
+ "attributes": [
74
74
  {
75
75
  "name": "Display Name",
76
76
  "key": "display_name",
@@ -97,7 +97,7 @@
97
97
  "types": [
98
98
  "ALL"
99
99
  ],
100
- "columns": [
100
+ "attributes": [
101
101
  {
102
102
  "name": "Display Name",
103
103
  "key": "display_name",
@@ -148,7 +148,7 @@
148
148
  "types": [
149
149
  "ALL"
150
150
  ],
151
- "columns": [
151
+ "attributes": [
152
152
  {
153
153
  "name": "Display Name",
154
154
  "key": "display_name",
@@ -22,12 +22,12 @@ from pathlib import Path
22
22
  sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
23
23
 
24
24
  from pyegeria._output_format_models import Column, Format, ActionParameter, FormatSet, FormatSetDict
25
- from pyegeria._output_formats import (
26
- output_format_sets,
27
- save_output_format_sets,
28
- load_output_format_sets,
25
+ from pyegeria.base_report_formats import (
26
+ report_specs,
27
+ save_report_specs,
28
+ load_report_specs,
29
29
  USER_FORMAT_SETS_DIR,
30
- select_output_format_set,
30
+ select_report_spec,
31
31
  )
32
32
 
33
33
  def create_custom_format_sets():
@@ -143,7 +143,7 @@ def save_format_sets_example(custom_format_sets):
143
143
 
144
144
  # Save all format sets to a file
145
145
  all_format_sets_path = os.path.join(example_dir, "all_format_sets.json")
146
- save_output_format_sets(all_format_sets_path)
146
+ save_report_specs(all_format_sets_path)
147
147
  print(f"Saved all format sets to {all_format_sets_path}")
148
148
 
149
149
  # Save only the custom format sets to a file
@@ -153,7 +153,7 @@ def save_format_sets_example(custom_format_sets):
153
153
 
154
154
  # Save a subset of the predefined format sets to a file
155
155
  subset_format_sets_path = os.path.join(example_dir, "subset_format_sets.json")
156
- save_output_format_sets(subset_format_sets_path, format_set_names=["Collections", "DataDictionary"])
156
+ save_report_specs(subset_format_sets_path, format_set_names=["Collections", "DataDictionary"])
157
157
  print(f"Saved subset of format sets to {subset_format_sets_path}")
158
158
 
159
159
  return custom_format_sets_path
@@ -199,12 +199,12 @@ def use_loaded_format_sets(loaded_format_sets):
199
199
  """
200
200
  print("\n=== Using Loaded Format Sets ===")
201
201
 
202
- # Add the loaded format sets to the global output_format_sets
202
+ # Add the loaded format sets to the global report_specs
203
203
  for name, format_set in loaded_format_sets.items():
204
- output_format_sets[name] = format_set
204
+ report_specs[name] = format_set
205
205
 
206
- # Use the select_output_format_set function to get a format set by name
207
- product_format_set = select_output_format_set("Product", "TABLE")
206
+ # Use the select_report_spec function to get a format set by name
207
+ product_format_set = select_report_spec("Product", "TABLE")
208
208
  if product_format_set:
209
209
  print(f"Found format set for 'Product' with output type 'TABLE'")
210
210
  print(f" Heading: {product_format_set['heading']}")
@@ -213,8 +213,8 @@ def use_loaded_format_sets(loaded_format_sets):
213
213
  else:
214
214
  print("Format set for 'Product' not found")
215
215
 
216
- # Use the select_output_format_set function to get a format set by alias
217
- customer_format_set = select_output_format_set("Customers", "DETAIL")
216
+ # Use the select_report_spec function to get a format set by alias
217
+ customer_format_set = select_report_spec("Customers", "DETAIL")
218
218
  if customer_format_set:
219
219
  print(f"Found format set for 'Customers' with output type 'DETAIL'")
220
220
  print(f" Heading: {customer_format_set['heading']}")
@@ -257,14 +257,14 @@ def user_format_sets_directory_example(custom_format_sets):
257
257
  print(f"Saved user custom format set to {user_format_sets_path}")
258
258
 
259
259
  # Load the user format sets
260
- from pyegeria._output_formats import load_user_format_sets
261
- load_user_format_sets()
260
+ from pyegeria.base_report_formats import load_user_report_specs
261
+ load_user_report_specs()
262
262
 
263
263
  # Check if the user format set was loaded
264
- if "UserCustomFormatSet" in output_format_sets:
264
+ if "UserCustomFormatSet" in report_specs:
265
265
  print("User custom format set was successfully loaded")
266
- print(f" Heading: {output_format_sets['UserCustomFormatSet'].heading}")
267
- print(f" Description: {output_format_sets['UserCustomFormatSet'].description}")
266
+ print(f" Heading: {report_specs['UserCustomFormatSet'].heading}")
267
+ print(f" Description: {report_specs['UserCustomFormatSet'].description}")
268
268
  else:
269
269
  print("User custom format set was not loaded")
270
270