pyegeria 5.4.8__py3-none-any.whl → 5.4.8.3__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 (31) hide show
  1. md_processing/__init__.py +2 -1
  2. md_processing/data/commands.json +59579 -52198
  3. md_processing/dr_egeria.py +7 -5
  4. md_processing/md_commands/solution_architect_commands.py +54 -10
  5. md_processing/md_processing_utils/common_md_proc_utils.py +8 -4
  6. md_processing/md_processing_utils/common_md_utils.py +41 -2
  7. pyegeria/_base_client.py +1 -17
  8. pyegeria/_client_new.py +1008 -323
  9. pyegeria/_client_new_backup.py +5359 -0
  10. pyegeria/_exceptions_new.py +6 -1
  11. pyegeria/base_report_formats.py +31 -2
  12. pyegeria/classification_manager.py +1430 -357
  13. pyegeria/collection_manager.py +52 -54
  14. pyegeria/config.py +1 -0
  15. pyegeria/data_designer.py +41 -41
  16. pyegeria/external_links.py +26 -26
  17. pyegeria/feedback_manager_omvs.py +13 -31
  18. pyegeria/glossary_manager.py +32 -35
  19. pyegeria/governance_officer.py +31 -31
  20. pyegeria/output_formatter.py +36 -11
  21. pyegeria/output_formatter_with_machine_keys.py +1127 -0
  22. pyegeria/project_manager.py +21 -21
  23. pyegeria/reference_data.py +2 -2
  24. pyegeria/solution_architect.py +112 -91
  25. {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/METADATA +6 -5
  26. {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/RECORD +30 -29
  27. pyegeria/md_processing_utils_orig.py +0 -1103
  28. {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/WHEEL +0 -0
  29. {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/entry_points.txt +0 -0
  30. {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/licenses/LICENSE +0 -0
  31. {pyegeria-5.4.8.dist-info → pyegeria-5.4.8.3.dist-info}/top_level.txt +0 -0
@@ -7,28 +7,26 @@ Copyright Contributors to the ODPi Egeria project.
7
7
  """
8
8
 
9
9
  import asyncio
10
- import inspect
11
10
  from datetime import datetime
12
11
  from typing import Optional, Annotated, Literal, Union
13
12
 
14
13
  from loguru import logger
15
- from pydantic import ValidationError, Field, HttpUrl
14
+ from pydantic import Field, HttpUrl
16
15
 
17
16
  from pyegeria._exceptions_new import PyegeriaInvalidParameterException
18
- from pyegeria._globals import NO_ELEMENTS_FOUND, NO_GUID_RETURNED, NO_MEMBERS_FOUND
17
+ from pyegeria._globals import NO_ELEMENTS_FOUND, NO_GUID_RETURNED
19
18
  from pyegeria.base_report_formats import select_report_spec, get_report_spec_match
20
19
  from pyegeria.config import settings
21
20
  from pyegeria.models import (SearchStringRequestBody, FilterRequestBody, GetRequestBody, NewElementRequestBody,
22
21
  ReferenceableProperties, InitialClassifications, TemplateRequestBody,
23
22
  UpdateElementRequestBody, UpdateStatusRequestBody, NewRelationshipRequestBody,
24
- DeleteRequestBody, UpdateRelationshipRequestBody, ResultsRequestBody,
23
+ DeleteElementRequestBody, DeleteRelationshipRequestBody, UpdateRelationshipRequestBody,
24
+ ResultsRequestBody,
25
25
  get_defined_field_values, PyegeriaModel)
26
26
  from pyegeria.output_formatter import (generate_output,
27
- _extract_referenceable_properties, populate_columns_from_properties,
28
- get_required_relationships, populate_common_columns)
27
+ populate_common_columns)
29
28
  from pyegeria.utils import body_slimmer, dynamic_catch
30
29
 
31
-
32
30
  app_settings = settings
33
31
  EGERIA_LOCAL_QUALIFIER = app_settings.User_Profile.egeria_local_qualifier
34
32
 
@@ -2866,7 +2864,7 @@ class CollectionManager(Client2):
2866
2864
  @dynamic_catch
2867
2865
  async def _async_detach_digital_product_dependency(self, upstream_digital_prod_guid: str,
2868
2866
  downstream_digital_prod_guid: str,
2869
- body: dict | DeleteRequestBody = None)-> None:
2867
+ body: dict | DeleteRelationshipRequestBody = None)-> None:
2870
2868
  """ Unlink two dependent digital products. The linked elements are of type DigitalProduct.
2871
2869
  Request body is optional. Async version.
2872
2870
 
@@ -2876,7 +2874,7 @@ class CollectionManager(Client2):
2876
2874
  The guid of the first digital product
2877
2875
  downstream_digital_prod_guid: str
2878
2876
  The guid of the downstream digital product
2879
- body: dict | DeleteRequestBody, optional, default = None
2877
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
2880
2878
  A structure representing the details of the relationship.
2881
2879
 
2882
2880
  Returns
@@ -2896,7 +2894,7 @@ class CollectionManager(Client2):
2896
2894
  -----
2897
2895
  JSON Structure looks like:
2898
2896
  {
2899
- "class": "DeleteRequestBody",
2897
+ "class": "DeleteRelationshipRequestBody",
2900
2898
  "externalSourceGUID": "add guid here",
2901
2899
  "externalSourceName": "add qualified name here",
2902
2900
  "effectiveTime": "{{$isoTimestamp}}",
@@ -2910,12 +2908,12 @@ class CollectionManager(Client2):
2910
2908
  f"{self.platform_url}/servers/"
2911
2909
  f"{self.view_server}/api/open-metadata/collection-manager/collections/digital-products/"
2912
2910
  f"{upstream_digital_prod_guid}/product-dependencies/{downstream_digital_prod_guid}/detach")
2913
- await self._async_delete_request(url, body)
2911
+ await self._async_delete_relationship_request(url, body)
2914
2912
  logger.info(f"Detached digital product dependency {upstream_digital_prod_guid} -> {downstream_digital_prod_guid}")
2915
2913
 
2916
2914
 
2917
2915
  def detach_digital_product_dependency(self, upstream_digital_prod_guid: str, downstream_digital_prod_guid: str,
2918
- body: dict | DeleteRequestBody= None):
2916
+ body: dict | DeleteRelationshipRequestBody= None):
2919
2917
  """ Unlink two dependent digital products. The linked elements are of type DigitalProduct.
2920
2918
  Request body is optional.
2921
2919
 
@@ -2925,7 +2923,7 @@ class CollectionManager(Client2):
2925
2923
  The guid of the first digital product
2926
2924
  downstream_digital_prod_guid: str
2927
2925
  The guid of the downstream digital product
2928
- body: dict | DeleteRequestBody, optional, default = None
2926
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
2929
2927
  A structure representing the details of the relationship.
2930
2928
 
2931
2929
  Returns
@@ -2945,7 +2943,7 @@ class CollectionManager(Client2):
2945
2943
  -----
2946
2944
  JSON Structure looks like:
2947
2945
  {
2948
- "class": "DeleteRequestBody",
2946
+ "class": "DeleteRelationshipRequestBody",
2949
2947
  "externalSourceGUID": "add guid here",
2950
2948
  "externalSourceName": "add qualified name here",
2951
2949
  "effectiveTime": "{{$isoTimestamp}}",
@@ -3067,7 +3065,7 @@ class CollectionManager(Client2):
3067
3065
  @dynamic_catch
3068
3066
  async def _async_detach_product_manager(self, digital_prod_guid: str,
3069
3067
  digital_prod_manager_guid: str,
3070
- body: dict | DeleteRequestBody = None)-> None:
3068
+ body: dict | DeleteRelationshipRequestBody = None)-> None:
3071
3069
  """ Detach a digital product manager from a digital product.
3072
3070
  Request body is optional. Async version.
3073
3071
 
@@ -3077,7 +3075,7 @@ class CollectionManager(Client2):
3077
3075
  The guid of the digital product.
3078
3076
  prod_manager: str
3079
3077
  The guid of the digital product manager.
3080
- body: dict | DeleteRequestBody, optional, default = None
3078
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
3081
3079
  A structure representing the details of the relationship.
3082
3080
 
3083
3081
  Returns
@@ -3097,7 +3095,7 @@ class CollectionManager(Client2):
3097
3095
  -----
3098
3096
  JSON Structure looks like:
3099
3097
  {
3100
- "class": "DeleteRequestBody",
3098
+ "class": "DeleteRelationshipRequestBody",
3101
3099
  "externalSourceGUID": "add guid here",
3102
3100
  "externalSourceName": "add qualified name here",
3103
3101
  "effectiveTime": "{{$isoTimestamp}}",
@@ -3110,12 +3108,12 @@ class CollectionManager(Client2):
3110
3108
  f"{self.platform_url}/servers/"
3111
3109
  f"{self.view_server}/api/open-metadata/collection-manager/collections/digital-products/"
3112
3110
  f"{digital_prod_guid}/product-dependencies/{digital_prod_manager_guid}/detach")
3113
- await self._async_delete_request(url, body)
3111
+ await self._async_delete_relationship_request(url, body)
3114
3112
  logger.info(f"Detached digital product manager {digital_prod_guid} -> {digital_prod_manager_guid}")
3115
3113
 
3116
3114
  @dynamic_catch
3117
3115
  def detach_product_manager(self, digital_prod_guid: str, digital_prod_manager_guid: str,
3118
- body: dict | DeleteRequestBody= None):
3116
+ body: dict | DeleteRelationshipRequestBody= None):
3119
3117
  """ Detach a digital product manager from a digital product.
3120
3118
  Request body is optional. Async version.
3121
3119
 
@@ -3125,7 +3123,7 @@ class CollectionManager(Client2):
3125
3123
  The guid of the digital product.
3126
3124
  digital_prod_manager_guid: str
3127
3125
  The guid of the digital product manager.
3128
- body: dict | DeleteRequestBody, optional, default = None
3126
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
3129
3127
  A structure representing the details of the relationship.
3130
3128
 
3131
3129
  Returns
@@ -3145,7 +3143,7 @@ class CollectionManager(Client2):
3145
3143
  -----
3146
3144
  JSON Structure looks like:
3147
3145
  {
3148
- "class": "DeleteRequestBody",
3146
+ "class": "DeleteRelationshipRequestBody",
3149
3147
  "externalSourceGUID": "add guid here",
3150
3148
  "externalSourceName": "add qualified name here",
3151
3149
  "effectiveTime": "{{$isoTimestamp}}",
@@ -3698,7 +3696,7 @@ class CollectionManager(Client2):
3698
3696
  @dynamic_catch
3699
3697
  async def _async_detach_agreement_actor(self, agreement_guid: str,
3700
3698
  actor_guid: str,
3701
- body: dict | DeleteRequestBody = None)-> None:
3699
+ body: dict | DeleteRelationshipRequestBody = None)-> None:
3702
3700
  """ Detach an actor from an agreement.
3703
3701
  Request body is optional. Async Version.
3704
3702
 
@@ -3708,7 +3706,7 @@ class CollectionManager(Client2):
3708
3706
  The guid of the agreement.
3709
3707
  actor_guid: str
3710
3708
  The guid of the actor.
3711
- body: dict | DeleteRequestBody, optional, default = None
3709
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
3712
3710
  A structure representing the details of the relationship.
3713
3711
 
3714
3712
  Returns
@@ -3728,7 +3726,7 @@ class CollectionManager(Client2):
3728
3726
  -----
3729
3727
  JSON Structure looks like:
3730
3728
  {
3731
- "class": "DeleteRequestBody",
3729
+ "class": "DeleteRelationshipRequestBody",
3732
3730
  "externalSourceGUID": "add guid here",
3733
3731
  "externalSourceName": "add qualified name here",
3734
3732
  "effectiveTime": "{{$isoTimestamp}}",
@@ -3742,12 +3740,12 @@ class CollectionManager(Client2):
3742
3740
  f"{self.platform_url}/servers/"
3743
3741
  f"{self.view_server}/api/open-metadata/collection-manager/collections/agreements/"
3744
3742
  f"{agreement_guid}/agreement-actors/{actor_guid}/detach")
3745
- self._async_delete_request(url, body)
3743
+ self._async_delete_relationship_request(url, body)
3746
3744
  logger.info(f"Detached digital product manager {agreement_guid} -> {actor_guid}")
3747
3745
 
3748
3746
 
3749
3747
  def detach_agreement_actor(self, agreement_guid: str, actor_guid: str,
3750
- body: dict | DeleteRequestBody= None):
3748
+ body: dict | DeleteRelationshipRequestBody= None):
3751
3749
  """ Detach an actor from an agreement.
3752
3750
  Request body is optional.
3753
3751
 
@@ -3757,7 +3755,7 @@ class CollectionManager(Client2):
3757
3755
  The guid of the agreement.
3758
3756
  actor_guid: str
3759
3757
  The guid of the actor.
3760
- body: dict | DeleteRequestBody, optional, default = None
3758
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
3761
3759
  A structure representing the details of the relationship.
3762
3760
 
3763
3761
  Returns
@@ -3777,7 +3775,7 @@ class CollectionManager(Client2):
3777
3775
  -----
3778
3776
  JSON Structure looks like:
3779
3777
  {
3780
- "class": "DeleteRequestBody",
3778
+ "class": "DeleteRelationshipRequestBody",
3781
3779
  "externalSourceGUID": "add guid here",
3782
3780
  "externalSourceName": "add qualified name here",
3783
3781
  "effectiveTime": "{{$isoTimestamp}}",
@@ -3931,7 +3929,7 @@ class CollectionManager(Client2):
3931
3929
 
3932
3930
  @dynamic_catch
3933
3931
  async def _async_detach_agreement_item(self, agreement_guid: str, agreement_item_guid: str,
3934
- body: dict | DeleteRequestBody = None) -> None:
3932
+ body: dict | DeleteRelationshipRequestBody = None) -> None:
3935
3933
  """Detach an agreement item from an agreement. Request body is optional. Async version.
3936
3934
 
3937
3935
  Parameters
@@ -3940,7 +3938,7 @@ class CollectionManager(Client2):
3940
3938
  The guid of the agreement to link.
3941
3939
  agreement_item_guid: str
3942
3940
  The guid of the element to attach.
3943
- body: dict | DeleteRequestBody, optional, default = None
3941
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
3944
3942
  A structure representing the details of the relationship.
3945
3943
 
3946
3944
  Returns
@@ -3959,7 +3957,7 @@ class CollectionManager(Client2):
3959
3957
  Notes
3960
3958
  _____
3961
3959
  {
3962
- "class": "DeleteRequestBody",
3960
+ "class": "DeleteRelationshipRequestBody",
3963
3961
  "externalSourceGUID": "add guid here",
3964
3962
  "externalSourceName": "add qualified name here",
3965
3963
  "effectiveTime": "{{$isoTimestamp}}",
@@ -3972,7 +3970,7 @@ class CollectionManager(Client2):
3972
3970
  f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/collection-manager/collections"
3973
3971
  f"/agreements"
3974
3972
  f"{agreement_guid}/agreement-items/{agreement_item_guid}/detach")
3975
- await self._async_delete_request(url, body)
3973
+ await self._async_delete_relationship_request(url, body)
3976
3974
  logger.info(f"Detached agreement item {agreement_item_guid} from {agreement_guid}")
3977
3975
 
3978
3976
 
@@ -4169,7 +4167,7 @@ class CollectionManager(Client2):
4169
4167
  url = (
4170
4168
  f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/collection-manager/collections"
4171
4169
  f"/agreements/{agreement_guid}/contract-links/{external_ref_guid}/detach")
4172
- await self._async_delete_request(url, body)
4170
+ await self._async_delete_relationship_request(url, body)
4173
4171
  logger.info(f"Detached contract: {external_ref_guid} from {agreement_guid}")
4174
4172
 
4175
4173
  @dynamic_catch
@@ -4708,7 +4706,7 @@ class CollectionManager(Client2):
4708
4706
 
4709
4707
  @dynamic_catch
4710
4708
  async def _async_detach_subscriber(self, subscriber_guid: str, subscription_guid: str,
4711
- body: dict | DeleteRequestBody = None) -> None:
4709
+ body: dict | DeleteRelationshipRequestBody = None) -> None:
4712
4710
  """ Detach a subscriber from a subscription Request body is optional. Async version.
4713
4711
 
4714
4712
  Parameters
@@ -4717,7 +4715,7 @@ class CollectionManager(Client2):
4717
4715
  The unique identifier of the subscriber.
4718
4716
  subscription_guid: str
4719
4717
  The unique identifier of the subscription.
4720
- body: dict | DeleteRequestBody, optional, default = None
4718
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
4721
4719
  A structure representing the details of the relationship.
4722
4720
 
4723
4721
  Returns
@@ -4749,11 +4747,11 @@ class CollectionManager(Client2):
4749
4747
  f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/collection-manager/collections"
4750
4748
  f"/agreements/"
4751
4749
  f"{subscriber_guid}/agreement-actors/{subscription_guid}/detach")
4752
- await self._async_delete_request(url, body)
4750
+ await self._async_delete_relationship_request(url, body)
4753
4751
  logger.info(f"Detached subscriber {subscriber_guid} from subscription {subscription_guid}")
4754
4752
 
4755
4753
 
4756
- def detach_subscriber(self, subscriber_guid: str, subscription_guid: str, body: dict | DeleteRequestBody= None):
4754
+ def detach_subscriber(self, subscriber_guid: str, subscription_guid: str, body: dict | DeleteRelationshipRequestBody= None):
4757
4755
  """ Detach a subscriber from a subscription. Request body is optional.
4758
4756
 
4759
4757
  Parameters
@@ -4916,7 +4914,7 @@ class CollectionManager(Client2):
4916
4914
 
4917
4915
  @dynamic_catch
4918
4916
  async def _async_detach_collection(self, parent_guid: str, collection_guid: str,
4919
- body: dict | DeleteRequestBody = None):
4917
+ body: dict | DeleteRelationshipRequestBody = None):
4920
4918
  """ Detach an existing collection from an element. If the collection is anchored to the element,
4921
4919
  it is delete.
4922
4920
  Async version.
@@ -4927,7 +4925,7 @@ class CollectionManager(Client2):
4927
4925
  The unique identifier of the parent to detach from.
4928
4926
  collection_guid: str
4929
4927
  The identifier of the collection being detached.
4930
- body: dict | DeleteRequestBody, optional, default = None
4928
+ body: dict | DeleteRelationshipRequestBody, optional, default = None
4931
4929
  A structure representing the details of the relationship.
4932
4930
 
4933
4931
 
@@ -4948,7 +4946,7 @@ class CollectionManager(Client2):
4948
4946
  -----
4949
4947
  JSON Structure looks like:
4950
4948
  {
4951
- "class": "DeleteRequestBody",
4949
+ "class": "DeleteRelationshipRequestBody",
4952
4950
  "externalSourceGUID": "add guid here",
4953
4951
  "externalSourceName": "add qualified name here",
4954
4952
  "effectiveTime": "{{$isoTimestamp}}",
@@ -4961,12 +4959,12 @@ class CollectionManager(Client2):
4961
4959
  f"{self.platform_url}/servers/"
4962
4960
  f"{self.view_server}/api/open-metadata/collection-manager/metadata-elements/"
4963
4961
  f"{parent_guid}/collections/{collection_guid}/detach")
4964
- await self._async_delete_request(url, body)
4962
+ await self._async_delete_relationship_request(url, body)
4965
4963
  logger.info(f"Detached collection {collection_guid} from {parent_guid}")
4966
4964
 
4967
4965
 
4968
4966
  def detach_collection(self, parent_guid: str, collection_guid: str,
4969
- body: dict | DeleteRequestBody = None):
4967
+ body: dict | DeleteRelationshipRequestBody = None):
4970
4968
  """ Detach an existing collection from an element. If the collection is anchored to the element,
4971
4969
  it is delete.
4972
4970
 
@@ -5009,7 +5007,7 @@ class CollectionManager(Client2):
5009
5007
 
5010
5008
 
5011
5009
  @dynamic_catch
5012
- async def _async_delete_collection(self, collection_guid: str, body: dict | DeleteRequestBody= None,
5010
+ async def _async_delete_collection(self, collection_guid: str, body: dict | DeleteElementRequestBody= None,
5013
5011
  cascade: bool = False) -> None:
5014
5012
  """Delete a collection. It is detected from all parent elements. If members are anchored to the collection
5015
5013
  then they are also deleted. Async version
@@ -5023,7 +5021,7 @@ class CollectionManager(Client2):
5023
5021
  cascade: bool, optional, defaults to True
5024
5022
  If true, a cascade delete is performed.
5025
5023
 
5026
- body: dict | DeleteRequestBody, optional, default = None
5024
+ body: dict | DeleteElementRequestBody, optional, default = None
5027
5025
  A structure representing the details of the relationship.
5028
5026
 
5029
5027
  Returns
@@ -5043,7 +5041,7 @@ class CollectionManager(Client2):
5043
5041
  _____
5044
5042
  JSON Structure looks like:
5045
5043
  {
5046
- "class": "DeleteRequestBody",
5044
+ "class": "DeleteElementRequestBody",
5047
5045
  "externalSourceGUID": "add guid here",
5048
5046
  "externalSourceName": "add qualified name here",
5049
5047
  "effectiveTime": "{{$isoTimestamp}}",
@@ -5054,11 +5052,11 @@ class CollectionManager(Client2):
5054
5052
 
5055
5053
  """
5056
5054
  url = f"{self.collection_command_root}/{collection_guid}/delete"
5057
- await self._async_delete_request(url, body, cascade)
5055
+ await self._async_delete_element_request(url, body, cascade)
5058
5056
  logger.info(f"Deleted collection {collection_guid} with cascade {cascade}")
5059
5057
 
5060
5058
 
5061
- def delete_collection(self, collection_guid: str, body: dict | DeleteRequestBody = None,
5059
+ def delete_collection(self, collection_guid: str, body: dict | DeleteElementRequestBody = None,
5062
5060
  cascade: bool = False) -> None:
5063
5061
  """Delete a collection. It is deleted from all parent elements. If members are anchored to the collection
5064
5062
  then they are also deleted.
@@ -5071,7 +5069,7 @@ class CollectionManager(Client2):
5071
5069
  cascade: bool, optional, defaults to True
5072
5070
  If true, a cascade delete is performed.
5073
5071
 
5074
- body: dict DeleteRequestBodyt, optional, default = None
5072
+ body: dict DeleteElementRequestBodyt, optional, default = None
5075
5073
  A dict representing the details of the relationship.
5076
5074
 
5077
5075
  Returns
@@ -5359,7 +5357,7 @@ class CollectionManager(Client2):
5359
5357
 
5360
5358
  @dynamic_catch
5361
5359
  async def _async_remove_from_collection(self, collection_guid: str, element_guid: str,
5362
- body: dict | DeleteRequestBody = None) -> None:
5360
+ body: dict | DeleteRelationshipRequestBody = None) -> None:
5363
5361
  """Remove an element from a collection. Async version.
5364
5362
 
5365
5363
  Parameters
@@ -5368,7 +5366,7 @@ class CollectionManager(Client2):
5368
5366
  identity of the collection to return members for.
5369
5367
  element_guid: str
5370
5368
  Effective time of the query. If not specified will default to any time.
5371
- body: dict | DeleteRequestBody, optional, defaults to None
5369
+ body: dict | DeleteRelationshipRequestBody, optional, defaults to None
5372
5370
  The body of the request to add to the collection. See notes.
5373
5371
 
5374
5372
  Returns
@@ -5388,7 +5386,7 @@ class CollectionManager(Client2):
5388
5386
  Notes
5389
5387
  -----
5390
5388
  {
5391
- "class" : "DeleteRequestBody",
5389
+ "class" : "DeleteRelationshipRequestBody",
5392
5390
  "externalSourceGUID": "add guid here",
5393
5391
  "externalSourceName": "add qualified name here",
5394
5392
  "effectiveTime" : "{{$isoTimestamp}}",
@@ -5400,12 +5398,12 @@ class CollectionManager(Client2):
5400
5398
 
5401
5399
  url = (f"{self.collection_command_root}/{collection_guid}/members/"
5402
5400
  f"{element_guid}/detach")
5403
- await self._async_delete_request(url, body)
5401
+ await self._async_delete_relationship_request(url, body)
5404
5402
  logger.info(f"Removed member {element_guid} from collection {collection_guid}")
5405
5403
 
5406
5404
 
5407
5405
  def remove_from_collection(self, collection_guid: str, element_guid: str,
5408
- body: dict | DeleteRequestBody= None) -> None:
5406
+ body: dict | DeleteRelationshipRequestBody= None) -> None:
5409
5407
  """Remove an element from a collection. Async version.
5410
5408
 
5411
5409
  Parameters
@@ -5452,7 +5450,7 @@ class CollectionManager(Client2):
5452
5450
 
5453
5451
 
5454
5452
  def remove_term_from_category(self, folder_guid: str, term_guid: str,
5455
- body: dict | DeleteRequestBody= None) -> None:
5453
+ body: dict | DeleteRelationshipRequestBody= None) -> None:
5456
5454
  """Remove a term from a category.
5457
5455
 
5458
5456
  Parameters
pyegeria/config.py CHANGED
@@ -150,6 +150,7 @@ class UserProfileConfig(BaseModel):
150
150
  egeria_home_collection: str = Field(default="MyHome", alias="Egeria Home Collection")
151
151
  egeria_home_glossary_name: str = Field(default="Egeria-Markdown", alias="Egeria Home Glossary Name")
152
152
  egeria_local_qualifier: str = Field(default="PDR", alias="Egeria Local Qualifier")
153
+ egeria_usage_level: str = Field(default="Advanced", alias="Egeria Usage Level")
153
154
  user_name: Optional[str] = "erinoverview"
154
155
  user_pwd: Optional[str] = "secret"
155
156