pyegeria 0.5.5.22__py3-none-any.whl → 0.5.5.24__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.
@@ -29,7 +29,7 @@ EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
29
29
  EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
30
30
 
31
31
 
32
- def main():
32
+ def main(ep: str):
33
33
 
34
34
  disable_ssl_warnings = True
35
35
  console = Console(width=200)
@@ -40,11 +40,11 @@ def main():
40
40
 
41
41
  # Define the Kafka consumer configuration.
42
42
  config = {
43
- 'bootstrap.servers': EGERIA_KAFKA_ENDPOINT, # replace with your Kafka broker(s)
43
+ 'bootstrap.servers': ep, # replace with your Kafka broker(s)
44
44
  'group.id': f"view_asset_events:{current_time}", # replace with your consumer group
45
45
  'auto.offset.reset': earliest_latest # can be set to 'earliest' or 'latest'
46
46
  }
47
-
47
+ print(f"Kafka config is {json.dumps(config)}")
48
48
  # Initialize a Kafka consumer.
49
49
  consumer = Consumer(config)
50
50
 
@@ -53,7 +53,7 @@ def main():
53
53
 
54
54
  try:
55
55
  while True:
56
- msg = consumer.poll(1.0) # timeout set to 1 second
56
+ msg = consumer.poll(2.0) # timeout set to 1 second
57
57
 
58
58
  if msg is None:
59
59
  continue
@@ -87,4 +87,11 @@ def main():
87
87
  consumer.close()
88
88
 
89
89
  if __name__ == "__main__":
90
- main()
90
+ parser = argparse.ArgumentParser()
91
+
92
+ parser.add_argument("--ep", help="Endpoint to connect to")
93
+ args = parser.parse_args()
94
+
95
+ ep = args.ep if args.ep is not None else EGERIA_KAFKA_ENDPOINT
96
+
97
+ main(ep)
@@ -10,13 +10,9 @@ from datetime import datetime
10
10
 
11
11
  from httpx import Response
12
12
 
13
- from pyegeria import Client, max_paging_size, body_slimmer
13
+ from pyegeria import Client, max_paging_size, body_slimmer, INTEGRATION_GUIDS, TEMPLATE_GUIDS
14
14
  from pyegeria._exceptions import (InvalidParameterException, PropertyServerException, UserNotAuthorizedException)
15
15
  from ._validators import validate_name, validate_guid, validate_search_string
16
- from .core_guids import (FILEFOLDER_TEMPLATE_GUID,
17
- POSTGRESQL_SERVER_TEMPLATE_GUID,
18
- APACHE_KAFKA_SERVER_TEMPLATE_GUID,
19
- )
20
16
 
21
17
 
22
18
  class AutomatedCuration(Client):
@@ -169,7 +165,7 @@ class AutomatedCuration(Client):
169
165
  The GUID of the Kafka server element.
170
166
  """
171
167
 
172
- body = {"templateGUID":APACHE_KAFKA_SERVER_TEMPLATE_GUID, "isOwnAnchor": 'true',
168
+ body = {"templateGUID":TEMPLATE_GUIDS['Apache Kafka Server template'], "isOwnAnchor": 'true',
173
169
  "placeholderPropertyValues": {"serverName": kafka_server, "hostIdentifier": host_name,
174
170
  "portNumber": port, "description": description}}
175
171
  body_s = body_slimmer(body)
@@ -241,7 +237,7 @@ class AutomatedCuration(Client):
241
237
  str
242
238
  The GUID of the Postgres server element.
243
239
  """
244
- body = {"templateGUID":POSTGRESQL_SERVER_TEMPLATE_GUID, "isOwnAnchor": 'true',
240
+ body = {"templateGUID":TEMPLATE_GUIDS['PostgreSQL Server template'], "isOwnAnchor": 'true',
245
241
  "placeholderPropertyValues": {"serverName": postgres_server, "hostIdentifier": host_name,
246
242
  "portNumber": port, "databaseUserId": db_user, "description": description,
247
243
  "databasePassword": db_pwd}}
@@ -319,7 +315,7 @@ class AutomatedCuration(Client):
319
315
  str
320
316
  The GUID of the File Folder element.
321
317
  """
322
- body = {"templateGUID": FILEFOLDER_TEMPLATE_GUID,
318
+ body = {"templateGUID": TEMPLATE_GUIDS['FileFolder template'],
323
319
  "isOwnAnchor": 'true',
324
320
  "placeholderPropertyValues": {
325
321
  "directoryPathName": path_name,
@@ -1429,8 +1425,8 @@ class AutomatedCuration(Client):
1429
1425
  - request source elements for the resulting governance action service
1430
1426
  action_targets: [str]
1431
1427
  -list of action target names to GUIDs for the resulting governance action service
1432
- start_time: datetime
1433
- - time to start the process
1428
+ start_time: datetime, default = None
1429
+ - time to start the process, no earlier than start time. None means now.
1434
1430
  request_parameters: [str]
1435
1431
  - parameters passed into the process
1436
1432
  orig_service_name: str
@@ -1465,8 +1461,8 @@ class AutomatedCuration(Client):
1465
1461
  return response.json().get("guid", "Action not initiated")
1466
1462
 
1467
1463
  def initiate_gov_action_type(self, action_type_qualified_name: str, request_source_guids: [str],
1468
- action_targets: list, start_time: datetime, request_parameters: dict,
1469
- orig_service_name: str, orig_engine_name: str, server: str = None) -> str:
1464
+ action_targets: list, start_time: datetime = None, request_parameters: dict = None,
1465
+ orig_service_name: str = None, orig_engine_name: str = None, server: str = None) -> str:
1470
1466
  """ Using the named governance action type as a template, initiate an engine action.
1471
1467
 
1472
1468
  Parameters
@@ -1477,8 +1473,8 @@ class AutomatedCuration(Client):
1477
1473
  - request source elements for the resulting governance action service
1478
1474
  action_targets: [str]
1479
1475
  -list of action target names to GUIDs for the resulting governance action service
1480
- start_time: datetime
1481
- - time to start the process
1476
+ start_time: datetime, default = None
1477
+ - time to start the process, no earlier than start time. None means now.
1482
1478
  request_parameters: [str]
1483
1479
  - parameters passed into the process
1484
1480
  orig_service_name: str
@@ -1513,7 +1509,7 @@ class AutomatedCuration(Client):
1513
1509
 
1514
1510
  body = {"class": "InitiateGovernanceActionTypeRequestBody",
1515
1511
  "governanceActionTypeQualifiedName":
1516
- "Egeria:GovernanceActionType:2adeb8f1-0f59-4970-b6f2-6cc25d4d2402survey-postgres-database",
1512
+ "AssetSurvey-postgres-database",
1517
1513
  "actionTargets": [{"class": "NewActionTarget", "actionTargetName": "serverToSurvey",
1518
1514
  "actionTargetGUID": postgres_database_guid}]}
1519
1515
  response = await self._async_make_request("POST", url, body)
@@ -1532,7 +1528,7 @@ class AutomatedCuration(Client):
1532
1528
  f"initiate")
1533
1529
 
1534
1530
  body = {"class": "InitiateGovernanceActionTypeRequestBody",
1535
- "governanceActionTypeQualifiedName": "Egeria:GovernanceActionType:AssetSurvey:survey-postgres-server",
1531
+ "governanceActionTypeQualifiedName": "AssetSurvey:survey-postgres-server",
1536
1532
  "actionTargets": [{"class": "NewActionTarget", "actionTargetName": "serverToSurvey",
1537
1533
  "actionTargetGUID": postgres_server_guid}]}
1538
1534
  response = await self._async_make_request("POST", url, body)
@@ -1575,10 +1571,10 @@ class AutomatedCuration(Client):
1575
1571
  in the Core Content Brain.
1576
1572
 
1577
1573
  File Folder Survey Names currently include::
1578
- - Egeria:GovernanceActionType:AssetSurvey:survey-folders
1579
- - Egeria:GovernanceActionType:AssetSurvey:survey-folder-and-files
1580
- - Egeria:GovernanceActionType:AssetSurvey:survey-all-folders
1581
- - Egeria:GovernanceActionType:AssetSurvey:survey-all-folders-and-files
1574
+ - AssetSurvey:survey-folders
1575
+ - AssetSurvey:survey-folder-and-files
1576
+ - AssetSurvey:survey-all-folders
1577
+ - AssetSurvey:survey-all-folders-and-files
1582
1578
  """
1583
1579
  server = self.server_name if server is None else server
1584
1580
  url = (f"{self.platform_url}/servers/{server}/api/open-metadata/automated-curation/governance-action-types/"
@@ -1672,7 +1668,7 @@ class AutomatedCuration(Client):
1672
1668
  f"initiate")
1673
1669
 
1674
1670
  body = {"class": "InitiateGovernanceActionTypeRequestBody",
1675
- "governanceActionTypeQualifiedName": "Egeria:GovernanceActionType:AssetSurvey:survey-kafka-server",
1671
+ "governanceActionTypeQualifiedName": "AssetSurvey:survey-kafka-server",
1676
1672
  "actionTargets": [{"class": "NewActionTarget", "actionTargetName": "serverToSurvey",
1677
1673
  "actionTargetGUID": kafka_server_guid}]}
1678
1674
  response = await self._async_make_request("POST", url, body)
@@ -1922,8 +1918,11 @@ class AutomatedCuration(Client):
1922
1918
  return response
1923
1919
 
1924
1920
  async def _async_add_catalog_target(self, integ_connector_guid: str, metadata_element_guid: str,
1925
- catalog_target_name: str, metadata_src_qual_name: str = None,
1926
- config_properties: dict = None, server: str = None) -> str:
1921
+ catalog_target_name: str, connection_name: str= None,
1922
+ metadata_src_qual_name: str = None,
1923
+ config_properties: dict = None, template_properties: dict = None,
1924
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
1925
+ server: str = None) -> str:
1927
1926
  """ Add a catalog target to an integration connector and .
1928
1927
  Async version.
1929
1928
 
@@ -1935,12 +1934,21 @@ class AutomatedCuration(Client):
1935
1934
  The specific metadata element target we want to retrieve.
1936
1935
  catalog_target_name : dict
1937
1936
  Name of the catalog target to add.
1937
+ connection_name: str, default = None
1938
+ Optional name of connection to use for this catalog target when multiple connections defined.
1938
1939
  metadata_src_qual_name: str
1939
1940
  The qualified name of the metadata source for the catalog target
1940
1941
  config_properties: dict
1941
1942
  Configuration properties for the catalog target
1943
+ template_properties: dict
1944
+ Template properties to pass
1945
+ permitted_sync: str, default = BOTH_DIRECTIONS
1946
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
1947
+ delete_method: str, default = ARCHIVE
1948
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
1942
1949
  server: str, optional
1943
1950
  The name of the server. If None, will use the default server specified in the instance will be used.
1951
+
1944
1952
  Returns:
1945
1953
  -------
1946
1954
  Relationship GUID for the catalog target,
@@ -1959,14 +1967,21 @@ class AutomatedCuration(Client):
1959
1967
  url = (f"{self.platform_url}/servers/{server}/api/open-metadata/automated-curation/integration-connectors/"
1960
1968
  f"{integ_connector_guid}/catalog-targets/{metadata_element_guid}")
1961
1969
  body = {"catalogTargetName": catalog_target_name, "metadataSourceQualifiedName": metadata_src_qual_name,
1962
- "configProperties": config_properties}
1970
+ "configProperties": config_properties, "templateProperties": template_properties,
1971
+ "connectionName": connection_name, "permittedSynchronization": permitted_sync,
1972
+ "deleteMethod": delete_method
1973
+ }
1974
+
1963
1975
  response = await self._async_make_request("POST", url, body)
1964
1976
  return response.json().get('guid', "No Guid returned")
1965
1977
 
1966
- def add_catalog_target(self, integ_connector_guid: str, metadata_element_guid: str, catalog_target_name: str,
1967
- metadata_src_qual_name: str = None, config_properties: dict = None,
1968
- server: str = None) -> str:
1969
- """ Add a catalog target to an integration connector.
1978
+ def add_catalog_target(self, integ_connector_guid: str, metadata_element_guid: str,
1979
+ catalog_target_name: str, connection_name: str= None,
1980
+ metadata_src_qual_name: str = None,
1981
+ config_properties: dict = None, template_properties: dict = None,
1982
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
1983
+ server: str = None) -> str:
1984
+ """ Add a catalog target to an integration connector and .
1970
1985
 
1971
1986
  Parameters:
1972
1987
  ----------
@@ -1976,15 +1991,24 @@ class AutomatedCuration(Client):
1976
1991
  The specific metadata element target we want to retrieve.
1977
1992
  catalog_target_name : dict
1978
1993
  Name of the catalog target to add.
1994
+ connection_name: str, default = None
1995
+ Optional name of connection to use for this catalog target when multiple connections defined.
1979
1996
  metadata_src_qual_name: str
1980
1997
  The qualified name of the metadata source for the catalog target
1981
1998
  config_properties: dict
1982
1999
  Configuration properties for the catalog target
2000
+ template_properties: dict
2001
+ Template properties to pass
2002
+ permitted_sync: str, default = BOTH_DIRECTIONS
2003
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
2004
+ delete_method: str, default = ARCHIVE
2005
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
1983
2006
  server: str, optional
1984
2007
  The name of the server. If None, will use the default server specified in the instance will be used.
2008
+
1985
2009
  Returns:
1986
2010
  -------
1987
- None
2011
+ Relationship GUID for the catalog target,
1988
2012
 
1989
2013
  Raises:
1990
2014
  ------
@@ -1996,28 +2020,42 @@ class AutomatedCuration(Client):
1996
2020
  loop = asyncio.get_event_loop()
1997
2021
  response = loop.run_until_complete(
1998
2022
  self._async_add_catalog_target(integ_connector_guid, metadata_element_guid, catalog_target_name,
1999
- metadata_src_qual_name, config_properties, server))
2023
+ connection_name, metadata_src_qual_name, config_properties,
2024
+ template_properties, permitted_sync, delete_method,
2025
+ server))
2000
2026
  return response
2001
2027
 
2002
2028
  async def _async_update_catalog_target(self, relationship_guid: str,
2003
- catalog_target_name: str, metadata_src_qual_name: str = None,
2004
- config_properties: dict = None, server: str = None) -> None:
2029
+ catalog_target_name: str, connection_name: str = None,
2030
+ metadata_src_qual_name: str = None,
2031
+ config_properties: dict = None, template_properties: dict = None,
2032
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
2033
+ server: str = None
2034
+ ) -> None:
2005
2035
  """ Update a catalog target to an integration connector.
2006
2036
  Async version.
2007
2037
 
2008
2038
  Parameters:
2009
2039
  ----------
2010
2040
  relationship_guid: str
2011
- The GUID (Globally Unique Identifier) of the integration connector used to retrieve catalog targets.
2012
-
2041
+ The GUID (Globally Unique Identifier) of the relationship used to retrieve catalog targets.
2013
2042
  catalog_target_name : dict
2014
2043
  Name of the catalog target to add.
2044
+ connection_name: str, default = None
2045
+ Optional name of connection to use for this catalog target when multiple connections defined.
2015
2046
  metadata_src_qual_name: str
2016
2047
  The qualified name of the metadata source for the catalog target
2017
2048
  config_properties: dict
2018
2049
  Configuration properties for the catalog target
2050
+ template_properties: dict
2051
+ Template properties to pass
2052
+ permitted_sync: str, default = BOTH_DIRECTIONS
2053
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
2054
+ delete_method: str, default = ARCHIVE
2055
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
2019
2056
  server: str, optional
2020
2057
  The name of the server. If None, will use the default server specified in the instance will be used.
2058
+
2021
2059
  Returns:
2022
2060
  -------
2023
2061
  None
@@ -2035,42 +2073,49 @@ class AutomatedCuration(Client):
2035
2073
  url = (f"{self.platform_url}/servers/{server}/api/open-metadata/automated-curation/catalog-targets/"
2036
2074
  f"{relationship_guid}/update")
2037
2075
  body = {"catalogTargetName": catalog_target_name, "metadataSourceQualifiedName": metadata_src_qual_name,
2038
- "configProperties": config_properties}
2039
- response = await self._async_make_request("POST", url, body)
2076
+ "configProperties": config_properties, "templateProperties": template_properties,
2077
+ "connectionName": connection_name, "permittedSynchronization": permitted_sync,
2078
+ "deleteMethod": delete_method
2079
+ }
2080
+ await self._async_make_request("POST", url, body)
2040
2081
  return
2041
2082
 
2042
- def update_catalog_target(self, relationship_guid: str, catalog_target_name: str,
2043
- metadata_src_qual_name: str = None, config_properties: dict = None,
2044
- server: str = None) -> None:
2045
- """ Add a catalog target to an integration connector.
2083
+ def update_catalog_target(self, relationship_guid: str,
2084
+ catalog_target_name: str, connection_name: str = None,
2085
+ metadata_src_qual_name: str = None,
2086
+ config_properties: dict = None, template_properties: dict = None,
2087
+ permitted_sync: str = "BOTH_DIRECTIONS", delete_method: str = "ARCHIVE",
2088
+ server: str = None
2089
+ ) -> None:
2090
+ """ Update a catalog target to an integration connector.
2046
2091
 
2047
- Parameters:
2048
- ----------
2049
- relationship_guid: str
2050
- The GUID (Globally Unique Identifier) of the integration connector used to retrieve catalog targets.
2051
- catalog_target_name : dict
2052
- Name of the catalog target to add.
2053
- metadata_src_qual_name: str
2054
- The qualified name of the metadata source for the catalog target
2055
- config_properties: dict
2056
- Configuration properties for the catalog target
2057
- server: str, optional
2058
- The name of the server. If None, will use the default server specified in the instance will be used.
2059
- Returns:
2060
- -------
2061
- None
2092
+ Parameters:
2093
+ ----------
2094
+ relationship_guid: str
2095
+ The GUID (Globally Unique Identifier) of the relationship used to retrieve catalog targets.
2096
+ catalog_target_name : dict
2097
+ Name of the catalog target to add.
2098
+ connection_name: str, default = None
2099
+ Optional name of connection to use for this catalog target when multiple connections defined.
2100
+ metadata_src_qual_name: str
2101
+ The qualified name of the metadata source for the catalog target
2102
+ config_properties: dict
2103
+ Configuration properties for the catalog target
2104
+ template_properties: dict
2105
+ Template properties to pass
2106
+ permitted_sync: str, default = BOTH_DIRECTIONS
2107
+ Direction the metadata is allowed to flow (BOTH_DIRECTIONS, FROM_THIRD_PARTH, TO_THIRD_PARTY
2108
+ delete_method: str, default = ARCHIVE
2109
+ Controls the type of delete. Use ARCHIVE for lineage considerations. Alternative is SOFT_DELETE.
2110
+ server: str, optional
2111
+ """
2062
2112
 
2063
- Raises:
2064
- ------
2065
- InvalidParameterException: If the API response indicates an error (non-200 status code),
2066
- this exception is raised with details from the response content.
2067
- PropertyServerException: If the API response indicates a server side error.
2068
- UserNotAuthorizedException:
2069
- """
2070
2113
  loop = asyncio.get_event_loop()
2071
2114
  loop.run_until_complete(
2072
2115
  self._async_update_catalog_target(relationship_guid, catalog_target_name,
2073
- metadata_src_qual_name, config_properties, server))
2116
+ connection_name,metadata_src_qual_name,
2117
+ config_properties, template_properties,permitted_sync,
2118
+ delete_method,server))
2074
2119
  return
2075
2120
 
2076
2121
  async def _async_remove_catalog_target(self, relationship_guid: str, server: str = None) -> None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyegeria
3
- Version: 0.5.5.22
3
+ Version: 0.5.5.24
4
4
  Summary: A python client for Egeria
5
5
  Home-page: https://github.com/odpi/egeria-python
6
6
  License: Apache 2.0
@@ -21,7 +21,7 @@ examples/widgets/operational/__init__.py,sha256=8ebdyTD7i-XXyZr0vDx6jnXalE6QjhCv
21
21
  examples/widgets/operational/get_tech_type_elements.py,sha256=_wSZOShJ17kuMlgh8xC-iAzByi1A0JeB4cmEiAL87M0,5846
22
22
  examples/widgets/operational/get_tech_type_template.py,sha256=qIb-JYcoI_YR7NHUKH7TSdq56QI1H4QuyqWTvldNKNo,5866
23
23
  examples/widgets/operational/refresh_integration_daemon.py,sha256=7GF_xzO83nhvTaxJR2DMI7fsHg6TA4xaIy7z8YNbSlk,2274
24
- examples/widgets/operational/view_asset_events.py,sha256=yQa8Z19x6ipdR1QHCta1D-yih90pQ_TW2L6l_ekr2tA,3419
24
+ examples/widgets/operational/view_asset_events.py,sha256=XagfKloRfoeKO8-YOGBWJ4IPFdlUOB35tFmWJSDAbpg,3662
25
25
  examples/widgets/operational/view_coco_status.py,sha256=QloMgVcXL2Fx2XHyk71PKCwmzRfc_Q_cAvpyomcYi_Y,3322
26
26
  examples/widgets/operational/view_eng_action_status.py,sha256=Qj3ySRG58rsYFyFzgyxsHUMLclSMG3Qn3WQG2ERknMs,6108
27
27
  examples/widgets/operational/view_gov_eng_status.py,sha256=6HI_cp_cOPptWYQ5WMoDdWctwwfzTqYLmJMOoIGb6ec,4543
@@ -46,7 +46,7 @@ pyegeria/_globals.py,sha256=DF6851qHPpoDrY4w5JGmT-8zmMfVXf9MMG6nKlu-BYM,616
46
46
  pyegeria/_validators.py,sha256=DQuMsATRGxGSBtOrVtXlCgWXGhj6Nh-uqPtCsrUGLxk,12703
47
47
  pyegeria/action_author_omvs.py,sha256=m0wsfmyO-VxRDaPpACeIDw8eVAFu3RVbo45RPCUel9M,6340
48
48
  pyegeria/asset_catalog_omvs.py,sha256=Y-Eh0k-zkJNOChVlLbC2bsTSBVLWhk-0-ewCV4YlyDY,25802
49
- pyegeria/automated_curation_omvs.py,sha256=yp5d7D_nNRrx92MU8Z72zw5nloTzBDJVfxvwZrvlVWk,118212
49
+ pyegeria/automated_curation_omvs.py,sha256=7DV5SKkP9zPmHVPSVY9X8NdLIBJO9E6jx2XrwW4CjsI,121428
50
50
  pyegeria/collection_manager_omvs.py,sha256=IyGCbqx2Blm0OwCsC2071EeoNWHXyWGl_6pEtacizAs,112642
51
51
  pyegeria/core_guids.py,sha256=JKziCsKhklbWRramQ0orRMNTudJXYB721a32TJegBl4,4320
52
52
  pyegeria/core_omag_server_config.py,sha256=16ld7aBTgO3gGhvFs-_yzwqPsatdCAiKYi005_2evZU,93096
@@ -63,8 +63,8 @@ pyegeria/server_operations.py,sha256=hEaU6YC0iNEQFvcXYvcE4J6BQKlqMJk33nViCNIEBE4
63
63
  pyegeria/tech_guids_22-07-2024 13:22.py,sha256=nsjPrCDf9gohdw3LRcO5-uwzBN_nMB7Re_vtDJIgaIY,4643
64
64
  pyegeria/utils.py,sha256=f8isUaKDy-GJxhwswWgP_bw6q1CUzBUNVcCtin8N1cA,5433
65
65
  pyegeria/valid_metadata_omvs.py,sha256=aisdRodIwJSkyArAzfm_sEnBELh69xE8k4Nea-vHu8M,36745
66
- pyegeria-0.5.5.22.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
67
- pyegeria-0.5.5.22.dist-info/METADATA,sha256=WWZiHAWAWxf6heVJfraaR0Fl_JUqiFcbJB-gKEDFIgg,2612
68
- pyegeria-0.5.5.22.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
69
- pyegeria-0.5.5.22.dist-info/entry_points.txt,sha256=WgNY6OkZlWQ5uwE_qtyfVyuOX-dnOKyH0cW2JlKRIJ0,2038
70
- pyegeria-0.5.5.22.dist-info/RECORD,,
66
+ pyegeria-0.5.5.24.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
67
+ pyegeria-0.5.5.24.dist-info/METADATA,sha256=k3qekA4g_-NusyS_KUplGR47l-O2yky_aoTRSDkdaRc,2612
68
+ pyegeria-0.5.5.24.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
69
+ pyegeria-0.5.5.24.dist-info/entry_points.txt,sha256=WgNY6OkZlWQ5uwE_qtyfVyuOX-dnOKyH0cW2JlKRIJ0,2038
70
+ pyegeria-0.5.5.24.dist-info/RECORD,,