pyegeria 5.3.9.9.7__py3-none-any.whl → 5.4.0.dev2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. commands/cat/debug_log.2025-06-05_20-24-18_123924.log.zip +0 -0
  2. commands/cat/debug_log.2025-06-10_08-45-03_929921.log.zip +0 -0
  3. commands/cat/debug_log.2025-06-11_09-57-21_247890.log.zip +0 -0
  4. commands/cat/debug_log.2025-06-12_16-14-31_212042.log.zip +0 -0
  5. commands/cat/dr_egeria_md.py +32 -5
  6. commands/cat/list_collections.py +10 -4
  7. commands/cat/list_data_designer.py +171 -0
  8. md_processing/__init__.py +7 -2
  9. md_processing/data/commands.json +4666 -848
  10. md_processing/md_commands/data_designer_commands.py +840 -557
  11. md_processing/md_commands/solution_architect_commands.py +985 -0
  12. md_processing/md_processing_utils/common_md_proc_utils.py +262 -89
  13. md_processing/md_processing_utils/common_md_utils.py +11 -4
  14. md_processing/md_processing_utils/md_processing_constants.py +18 -16
  15. pyegeria/_client.py +39 -0
  16. pyegeria/classification_manager_omvs.py +1 -1
  17. pyegeria/collection_manager_omvs.py +248 -188
  18. pyegeria/data_designer_omvs.py +217 -9
  19. pyegeria/governance_officer_omvs.py +2349 -0
  20. pyegeria/output_formatter.py +24 -12
  21. pyegeria/solution_architect_omvs.py +4219 -1084
  22. pyegeria/utils.py +15 -2
  23. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/METADATA +2 -1
  24. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/RECORD +27 -62
  25. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/entry_points.txt +3 -0
  26. commands/cat/.DS_Store +0 -0
  27. md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +0 -254
  28. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +0 -696
  29. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +0 -254
  30. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +0 -298
  31. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +0 -608
  32. md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +0 -94
  33. md_processing/dr_egeria_inbox/archive/freddie_intro.md +0 -284
  34. md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +0 -275
  35. md_processing/dr_egeria_inbox/archive/test-term.md +0 -110
  36. md_processing/dr_egeria_inbox/cat_test.md +0 -100
  37. md_processing/dr_egeria_inbox/data_field.md +0 -54
  38. md_processing/dr_egeria_inbox/data_spec.md +0 -77
  39. md_processing/dr_egeria_inbox/data_spec_test.md +0 -2406
  40. md_processing/dr_egeria_inbox/data_test.md +0 -86
  41. md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +0 -168
  42. md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +0 -280
  43. md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +0 -313
  44. md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +0 -1073
  45. md_processing/dr_egeria_inbox/dr_egeria_isc1.md +0 -44
  46. md_processing/dr_egeria_inbox/glossary_test1.md +0 -324
  47. md_processing/dr_egeria_inbox/rel.md +0 -8
  48. md_processing/dr_egeria_inbox/sb.md +0 -119
  49. md_processing/dr_egeria_inbox/search_test.md +0 -39
  50. md_processing/dr_egeria_inbox/solution-components.md +0 -154
  51. md_processing/dr_egeria_inbox/solution_blueprints.md +0 -118
  52. md_processing/dr_egeria_inbox/synonym_test.md +0 -42
  53. md_processing/dr_egeria_inbox/t1.md +0 -0
  54. md_processing/dr_egeria_inbox/t2.md +0 -268
  55. md_processing/dr_egeria_outbox/processed-2025-05-15 19:52-data_test.md +0 -94
  56. md_processing/dr_egeria_outbox/processed-2025-05-16 07:39-data_test.md +0 -88
  57. md_processing/dr_egeria_outbox/processed-2025-05-17 16:01-data_field.md +0 -56
  58. md_processing/dr_egeria_outbox/processed-2025-05-18 15:51-data_test.md +0 -103
  59. md_processing/dr_egeria_outbox/processed-2025-05-18 16:47-data_test.md +0 -94
  60. md_processing/dr_egeria_outbox/processed-2025-05-19 07:14-data_test.md +0 -96
  61. md_processing/dr_egeria_outbox/processed-2025-05-19 07:20-data_test.md +0 -100
  62. md_processing/dr_egeria_outbox/processed-2025-05-19 07:22-data_test.md +0 -88
  63. md_processing/dr_egeria_outbox/processed-2025-05-19 09:26-data_test.md +0 -91
  64. md_processing/dr_egeria_outbox/processed-2025-05-19 10:27-data_test.md +0 -91
  65. md_processing/dr_egeria_outbox/processed-2025-05-19 14:04-data_test.md +0 -91
  66. md_processing/md_commands/blueprint_commands.py +0 -303
  67. pyegeria/.DS_Store +0 -0
  68. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/LICENSE +0 -0
  69. {pyegeria-5.3.9.9.7.dist-info → pyegeria-5.4.0.dev2.dist-info}/WHEEL +0 -0
@@ -26,11 +26,12 @@ def make_preamble(obj_type: str, search_string: str, output_format: str = 'MD')
26
26
  - A string or None indicating the action description for the elements,
27
27
  depending on the output format.
28
28
  """
29
- search_string = search_string if search_string else "All Elements"
29
+ # search_string = search_string if search_string else "All Elements"
30
30
  elements_action = "Update " + obj_type
31
31
  if output_format == "FORM":
32
- preamble = (f"\n# Update {obj_type} Form - created at {datetime.now().strftime('%Y-%m-%d %H:%M')}\n"
33
- f"\t {obj_type} found from the search string: `{search_string}`\n\n")
32
+ preamble = f"\n# Update {obj_type} Form - created at {datetime.now().strftime('%Y-%m-%d %H:%M')}\n"
33
+ if search_string:
34
+ preamble += f"\t {obj_type} found from the search string: `{search_string}`\n\n"
34
35
  return preamble, elements_action
35
36
  elif output_format == "REPORT":
36
37
  elements_md = (f"# {obj_type} Report - created at {datetime.now().strftime('%Y-%m-%d %H:%M')}\n"
@@ -53,12 +54,15 @@ def make_md_attribute(attribute_name: str, attribute_value: str, output_type: st
53
54
  str: Formatted markdown for the attribute
54
55
  """
55
56
  output = ""
56
- attribute_value = attribute_value.strip() if attribute_value else ""
57
+ if isinstance(attribute_value,str):
58
+ attribute_value = attribute_value.strip() if attribute_value else ""
57
59
  attribute_title = attribute_name.title() if attribute_name else ""
58
60
  if output_type in ["FORM", "MD"]:
59
61
  output = f"## {attribute_title}\n{attribute_value}\n\n"
60
62
  elif output_type == "REPORT":
61
- if attribute_value:
63
+ if attribute_title == 'Mermaid Graph':
64
+ output = f"## Mermaid Graph\n```mermaid\n{attribute_value}\n```\n"
65
+ elif attribute_value:
62
66
  output = f"## {attribute_title}\n{attribute_value}\n\n"
63
67
  return output
64
68
 
@@ -101,6 +105,8 @@ def generate_entity_md(elements: List[Dict],
101
105
  elements_md = ""
102
106
 
103
107
  for element in elements:
108
+ if element is None:
109
+ continue
104
110
  props = extract_properties_func(element)
105
111
 
106
112
  # Get additional properties if function is provided
@@ -227,6 +233,8 @@ def generate_entity_dict(elements: List[Dict],
227
233
  result = []
228
234
 
229
235
  for element in elements:
236
+ if element is None:
237
+ continue
230
238
  props = extract_properties_func(element)
231
239
 
232
240
  # Get additional properties if function is provided
@@ -289,10 +297,12 @@ def extract_basic_dict(elements: Union[Dict, List[Dict]]) -> Union[Dict, List[Di
289
297
  # Add classifications if present
290
298
  classifications = elements['elementHeader'].get('classifications', [])
291
299
  if classifications:
292
- classification_names = ""
300
+ classification_names = "["
293
301
  for classification in classifications:
294
- classification_names += f"* {classification['classificationName']}\n"
295
- body['classification_names'] = classification_names
302
+ if len(classification_names) > 1:
303
+ classification_names += ", "
304
+ classification_names += f"{classification['classificationName']}"
305
+ body['classification_names'] = classification_names + ']'
296
306
 
297
307
  return body
298
308
 
@@ -305,10 +315,12 @@ def extract_basic_dict(elements: Union[Dict, List[Dict]]) -> Union[Dict, List[Di
305
315
  # Add classifications if present
306
316
  classifications = element['elementHeader'].get('classifications', [])
307
317
  if classifications:
308
- classification_names = ""
318
+ classification_names = "["
309
319
  for classification in classifications:
310
- classification_names += f"* {classification['classificationName']}\n"
311
- body['classifications'] = classification_names
320
+ if len(classification_names) > 1:
321
+ classification_names += ", "
322
+ classification_names += f"{classification['classificationName']}"
323
+ body['classifications'] = classification_names + ']'
312
324
 
313
325
  result.append(body)
314
326
  return result
@@ -370,7 +382,7 @@ def generate_output(elements: Union[Dict, List[Dict]],
370
382
  output_format=output_format
371
383
  )
372
384
 
373
- else: # MD, FORM, REPORT
385
+ else: # MD, FORM, REPORT
374
386
  elements_md, elements_action = make_preamble(
375
387
  obj_type=entity_type,
376
388
  search_string=search_string,