pyegeria 5.4.0.dev11__py3-none-any.whl → 5.4.0.dev12__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 (28) hide show
  1. commands/cat/debug_log +6004 -19655
  2. commands/cat/debug_log.2025-07-01_15-22-20_102237.zip +0 -0
  3. commands/cat/debug_log.2025-07-04_15-43-28_460900.zip +0 -0
  4. commands/cat/debug_log.2025-07-06_20-48-04_338314.zip +0 -0
  5. commands/cat/debug_log.2025-07-09_10-17-09_526262.zip +0 -0
  6. commands/cat/dr_egeria_md.py +23 -13
  7. commands/cat/list_collections.py +9 -2
  8. md_processing/__init__.py +3 -1
  9. md_processing/data/commands.json +7842 -2231
  10. md_processing/md_commands/data_designer_commands.py +29 -19
  11. md_processing/md_commands/glossary_commands.py +3 -1
  12. md_processing/md_commands/product_manager_commands.py +1746 -0
  13. md_processing/md_commands/solution_architect_commands.py +390 -236
  14. md_processing/md_processing_utils/common_md_proc_utils.py +7 -5
  15. md_processing/md_processing_utils/md_processing_constants.py +25 -4
  16. pyegeria/__init__.py +1 -0
  17. pyegeria/_client.py +0 -1
  18. pyegeria/collection_manager_omvs.py +156 -117
  19. pyegeria/data_designer_omvs.py +16 -8
  20. pyegeria/egeria_tech_client.py +9 -25
  21. pyegeria/governance_officer_omvs.py +1446 -1343
  22. pyegeria/output_formatter.py +96 -8
  23. pyegeria/solution_architect_omvs.py +2278 -1728
  24. {pyegeria-5.4.0.dev11.dist-info → pyegeria-5.4.0.dev12.dist-info}/METADATA +1 -1
  25. {pyegeria-5.4.0.dev11.dist-info → pyegeria-5.4.0.dev12.dist-info}/RECORD +28 -23
  26. {pyegeria-5.4.0.dev11.dist-info → pyegeria-5.4.0.dev12.dist-info}/LICENSE +0 -0
  27. {pyegeria-5.4.0.dev11.dist-info → pyegeria-5.4.0.dev12.dist-info}/WHEEL +0 -0
  28. {pyegeria-5.4.0.dev11.dist-info → pyegeria-5.4.0.dev12.dist-info}/entry_points.txt +0 -0
@@ -454,8 +454,7 @@ def process_data_spec_upsert_command(egeria_client: EgeriaTech, txt: str, direct
454
454
  is_own_anchor = True
455
455
 
456
456
  collection_type = attributes.get('Collection Type', {}).get('value', None)
457
- collection_ordering = attributes.get('Collection Ordering', {}).get('value', None)
458
- order_property_name = attributes.get('Order Property Name', {}).get('value', None)
457
+
459
458
  replace_all_props = not attributes.get('Merge Update', {}).get('value', True)
460
459
 
461
460
  additional_prop = attributes.get('Additional Properties', {}).get('value', None)
@@ -493,7 +492,7 @@ def process_data_spec_upsert_command(egeria_client: EgeriaTech, txt: str, direct
493
492
  f"==> Validation of {command} completed successfully! Proceeding to apply the changes.\n"))
494
493
 
495
494
  egeria_client.update_collection(guid, qualified_name, display_name, description, collection_type,
496
- collection_ordering, order_property_name, additional_properties,
495
+ additional_properties,
497
496
  extended_properties, replace_all_props)
498
497
  logger.success(f"Updated {object_type} `{display_name}` with GUID {guid}\n\n___")
499
498
  update_element_dictionary(qualified_name, {
@@ -519,7 +518,6 @@ def process_data_spec_upsert_command(egeria_client: EgeriaTech, txt: str, direct
519
518
  is_own_anchor, anchor_guid, parent_guid,
520
519
  parent_relationship_type_name, parent_at_end1,
521
520
  collection_type, anchor_scope_guid,
522
- collection_ordering, order_property_name,
523
521
  additional_properties, extended_properties)
524
522
  if guid:
525
523
  update_element_dictionary(qualified_name, {
@@ -581,8 +579,6 @@ def process_data_dict_upsert_command(egeria_client: EgeriaTech, txt: str, direct
581
579
  if parent_guid is None:
582
580
  is_own_anchor = True
583
581
  collection_type = attributes.get('Collection Type', {}).get('value', None)
584
- collection_ordering = attributes.get('Collection Ordering', {}).get('value', None)
585
- order_property_name = attributes.get('Order Property Name', {}).get('value', None)
586
582
  replace_all_props = not attributes.get('Merge Update', {}).get('value', True)
587
583
 
588
584
  additional_prop = attributes.get('Additional Properties', {}).get('value', None)
@@ -616,7 +612,7 @@ def process_data_dict_upsert_command(egeria_client: EgeriaTech, txt: str, direct
616
612
  f"==> Validation of {command} completed successfully! Proceeding to apply the changes."))
617
613
 
618
614
  egeria_client.update_collection(guid, qualified_name, display_name, description, collection_type,
619
- collection_ordering, order_property_name, additional_properties,
615
+ additional_properties,
620
616
  extended_properties, replace_all_props)
621
617
  logger.success(f"Updated {object_type} `{display_name}` with GUID {guid}\n\n___")
622
618
  update_element_dictionary(qualified_name, {
@@ -634,8 +630,7 @@ def process_data_dict_upsert_command(egeria_client: EgeriaTech, txt: str, direct
634
630
  is_own_anchor, anchor_guid, parent_guid,
635
631
  parent_relationship_type_name,
636
632
  parent_at_end1, collection_type,
637
- anchor_scope_guid, collection_ordering,
638
- order_property_name, additional_properties,
633
+ anchor_scope_guid, additional_properties,
639
634
  extended_properties)
640
635
  if guid:
641
636
  update_element_dictionary(qualified_name, {
@@ -1406,12 +1401,24 @@ def process_data_collection_list_command(egeria_client: EgeriaTech, txt: str, di
1406
1401
 
1407
1402
  parsed_output = parse_view_command(egeria_client, object_type, object_action, txt, directive)
1408
1403
 
1409
- attributes = parsed_output['attributes']
1404
+
1410
1405
 
1411
1406
  valid = parsed_output['valid']
1412
1407
  print(Markdown(f"Performing {command}"))
1413
1408
  print(Markdown(parsed_output['display']))
1414
1409
 
1410
+ attr = parsed_output.get('attributes',{})
1411
+ effective_time = attr.get('effectiveTime', {}).get('value', None)
1412
+ as_of_time = attr.get('asOfTime', {}).get('value', None)
1413
+ for_duplicate_processing = attr.get('forDuplicateProcessing', {}).get('value', False)
1414
+ for_lineage = attr.get('forLineage',{}).get('value', False)
1415
+ limit_result_by_status = attr.get('limitResultsByStatus',{}).get('value', ['ACTIVE'])
1416
+ sequencing_property = attr.get('sequencingProperty',{}).get('value',"qualifiedName" )
1417
+ sequencing_order = attr.get('sequencingOrder',{}).get('value', "PROPERTY_ASCENDING")
1418
+ search_string = attr.get('Search String', {}).get('value', '*')
1419
+ output_format = attr.get('Output Format', {}).get('value', 'LIST')
1420
+ detailed = attr.get('Detailed', {}).get('value', False)
1421
+
1415
1422
  if directive == "display":
1416
1423
  return None
1417
1424
  elif directive == "validate":
@@ -1423,11 +1430,6 @@ def process_data_collection_list_command(egeria_client: EgeriaTech, txt: str, di
1423
1430
  return valid
1424
1431
 
1425
1432
  elif directive == "process":
1426
- attributes = parsed_output['attributes']
1427
- search_string = attributes.get('Search String', {}).get('value', '*')
1428
- output_format = attributes.get('Output Format', {}).get('value', 'LIST')
1429
- detailed = attributes.get('Detailed', {}).get('value', False)
1430
-
1431
1433
  try:
1432
1434
  if not valid: # First validate the command before we process it
1433
1435
  msg = f"Validation failed for {object_action} `{object_type}`\n"
@@ -1435,11 +1437,19 @@ def process_data_collection_list_command(egeria_client: EgeriaTech, txt: str, di
1435
1437
  return None
1436
1438
 
1437
1439
  list_md = f"\n# `{col_type}` with filter: `{search_string}`\n\n"
1438
- if search_string == "*":
1439
- struct = egeria_client.get_classified_collections(col_type, output_format=output_format)
1440
- else:
1441
- struct = egeria_client.find_collections(search_string, output_format=output_format)
1440
+ body = {
1441
+ "class": "FilterRequestBody",
1442
+ "asOfTime": as_of_time,
1443
+ "effectiveTime": effective_time,
1444
+ "forLineage": for_lineage,
1445
+ "forDuplicateProcessing": for_duplicate_processing,
1446
+ "limitResultsByStatus": limit_result_by_status,
1447
+ "sequencingOrder": sequencing_order,
1448
+ "sequencingProperty": sequencing_property,
1449
+ "filter": search_string,
1450
+ }
1442
1451
 
1452
+ struct = egeria_client.find_collections_w_body(body, col_type, output_format=output_format)
1443
1453
  if output_format == "DICT":
1444
1454
  list_md += f"```\n{json.dumps(struct, indent=4)}\n```\n"
1445
1455
  else:
@@ -527,7 +527,9 @@ def process_term_upsert_command(egeria_client: EgeriaTech, txt: str, directive:
527
527
  else:
528
528
  known_glossary_q_name, known_glossary_guid, glossary_valid, glossary_exists = process_element_identifiers(
529
529
  egeria_client, "Glossary", GLOSSARY_NAME_LABELS, txt, EXISTS_REQUIRED, None)
530
- # Todo - add logic to fail if no valid glossary provided.
530
+ if not glossary_exists or known_glossary_guid is None:
531
+ glossary_valid = False
532
+ valid = False
531
533
 
532
534
  # process categories, if present
533
535
  categories = process_simple_attribute(txt, ['Glossary Categories', 'Glossary Category', 'Category', 'Categories'])