pyegeria 5.4.4.4__py3-none-any.whl → 5.4.4.5__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.
@@ -109,7 +109,7 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
109
109
  return # No block to process
110
110
 
111
111
  potential_command = extract_command(current_block) # Extract object_action
112
- if (potential_command in cmd_list):
112
+ if potential_command in cmd_list:
113
113
  # Process the block based on the object_action
114
114
  if potential_command == "Provenance":
115
115
  result = process_provenance_command(input_file, current_block)
@@ -218,7 +218,7 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
218
218
  'Link Product-Product', 'Detach Product-Product'
219
219
  ]:
220
220
  result = process_product_dependency_command(client, current_block, directive)
221
- elif potential_command in ['Link Governed By', 'Detach Governed By']
221
+ elif potential_command in ['Link Governed By', 'Detach Governed By']:
222
222
  result = process_governed_by_link_detach_command(client, current_block, directive)
223
223
 
224
224
  elif potential_command in ['Link Agreement->Item', 'Detach Agreement->Item']:
@@ -12,11 +12,11 @@ from rich import print
12
12
  from rich.console import Console
13
13
  from rich.markdown import Markdown
14
14
 
15
- from md_processing import set_rel_prop_body
16
15
  from md_processing.md_processing_utils.common_md_proc_utils import (parse_upsert_command, parse_view_command)
17
16
  from md_processing.md_processing_utils.common_md_utils import (set_gov_prop_body,
18
17
  set_update_body, set_create_body,
19
- set_peer_gov_def_request_body,
18
+ set_peer_gov_def_request_body, set_rel_prop_body,
19
+ set_rel_request_body,
20
20
  ALL_GOVERNANCE_DEFINITIONS, set_delete_request_body)
21
21
  from md_processing.md_processing_utils.extraction_utils import (extract_command_plus, update_a_command)
22
22
  from md_processing.md_processing_utils.md_processing_constants import (load_commands)
@@ -451,7 +451,7 @@ def process_governed_by_link_detach_command(egeria_client: EgeriaTech, txt: str,
451
451
 
452
452
  attributes = parsed_output['attributes']
453
453
 
454
- element_guid = attributes.get('Referencable', {}).get('guid', None)
454
+ element_guid = attributes.get('Referenceable', {}).get('guid', None)
455
455
  definition_guid = attributes.get('Governance Definition', {}).get('guid', None)
456
456
  label = attributes.get('Link Label', {}).get('value', None)
457
457
  description = attributes.get('Description', {}).get('value', None)
@@ -299,7 +299,7 @@ def set_rel_prop_body(object_type: str, attributes: dict)->dict:
299
299
  return {
300
300
  "class": prop_name + "Properties",
301
301
  "description": attributes['Description'].get('value', None),
302
- "label": attributes.get('Label', {}).get('value', None),
302
+ "label": attributes.get('Label', {}).get('value', None) or attributes.get('Link Label', {}).get('value', None),
303
303
  "typeName" : attributes.get('Type Name', {}).get('value', None),
304
304
  "effectiveFrom": attributes.get('Effective From', {}).get('value', None),
305
305
  "effectiveTo": attributes.get('Effective To', {}).get('value', None),
@@ -71,7 +71,7 @@ GOV_COM_LIST = [ "Create Business Imperative", "Update Business Imperative",
71
71
  "Create Naming Standard Rule", "Update Naming Standard Rule",
72
72
  "Create Certification Type", "Update Certification Type",
73
73
  "Create License Type", "Update License Type",
74
- "Link Governed By", "Detach Governed By"
74
+
75
75
  ]
76
76
 
77
77
  SIMPLE_BASE_COLLECTIONS: set = { "Collection", "Home Collection", "Digital Product", "Result Set" , "Recent Access",
@@ -209,6 +209,7 @@ command_list = ["Provenance", "Create Glossary", "Update Glossary", "Create Term
209
209
  "Link Governance Drivers", "Detach Governance Drivers",
210
210
  "Link Governance Policies", "Detach Governance Policies",
211
211
  "Link Governance Controls", "Detach Governance Controls",
212
+ "Link Governed By", "Attach Governed By","Detach Governed By"
212
213
 
213
214
  ]
214
215
  command_list.extend(LIST_COMMANDS)
@@ -2356,6 +2356,108 @@ class CollectionManager(Client2):
2356
2356
  self._async_create_digital_product(body))
2357
2357
 
2358
2358
 
2359
+ @dynamic_catch
2360
+ async def _async_create_digital_product_catalog(self, body: dict | NewElementRequestBody) -> str:
2361
+ """ Create a new collection that represents a digital product.
2362
+ Async version.
2363
+
2364
+ Parameters
2365
+ ----------
2366
+ body: dict | NewElementRequestBody
2367
+ A structure representing the details of the digital product to create.
2368
+
2369
+ Returns
2370
+ -------
2371
+ str - the guid of the created collection
2372
+
2373
+ Raises
2374
+ ------
2375
+ PyegeriaException
2376
+ If the client passes incorrect parameters on the request - such as bad URLs or invalid values
2377
+ ValidationError
2378
+ Raised by the pydantic validator if the body does not conform to the NewElementRequestBody.
2379
+ NotAuthorizedException
2380
+ The principle specified by the user_id does not have authorization for the requested action
2381
+
2382
+ Notes
2383
+ -----
2384
+ Note: the three dates: introductionDate, nextVersionDate and withdrawDate must
2385
+ be valid dates if specified, otherwise you will get a 400 error response.
2386
+
2387
+ simple body version:
2388
+ {
2389
+ "class": "NewElementRequestBody",
2390
+ "isOwnAnchor": true,
2391
+ "properties": {
2392
+ "class": "DigitalProductCatalogProperties",
2393
+ "qualifiedName": "Must provide a unique name here",
2394
+ "displayName": "Add display name here",
2395
+ "description": "Add description of the collection here",
2396
+ "category": "Add appropriate valid value for type"
2397
+ }
2398
+ }
2399
+
2400
+ The valid values for initialStatus are: DRAFT, PREPARED, PROPOSED, APPROVED, REJECTED, APPROVED_CONCEPT,
2401
+ UNDER_DEVELOPMENT, DEVELOPMENT_COMPLETE, APPROVED_FOR_DEPLOYMENT, ACTIVE, DISABLED, DEPRECATED,
2402
+ OTHER. If using OTHER, set the userDefinedStatus with the status value you want. If not specified, will
2403
+ default to ACTIVE.
2404
+ """
2405
+ url = f"{self.collection_command_root}"
2406
+ return await self._async_create_element_body_request(url, "DigitalProductCatalogProperties", body)
2407
+
2408
+
2409
+ @dynamic_catch
2410
+ def create_digital_product_catalog(self, body: dict | NewElementRequestBody = None) -> str:
2411
+ """ Create a new collection that represents a digital product.
2412
+
2413
+ Parameters
2414
+ ----------
2415
+ body: dict | NewElementRequestBody
2416
+ A structure representing the details of the digital product to create.
2417
+
2418
+ Returns
2419
+ -------
2420
+ str - the guid of the created collection
2421
+
2422
+ Raises
2423
+ ------
2424
+ PyegeriaException
2425
+ If the client passes incorrect parameters on the request - such as bad URLs or invalid values
2426
+ ValidationError
2427
+ Raised by the pydantic validator if the body does not conform to the NewElementRequestBody.
2428
+ NotAuthorizedException
2429
+ The principle specified by the user_id does not have authorization for the requested action
2430
+
2431
+ Notes
2432
+ -----
2433
+ Note: the three dates: introductionDate, nextVersionDate and withdrawDate must
2434
+ be valid dates if specified, otherwise you will get a 400 error response.
2435
+
2436
+ simple body version:
2437
+ {
2438
+ "class": "NewElementRequestBody",
2439
+ "isOwnAnchor": true,
2440
+ "properties": {
2441
+ "class": "DigitalProductCatalogProperties",
2442
+ "qualifiedName": "Must provide a unique name here",
2443
+ "displayName": "Add display name here",
2444
+ "description": "Add description of the collection here",
2445
+ "category": "Add appropriate valid value for type"
2446
+ }
2447
+ }
2448
+
2449
+ The valid values for initialStatus are: DRAFT, PREPARED, PROPOSED, APPROVED, REJECTED, APPROVED_CONCEPT,
2450
+ UNDER_DEVELOPMENT, DEVELOPMENT_COMPLETE, APPROVED_FOR_DEPLOYMENT, ACTIVE, DISABLED, DEPRECATED,
2451
+ OTHER. If using OTHER, set the userDefinedStatus with the status value you want. If not specified, will
2452
+ default to ACTIVE.
2453
+ """
2454
+
2455
+ return asyncio.get_event_loop().run_until_complete(
2456
+ self._async_create_digital_product_catalog(body))
2457
+
2458
+
2459
+
2460
+
2359
2461
  @dynamic_catch
2360
2462
  async def _async_update_digital_product(self, collection_guid: str, body: dict | UpdateElementRequestBody) -> None:
2361
2463
  """ Update the properties of a digital product.
@@ -1429,7 +1429,7 @@ class GovernanceOfficer(Client2):
1429
1429
  """
1430
1430
  url = (
1431
1431
  f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/"
1432
- f"{self.url_marker}/elements/{element_guid}/governed-by/{definition_guid}/attach"
1432
+ f"{self.url_marker}/elements/{element_guid}/governed-by/definition/{definition_guid}/attach"
1433
1433
  )
1434
1434
  await self._async_new_relationship_request(url, "GovernedByProperties", body)
1435
1435
  logger.info(f"Linked Governed-By {definition_guid1} -> {definition_guid2}")
@@ -2472,6 +2472,188 @@ class GovernanceOfficer(Client2):
2472
2472
  loop = asyncio.get_event_loop()
2473
2473
  loop.run_until_complete(self._async_detach_implementation_resource(design_desc_guid, implementation_guid, body))
2474
2474
 
2475
+
2476
+ @dynamic_catch
2477
+ async def _async_link_governance_results(self, gov_metric_guid: str, data_asset_guid: str,
2478
+ body: dict | NewRelationshipRequestBody = None) -> None:
2479
+ """ Attach a governance metric to a data asset that describes where its measurements are kept.
2480
+ Request body is optional. https://egeria-project.org/concepts/governance-definition/
2481
+
2482
+ Async Version.
2483
+
2484
+ Parameters
2485
+ ----------
2486
+ gov_metric_guid: str
2487
+ guid of the governance metric to link.
2488
+ data_asset_guid: str
2489
+ guid of the data asset to link.
2490
+ body: dict, optional
2491
+ The body describing the link between the two elements.
2492
+
2493
+ Returns
2494
+ -------
2495
+ None
2496
+
2497
+ Raises
2498
+ ------
2499
+ PyegeriaException
2500
+ ValidationError
2501
+
2502
+ Notes
2503
+ ----
2504
+
2505
+ Body structure:
2506
+ {
2507
+ "class" : "NewRelationshipRequestBody",
2508
+ "properties": {
2509
+ "class": "GovernanceResultsProperties",
2510
+ "description": "",
2511
+ "effectiveFrom": "{{$isoTimestamp}}",
2512
+ "effectiveTo": "{{$isoTimestamp}}"
2513
+ },
2514
+ "externalSourceGUID": "add guid here",
2515
+ "externalSourceName": "add qualified name here",
2516
+ "effectiveTime" : "{{$isoTimestamp}}",
2517
+ "forLineage" : false,
2518
+ "forDuplicateProcessing" : false
2519
+ }
2520
+ """
2521
+
2522
+ url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/{self.url_marker}/governance-metrics/"
2523
+ f"{gov_metric_guid}/measurements/{data_asset_guid}/attach"
2524
+ )
2525
+ await self._async_new_relationship_request(url, "GovernanceResultsProperties", body)
2526
+ logger.info(f"Linked governance metric to a data asset containing its measurements.: {gov_metric_guid} -> {data_asset_guid}")
2527
+
2528
+ @dynamic_catch
2529
+ def link_governance_results(self, gov_metric_guid: str, data_asset_guid: str,
2530
+ body: dict | NewRelationshipRequestBody = None) -> None:
2531
+ """ Attach a governance metric to a data asset that describes where its measurements are kept.
2532
+ Request body is optional. https://egeria-project.org/concepts/governance-definition/
2533
+
2534
+
2535
+ Parameters
2536
+ ----------
2537
+ gov_metric_guid: str
2538
+ guid of the governance metric to link.
2539
+ data_asset_guid: str
2540
+ guid of the data asset to link.
2541
+ body: dict, optional
2542
+ The body describing the link between the two elements.
2543
+
2544
+ Returns
2545
+ -------
2546
+ None
2547
+
2548
+ Raises
2549
+ ------
2550
+ PyegeriaException
2551
+ ValidationError
2552
+
2553
+ Notes
2554
+ ----
2555
+
2556
+ Body structure:
2557
+ {
2558
+ "class" : "NewRelationshipRequestBody",
2559
+ "properties": {
2560
+ "class": "GovernanceResultsProperties",
2561
+ "description": "",
2562
+ "effectiveFrom": "{{$isoTimestamp}}",
2563
+ "effectiveTo": "{{$isoTimestamp}}"
2564
+ },
2565
+ "externalSourceGUID": "add guid here",
2566
+ "externalSourceName": "add qualified name here",
2567
+ "effectiveTime" : "{{$isoTimestamp}}",
2568
+ "forLineage" : false,
2569
+ "forDuplicateProcessing" : false
2570
+ }
2571
+ """
2572
+ loop = asyncio.get_event_loop()
2573
+ loop.run_until_complete(self._async_link_governance_results(gov_metric_guid, data_asset_guid, implementation_guid, body))
2574
+
2575
+ @dynamic_catch
2576
+ async def _async_detach_governance_results(self, gov_metric_guid: str, data_asset_guid: str, body: dict | DeleteRequestBody = None) -> None:
2577
+ """ Detach an governance metric from its measurements data set. Request body is optional.
2578
+ https://egeria-project.org/concepts/governance-definition/ Async version.
2579
+
2580
+ Parameters
2581
+ ----------
2582
+ gov_metric_guid: str
2583
+ guid of the governance metric to link.
2584
+ data_asset_guid: str
2585
+ guid of the data asset to link.
2586
+ body: dict, optional
2587
+ The body describing the link between the two elements.
2588
+
2589
+ Returns
2590
+ -------
2591
+ None
2592
+
2593
+ Raises
2594
+ ------
2595
+ PyegeriaException
2596
+ ValidationError
2597
+
2598
+ Notes
2599
+ ----
2600
+
2601
+ Body structure:
2602
+ {
2603
+ "class": "MetadataSourceRequestBody",
2604
+ "externalSourceGUID": "string",
2605
+ "externalSourceName": "string",
2606
+ "forLineage": true,
2607
+ "forDuplicateProcessing": true,
2608
+ "effectiveTime": "2025-06-13T15:13:31.339Z"
2609
+ }
2610
+ """
2611
+
2612
+ url = (f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/{self.url_marker}/governance-metrics/"
2613
+ f"{gov_metric_guid}/measurements/{data_asset_guid}/detach")
2614
+ await self._async_delete_request(url, body)
2615
+ logger.info(
2616
+ f"Detached governance metric from the asset where measurements were stored: {gov_metric_guid} -> {data_asset_guid}")
2617
+
2618
+ def detach_governance_results(self, gov_metric_guid: str, data_asset_guid: str,
2619
+ body: dict | DeleteRequestBody = None) -> None:
2620
+ """ Detach an governance metric from its measurements data set. Request body is optional.
2621
+ https://egeria-project.org/concepts/governance-definition/
2622
+
2623
+ Parameters
2624
+ ----------
2625
+ gov_metric_guid: str
2626
+ guid of the governance metric to link.
2627
+ data_asset_guid: str
2628
+ guid of the data asset to link.
2629
+ body: dict, optional
2630
+ The body describing the link between the two elements.
2631
+
2632
+ Returns
2633
+ -------
2634
+ None
2635
+
2636
+ Raises
2637
+ ------
2638
+ PyegeriaException
2639
+ ValidationError
2640
+
2641
+ Notes
2642
+ ----
2643
+
2644
+ Body structure:
2645
+ {
2646
+ "class": "MetadataSourceRequestBody",
2647
+ "externalSourceGUID": "string",
2648
+ "externalSourceName": "string",
2649
+ "forLineage": true,
2650
+ "forDuplicateProcessing": true,
2651
+ "effectiveTime": "2025-06-13T15:13:31.339Z"
2652
+ }
2653
+ """
2654
+ loop = asyncio.get_event_loop()
2655
+ loop.run_until_complete(self._async_detach_governance_results(gov_metric_guid, data_asset_guid, data_asset_guid, body))
2656
+
2475
2657
  # async def _async_get_gov_def_in_context(self, guid: str, body: dict = None, output_format: str = "JSON",
2476
2658
  # start_from: int = 0,
2477
2659
  # page_size: int = 0) -> list[dict] | str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyegeria
3
- Version: 5.4.4.4
3
+ Version: 5.4.4.5
4
4
  Summary: A python client for Egeria
5
5
  License: Apache 2.0
6
6
  Keywords: egeria,metadata,governance
@@ -3,6 +3,7 @@ commands/__init__.py,sha256=-_1ApX0GIzkVNl1NajyGMIz7fHbwZfN5DVnBQAOiScA,1174
3
3
  commands/cat/Dr-Egeria_md-orig.py,sha256=ZX20BvRo0fIFisvy5Z-VJDLVyKbQoud89-CUV2S66tU,7336
4
4
  commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
5
5
  commands/cat/__init__.py,sha256=l4CImkjEiTQKS7QR-RQwzHIgRpfP032Mn_NZEuIILwg,98
6
+ commands/cat/debug_log.2025-09-14_11-03-29_316193.log.zip,sha256=A3iGk7EgW9u5eAXxUoQZe1glh_29TQceOAyjK_6IBZk,22787
6
7
  commands/cat/dr_egeria_command_help.py,sha256=_HOJd1IplnYhoQm1cwsROS9SxVKILLUf9YNlGMvvdF4,15359
7
8
  commands/cat/dr_egeria_jupyter.py,sha256=rfLVV_84Q8Pqcq1flmijKvZ7sEZFy7JAcAP_NAbb46Y,5656
8
9
  commands/cat/dr_egeria_md.py,sha256=zz-XtRW0sfBOG8kA51OFR5uKQ7JULGoOgXeJBXQBqTM,4889
@@ -4288,23 +4289,23 @@ md_processing/.obsidian/plugins/obsidian-sample-plugin/versions.json,sha256=BUEx
4288
4289
  md_processing/.obsidian/workspace.json,sha256=NLVJEOtsowljw7Ka035ReHLPu4iitk2ZsuSDN6zUAFY,4282
4289
4290
  md_processing/__init__.py,sha256=u9hAxeDri4c8mjw9WkqiotRWwNIfrPiFn6-2Bj2Adro,7365
4290
4291
  md_processing/data/commands-working.json,sha256=uCo_azcuuYqGm7QffJeCGj7PyZuZRGdu7kKf4XWmMoA,1162560
4291
- md_processing/data/commands.json,sha256=RIHRggidx9qPwBDVmXagoY0AkVcG-sL0yobl7aiGmHI,1712477
4292
+ md_processing/data/commands.json,sha256=aoYjCkwmJQUr2Ug2jkEuQsCNUnTtDbY9mLv863JPM88,1467795
4292
4293
  md_processing/data/generated_format_sets.json,sha256=TXvGK_Gm5ieq9i6u9M1j4CaNPzoV2m0hisKK2fWCtIM,98502
4293
4294
  md_processing/data/generated_format_sets.py,sha256=ZUWlUi5BHdetUQP-Hx8nQqzd3mCEubsJQXjvPmqhY3M,54980
4294
- md_processing/dr_egeria.py,sha256=OLx2WbaZ7PAjmpm7DbCHlPPFV1PDFFjTz4qGV6Lo9c8,20213
4295
+ md_processing/dr_egeria.py,sha256=Nz8UOMZxfB769QA957deYG2X0PsQ96QhNMrsui6Z2E0,20212
4295
4296
  md_processing/dr_egeria_inbox/glossary_creation_experiment.ipynb,sha256=dbzNu90fCKNohOWVSRBOB1GLyd95x8Qw51I5AkaPtso,11552
4296
4297
  md_processing/md_commands/__init__.py,sha256=ssEojzFlSYtY2bHqqOoKo8PFaANZ_kq_gIbtlXnuc2s,93
4297
4298
  md_processing/md_commands/data_designer_commands.py,sha256=cT2godlpPS5vbWvpZbzTDlTMjZFPm8ggKTER0U0yb7U,65116
4298
4299
  md_processing/md_commands/ext_ref_commands.py,sha256=YPoEm_gitLvJXr7E4-9feLNpnoLnjSamti_lxlIoO5k,24675
4299
4300
  md_processing/md_commands/glossary_commands.py,sha256=IOQxXxmyhwPAAZy1jha91qhXQBqzhhxUFDuVj6QkRbA,33970
4300
- md_processing/md_commands/governance_officer_commands.py,sha256=vpNIKF0F0MMepb0mZ3GsWqghFuQWtVixXjrLba1Uo6w,26421
4301
+ md_processing/md_commands/governance_officer_commands.py,sha256=3ysLS2j5tN0G2hXZrnyCxQlg3mKV-C0OuZj5c6sBpng,26482
4301
4302
  md_processing/md_commands/product_manager_commands.py,sha256=T2S4USHEPEQWMdMv2PUI_4PwHTdlKwWDjJwg3sTqNLc,46170
4302
4303
  md_processing/md_commands/project_commands.py,sha256=mjBSreHVkGCluChlO_p_5cEQ0CHlG5XJ3Fo6lL9C--w,17882
4303
4304
  md_processing/md_commands/solution_architect_commands.py,sha256=4Ghb8j2wlDdWtHoSCrx5jCJFEJfqII4mnFJ_tqduRKI,52569
4304
4305
  md_processing/md_commands/view_commands.py,sha256=dvRD0Vjv1w9FTfV5W-4EMQBTk2NAUJlIP2jQ411kHS4,11815
4305
4306
  md_processing/md_processing_utils/__init__.py,sha256=LxAmxlcji26ziKV4gGar01d95gL9vgToRIeJW8N-Ifs,80
4306
4307
  md_processing/md_processing_utils/common_md_proc_utils.py,sha256=wZQvmFLryko-Of-MaZ9BspejTSW27V9y6Azoaeb-w0o,58607
4307
- md_processing/md_processing_utils/common_md_utils.py,sha256=X8Kzva-sRyM6RZ6RbkUeP4fJaVhif0q6z7WhP-hhdm8,26711
4308
+ md_processing/md_processing_utils/common_md_utils.py,sha256=mHU-H5L43Egu_EpLqSQkMgyZS_xX-_TRloov_rUtO1w,26766
4308
4309
  md_processing/md_processing_utils/debug_log,sha256=dDkHai9YpY-9k9-DSFzbaMgZ-AavFw-Vxk2Q1r_34Ls,43746
4309
4310
  md_processing/md_processing_utils/debug_log.2025-09-09_11-10-03_528597.zip,sha256=2hK1jdCdG7aR9FPxFdtmU_OxHBNYLA2vlr-OPqR6sXs,1863
4310
4311
  md_processing/md_processing_utils/determine_width.py,sha256=nzinSuSF9SeuVOfKXsg-l1cqLkNYKZnF6HYfJpft44A,4236
@@ -4316,7 +4317,7 @@ md_processing/md_processing_utils/gen_format_sets.py,sha256=R5IvrajER0Xj9kZ99UxR
4316
4317
  md_processing/md_processing_utils/generate_dr_help.py,sha256=MJWlr_22Y9pjWqQbfSLb6C-t1GlQNlbWXkCmDnphfME,7419
4317
4318
  md_processing/md_processing_utils/generate_md_cmd_templates.py,sha256=SVdtlA6Nc9JIN-pORGbf-_shEP7egReuVejEcMjxRYM,5797
4318
4319
  md_processing/md_processing_utils/generate_md_templates.py,sha256=DMnMQ7_LbmQCS8aG-ppHGTu25obOSn4ZzSg7V21k9jo,3547
4319
- md_processing/md_processing_utils/md_processing_constants.py,sha256=OLx5ne7G4Boi_rE-imljGM2-dw7k84ykdmagJbwmrAQ,19533
4320
+ md_processing/md_processing_utils/md_processing_constants.py,sha256=IMQvPMidE2XB_rrHK_VsMU4tCp0g6r01tShUyLe09IE,19554
4320
4321
  md_processing/md_processing_utils/message_constants.py,sha256=UBf18obM83umM6zplR7ychre4xLRbBnTzidHDZ2gNvM,548
4321
4322
  pyegeria/README.md,sha256=PwX5OC7-YSZUCIsoyHh1O-WBM2hE84sm3Bd4O353NOk,1464
4322
4323
  pyegeria/__init__.py,sha256=XxELwaqinmpSsdHaTd-5TGKRe-3Abi220tjZ6svIhLQ,11842
@@ -4332,7 +4333,7 @@ pyegeria/_validators.py,sha256=pNxND0dN2qvyuGE52N74l1Ezfrh2p9Hao2ziR_t1ENI,7425
4332
4333
  pyegeria/asset_catalog_omvs.py,sha256=P6FceMP0FgakGSOt3ePxpEbsF7nnypzo1aQahjdL_94,29021
4333
4334
  pyegeria/automated_curation_omvs.py,sha256=tzwCyXL0Hx8UjryBBWcPoEuBRajXZpLuwPQ1vuOg2yc,130349
4334
4335
  pyegeria/classification_manager_omvs.py,sha256=eodP8Fn7zi78unsjk0XNW7lnxI7R0Fb7_SLI-HA39PQ,187249
4335
- pyegeria/collection_manager.py,sha256=Ou07fNgySK4Dfc5QWXKKJfrSq1wqGKzTc4epzad1ICI,232666
4336
+ pyegeria/collection_manager.py,sha256=-w6QMcLpfBh4tc0-aFF81idywFJrxdsm6AWQByrvqw4,236904
4336
4337
  pyegeria/collection_models.py,sha256=d3DdWONqDdAeuUQgussiCNfvhKIDFpaI35cdW_Tv4_0,5315
4337
4338
  pyegeria/config.py,sha256=N-qHq74GN29Mwfp8MbXvj7uEsKCIXotL7MDwFcj3nIU,29380
4338
4339
  pyegeria/core_omag_server_config.py,sha256=pNQpocICkZx8sRsTw5DPUe-TFyxlIo1U88qqgci_f7I,97764
@@ -4347,7 +4348,7 @@ pyegeria/external_references.py,sha256=DyOmGhG0LWIN4INABCiJRrHxfZ5FWE7TFtc3S_k5i
4347
4348
  pyegeria/feedback_manager_omvs.py,sha256=0xBs0p54vmdfVYYgQ8pOanLC4fxfgTk1Z61Y6D1U7_I,152978
4348
4349
  pyegeria/full_omag_server_config.py,sha256=CQqLCy_3DZFvJZEOcGf50HWdFaWpiAIs6z-kKyjvpDA,47464
4349
4350
  pyegeria/glossary_manager.py,sha256=EmCnIPG-W0bUD7MVn2Vopb-cb_TR1J8MMOOFzo38aWk,106786
4350
- pyegeria/governance_officer.py,sha256=C3u5aV9dnGLHrkohQ9L-Gzlc7QVf5D7uD2a8KEhkMpU,102928
4351
+ pyegeria/governance_officer.py,sha256=FXKIfMH50AyYP32bJQ_0dcdRQRFtdsa_hVjMd-HGNmk,109208
4351
4352
  pyegeria/load_config.py,sha256=XDwPAHB3MvGRuoP8kg1lJJAI4BgMWZ3TYxfxYROgJj4,1188
4352
4353
  pyegeria/load_config_orig.py,sha256=lOM37vdIBcYfLQFTLP5bDuNc7vTFGBNYPfqHtWGNvA4,11624
4353
4354
  pyegeria/logging_configuration.py,sha256=BxTQRN-7OOdk5t1f1xSn8gKU8iT-MfWEgbn6cYWrRsY,7674
@@ -4369,8 +4370,8 @@ pyegeria/template_manager_omvs.py,sha256=chBljs1vy5wr9DRAtbvIt4Cob_7HxGfxLkCNlDT
4369
4370
  pyegeria/utils.py,sha256=xOTxk9PH8ZGZmgIwz_a6rczTVLADLEjucr10ZJTUnY4,9272
4370
4371
  pyegeria/valid_metadata_omvs.py,sha256=Xq9DqBQvBFFJzaFIRKcVZ2k4gJvSh9yeXs_j-O3vn1w,65050
4371
4372
  pyegeria/x_action_author_omvs.py,sha256=RcqSzahUKCtvb_3u_wyintAlc9WFkC_2v0E12TZs8lQ,6433
4372
- pyegeria-5.4.4.4.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
4373
- pyegeria-5.4.4.4.dist-info/METADATA,sha256=cAQPiOvB4JoxHV6Ax1RChWN0ZovMvmehxMpH7fuxpds,6292
4374
- pyegeria-5.4.4.4.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
4375
- pyegeria-5.4.4.4.dist-info/entry_points.txt,sha256=HAS-LHaaBfkaZ19XU9g5mXwn2uj2HK99isdijI-VIDk,6353
4376
- pyegeria-5.4.4.4.dist-info/RECORD,,
4373
+ pyegeria-5.4.4.5.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
4374
+ pyegeria-5.4.4.5.dist-info/METADATA,sha256=5zULIKP5JEq5u1Ljsdlt9EByC3YRGfv-rPn7guj76s0,6292
4375
+ pyegeria-5.4.4.5.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
4376
+ pyegeria-5.4.4.5.dist-info/entry_points.txt,sha256=HAS-LHaaBfkaZ19XU9g5mXwn2uj2HK99isdijI-VIDk,6353
4377
+ pyegeria-5.4.4.5.dist-info/RECORD,,