pyegeria 0.8.4.38__py3-none-any.whl → 0.8.4.40__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.
@@ -20,22 +20,26 @@ from pyegeria import (
20
20
  InvalidParameterException,
21
21
  PropertyServerException,
22
22
  UserNotAuthorizedException,
23
- AssetCatalog
23
+ AssetCatalog,
24
24
  )
25
25
 
26
26
  EGERIA_METADATA_STORE = os.environ.get("EGERIA_METADATA_STORE", "active-metadata-store")
27
- EGERIA_KAFKA_ENDPOINT = os.environ.get('KAFKA_ENDPOINT', 'localhost:9092')
28
- EGERIA_PLATFORM_URL = os.environ.get('EGERIA_PLATFORM_URL', 'https://localhost:9443')
29
- EGERIA_VIEW_SERVER = os.environ.get('VIEW_SERVER', 'view-server')
30
- EGERIA_VIEW_SERVER_URL = os.environ.get('EGERIA_VIEW_SERVER_URL', 'https://localhost:9443')
31
- EGERIA_INTEGRATION_DAEMON = os.environ.get('INTEGRATION_DAEMON', 'integration-daemon')
32
- EGERIA_INTEGRATION_DAEMON_URL = os.environ.get('EGERIA_INTEGRATION_DAEMON_URL', 'https://localhost:9443')
33
- EGERIA_ADMIN_USER = os.environ.get('ADMIN_USER', 'garygeeke')
34
- EGERIA_ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD', 'secret')
35
- EGERIA_USER = os.environ.get('EGERIA_USER', 'erinoverview')
36
- EGERIA_USER_PASSWORD = os.environ.get('EGERIA_USER_PASSWORD', 'secret')
37
- EGERIA_JUPYTER = bool(os.environ.get('EGERIA_JUPYTER', 'False'))
38
- EGERIA_WIDTH = int(os.environ.get('EGERIA_WIDTH', '200'))
27
+ EGERIA_KAFKA_ENDPOINT = os.environ.get("KAFKA_ENDPOINT", "localhost:9092")
28
+ EGERIA_PLATFORM_URL = os.environ.get("EGERIA_PLATFORM_URL", "https://localhost:9443")
29
+ EGERIA_VIEW_SERVER = os.environ.get("VIEW_SERVER", "view-server")
30
+ EGERIA_VIEW_SERVER_URL = os.environ.get(
31
+ "EGERIA_VIEW_SERVER_URL", "https://localhost:9443"
32
+ )
33
+ EGERIA_INTEGRATION_DAEMON = os.environ.get("INTEGRATION_DAEMON", "integration-daemon")
34
+ EGERIA_INTEGRATION_DAEMON_URL = os.environ.get(
35
+ "EGERIA_INTEGRATION_DAEMON_URL", "https://localhost:9443"
36
+ )
37
+ EGERIA_ADMIN_USER = os.environ.get("ADMIN_USER", "garygeeke")
38
+ EGERIA_ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "secret")
39
+ EGERIA_USER = os.environ.get("EGERIA_USER", "erinoverview")
40
+ EGERIA_USER_PASSWORD = os.environ.get("EGERIA_USER_PASSWORD", "secret")
41
+ EGERIA_JUPYTER = bool(os.environ.get("EGERIA_JUPYTER", "False"))
42
+ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
39
43
 
40
44
  disable_ssl_warnings = True
41
45
 
@@ -43,10 +47,17 @@ guid_list = []
43
47
 
44
48
  console = Console(width=EGERIA_WIDTH, force_terminal=(not EGERIA_JUPYTER))
45
49
 
46
- def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str, user_pass: str,
47
- jupyter: bool = EGERIA_JUPYTER, width: int = EGERIA_WIDTH):
48
- def build_classifications(classification: dict) -> Markdown:
49
50
 
51
+ def asset_viewer(
52
+ asset_guid: str,
53
+ server_name: str,
54
+ platform_url: str,
55
+ user: str,
56
+ user_pass: str,
57
+ jupyter: bool = EGERIA_JUPYTER,
58
+ width: int = EGERIA_WIDTH,
59
+ ):
60
+ def build_classifications(classification: dict) -> Markdown:
50
61
  class_md = ""
51
62
  for c in classification:
52
63
  c_type = c["classificationName"]
@@ -65,7 +76,7 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
65
76
 
66
77
  def build_nested_elements(nested_element: dict) -> Markdown:
67
78
  ne_md = " "
68
- ne_header = nested_element['elementHeader']
79
+ ne_header = nested_element["elementHeader"]
69
80
  ne_created_by = ne_header["versions"]["createdBy"]
70
81
  ne_created_at = ne_header["versions"]["createTime"]
71
82
  ne_guid = ne_header["guid"]
@@ -80,9 +91,11 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
80
91
  if type(ne_props) is dict:
81
92
  for prop in ne_props.keys():
82
93
  ne_prop_md += f"\t* {prop}: {ne_props[prop]}\n"
83
- ne_md = (f"Nested Element of Type: {ne_type} with GUID: {ne_guid} \n "
84
- f"* created by {ne_created_by} at time {ne_created_at}\n"
85
- f"\n* Properties:\n{ne_prop_md}\n")
94
+ ne_md = (
95
+ f"Nested Element of Type: {ne_type} with GUID: {ne_guid} \n "
96
+ f"* created by {ne_created_by} at time {ne_created_at}\n"
97
+ f"\n* Properties:\n{ne_prop_md}\n"
98
+ )
86
99
 
87
100
  if ne_class_md is not None:
88
101
  ne_md += f"* {ne_class_md}"
@@ -91,8 +104,7 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
91
104
  return output
92
105
 
93
106
  try:
94
- a_client = AssetCatalog(server_name, platform_url,
95
- user_id=user)
107
+ a_client = AssetCatalog(server_name, platform_url, user_id=user)
96
108
 
97
109
  token = a_client.create_egeria_bearer_token(user, user_pass)
98
110
  # asset_info = a_client.find_assets_in_domain(asset_name)
@@ -111,15 +123,28 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
111
123
 
112
124
  # print(f"\n{json.dumps(asset_graph, indent =2)}\n")
113
125
 
114
- asset_name = asset_graph["properties"].get("displayName",'---')
115
- qualified_name = asset_graph["properties"]["qualifiedName"]
116
- resource_name = asset_graph['properties'].get("resourceName","---")
117
-
118
- tree = Tree(f"{asset_name} ({asset_guid})", style="bold bright_white on black", guide_style="bold bright_blue")
126
+ asset_display_name = asset_graph["properties"].get("displayName", "---")
127
+ asset_display_description = asset_graph["properties"].get(
128
+ "displayDescription", "---"
129
+ )
130
+ asset_name = asset_graph["properties"].get("name", "---")
131
+ asset_resource_name = asset_graph["properties"].get("resourceName", "---")
132
+ asset_resource_description = asset_graph["properties"].get(
133
+ "resourceDescription", "---"
134
+ )
135
+ qualified_name = asset_graph["properties"].get("qualifiedName", "---")
136
+
137
+ tree = Tree(
138
+ f"{asset_name} ({asset_guid})",
139
+ style="bold bright_white on black",
140
+ guide_style="bold bright_blue",
141
+ )
119
142
  style = ""
120
- asset_elements = asset_graph['elementHeader']
143
+ asset_elements = asset_graph["elementHeader"]
121
144
  asset_type = asset_elements["type"]["typeName"]
122
- asset_deployed_imp_type = asset_graph.get("deployedImplementationType", "---")
145
+ asset_deployed_imp_type = asset_graph["properties"].get(
146
+ "deployedImplementationType", "---"
147
+ )
123
148
 
124
149
  asset_origin = asset_elements["origin"]["homeMetadataCollectionName"]
125
150
  asset_creation = asset_elements["versions"]["createTime"]
@@ -129,26 +154,48 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
129
154
  asset_relationships = asset_graph["relationships"]
130
155
  asset_class_md = build_classifications(asset_classifications)
131
156
 
132
- asset_properties = asset_graph.get("extendedProperties", None)
133
- if asset_properties is not None:
157
+ additional_properties = asset_graph["properties"].get(
158
+ "additionalProperties", None
159
+ )
160
+ if additional_properties is not None:
161
+ add_prop_md = "\n* Additional Properties:\n"
162
+ for prop in additional_properties:
163
+ add_prop_md = (
164
+ f"{add_prop_md}\n\t* {prop}: {additional_properties[prop]}\n"
165
+ )
166
+ else:
167
+ add_prop_md = ""
168
+
169
+ extended_properties = asset_graph["properties"].get("extendedProperties", None)
170
+ if extended_properties is not None:
134
171
  prop_md = "\n* Extended Properties:\n"
135
- for prop in asset_properties:
136
- prop_md = f"{prop_md}\n\t* {prop}: {asset_properties[prop]}\n"
172
+ for prop in extended_properties:
173
+ prop_md = f"{prop_md}\n\t* {prop}: {extended_properties[prop]}\n"
137
174
  else:
138
175
  prop_md = ""
139
- core_md = (f"**Type: {asset_type} Created by: {asset_created_by} on {asset_creation}**\n"
140
- f"* Deployed Implementation Type: {asset_deployed_imp_type}\n"
141
- f"* Qualified Name: {qualified_name}\n "
142
- f"* Resource Name: {resource_name}\n"
143
- f"* Display Name: {asset_name}\n"
144
- f"* Asset Origin: {asset_origin}\n{prop_md}\n"
145
- )
176
+ core_md = (
177
+ f"**Type: {asset_type} Created by: {asset_created_by} on {asset_creation}**\n"
178
+ f"* Deployed Implementation Type: {asset_deployed_imp_type}\n"
179
+ f"* Name: {asset_name}\n "
180
+ f"* Asset Resource Name: {asset_resource_name}\n"
181
+ f"* Asset Resource Description: {asset_resource_description}\n "
182
+ f"* Asset Display Name: {asset_display_name}\n"
183
+ f"* Asset Display Description: {asset_display_description}\n "
184
+ f"* Qualified Name: {qualified_name}\n "
185
+ f"* Asset Origin: {asset_origin}\n"
186
+ f" {prop_md}\n"
187
+ f" {add_prop_md}\n"
188
+ )
146
189
  core_md = Markdown(core_md)
147
190
 
148
191
  p1 = Panel.fit(core_md, style="bold bright_white")
149
192
  l2 = tree.add(p1)
150
193
  if asset_class_md is not None:
151
- p2 = Panel.fit(Markdown(asset_class_md), style="bold bright_white", title="Classifications")
194
+ p2 = Panel.fit(
195
+ Markdown(asset_class_md),
196
+ style="bold bright_white",
197
+ title="Classifications",
198
+ )
152
199
  l2 = tree.add(p2)
153
200
 
154
201
  #
@@ -158,7 +205,9 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
158
205
  l2 = tree.add("Nested Elements", style="bold white")
159
206
  for el in asset_nested_elements:
160
207
  asset_ne_md = build_nested_elements(el)
161
- p3 = Panel.fit(asset_ne_md, style="bold bright_white", title="Nested Elements")
208
+ p3 = Panel.fit(
209
+ asset_ne_md, style="bold bright_white", title="Nested Elements"
210
+ )
162
211
  l2.add(p3)
163
212
 
164
213
  #
@@ -185,10 +234,12 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
185
234
  relationship_created_by = relationship["versions"]["createdBy"]
186
235
  relationship_creation_time = relationship["versions"]["createTime"]
187
236
  relationship_properties = relationship.get("properties", "--- ")
188
- relationship_md = (f"Relationship Type {relationship_type}\n"
189
- f"* GUID: {relationship_guid}\n* Created by: {relationship_created_by} \n"
190
- f"* Creation Time: {relationship_creation_time}\n"
191
- f"* Properties: {relationship_properties}\n")
237
+ relationship_md = (
238
+ f"Relationship Type {relationship_type}\n"
239
+ f"* GUID: {relationship_guid}\n* Created by: {relationship_created_by} \n"
240
+ f"* Creation Time: {relationship_creation_time}\n"
241
+ f"* Properties: {relationship_properties}\n"
242
+ )
192
243
 
193
244
  rel_md = (
194
245
  f"* Relationship Type: {relationship_type}\n"
@@ -220,20 +271,25 @@ def asset_viewer(asset_guid: str, server_name: str, platform_url: str, user: str
220
271
 
221
272
  relationship_md += rel_end1_md + rel_end2_md
222
273
 
223
- relationship_panel = Panel.fit(Markdown(relationship_md), style="bold bright_white",
224
- title="Asset Relationships")
274
+ relationship_panel = Panel.fit(
275
+ Markdown(relationship_md),
276
+ style="bold bright_white",
277
+ title="Asset Relationships",
278
+ )
225
279
  tree.add(relationship_panel)
226
280
  with console.screen():
227
281
  print("\n\n")
228
282
  print(tree)
229
283
 
230
284
  except (
231
- InvalidParameterException,
232
- PropertyServerException,
233
- UserNotAuthorizedException
285
+ InvalidParameterException,
286
+ PropertyServerException,
287
+ UserNotAuthorizedException,
234
288
  ) as e:
235
289
  console.print_exception()
236
- console.print("\n\n ======> Most likely the GUID you provided is either incorrect or not an asset\n[red bold]")
290
+ console.print(
291
+ "\n\n ======> Most likely the GUID you provided is either incorrect or not an asset\n[red bold]"
292
+ )
237
293
 
238
294
 
239
295
  def main():
@@ -252,7 +308,7 @@ def main():
252
308
  try:
253
309
  asset_guid = Prompt.ask("Enter the Asset GUID to view:", default="")
254
310
  asset_viewer(asset_guid, server, url, userid, user_pass)
255
- except (KeyboardInterrupt) as e:
311
+ except KeyboardInterrupt as e:
256
312
  # console.print_exception()
257
313
  pass
258
314
  except Exception as e:
@@ -71,8 +71,9 @@ def display_archive_list(
71
71
  )
72
72
 
73
73
  table.add_column("Name")
74
+ table.add_column("Description")
74
75
  table.add_column("Path Name")
75
- table.add_column("Creation Date")
76
+
76
77
  # table.add_column("Creator")
77
78
  # table.add_column("Description")
78
79
 
@@ -93,16 +94,14 @@ def display_archive_list(
93
94
  for archive in sorted_archives:
94
95
  name = archive["properties"].get("name", "---")
95
96
  path_name = archive["properties"].get("pathName", "---")
97
+ description = archive["properties"].get("description", "---")
96
98
  creation_date_epoch = (
97
99
  int(archive["properties"].get("storeCreateTime", 0)) / 1000
98
100
  )
99
101
  create_date = datetime.datetime.fromtimestamp(creation_date_epoch)
100
102
  creator = "---"
101
- description = "---"
102
103
 
103
- table.add_row(
104
- name, path_name, create_date.strftime("%Y-%m-%d %H:%M:%S")
105
- )
104
+ table.add_row(name, description, path_name)
106
105
 
107
106
  return table
108
107
 
@@ -14,7 +14,7 @@ from pyegeria import (
14
14
  PropertyServerException,
15
15
  UserNotAuthorizedException,
16
16
  print_exception_response,
17
- ClassificationManager,
17
+ EgeriaTech,
18
18
  )
19
19
 
20
20
 
@@ -44,8 +44,15 @@ def list_elements(
44
44
  jupyter: bool = EGERIA_JUPYTER,
45
45
  width: int = EGERIA_WIDTH,
46
46
  ):
47
- c_client = ClassificationManager(server, url, user_id=username, user_pwd=password)
47
+ c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
48
48
  token = c_client.create_egeria_bearer_token()
49
+
50
+ om_typedef = c_client.get_typedef_by_name(om_type)
51
+ if type(om_typedef) is str:
52
+ print(
53
+ f"The type name '{om_type}' is not known to the Egeria platform at {url} - {server}"
54
+ )
55
+ sys.exit(1)
49
56
  elements = c_client.get_elements(om_type)
50
57
 
51
58
  def generate_table() -> Table:
@@ -70,6 +77,7 @@ def list_elements(
70
77
  table.add_column("Home Store")
71
78
  table.add_column("GUID", width=38, no_wrap=True)
72
79
  table.add_column("Properties")
80
+ table.add_column("Classifications")
73
81
 
74
82
  if type(elements) is list:
75
83
  for element in elements:
@@ -79,14 +87,36 @@ def list_elements(
79
87
  el_home = header["origin"]["homeMetadataCollectionName"]
80
88
  el_create_time = header["versions"]["createTime"][:-10]
81
89
  el_guid = header["guid"]
90
+ el_class = header.get("classifications", "---")
82
91
 
83
92
  el_props_md = ""
84
93
  for prop in element["properties"].keys():
85
94
  el_props_md += f"* **{prop}**: {element['properties'][prop]}\n"
86
-
87
95
  el_props_out = Markdown(el_props_md)
96
+
97
+ c_md = ""
98
+ if type(el_class) is list:
99
+ for classification in el_class:
100
+ classification_name = classification.get(
101
+ "classificationName", "---"
102
+ )
103
+ c_md = f"* **{classification_name}**\n"
104
+ class_props = classification.get(
105
+ "classificationProperties", "---"
106
+ )
107
+ if type(class_props) is dict:
108
+ for prop in class_props.keys():
109
+ c_md += f"* **{prop}**: {class_props[prop]}\n"
110
+ c_md_out = Markdown(c_md)
111
+
88
112
  table.add_row(
89
- el_q_name, el_type, el_create_time, el_home, el_guid, el_props_out
113
+ el_q_name,
114
+ el_type,
115
+ el_create_time,
116
+ el_home,
117
+ el_guid,
118
+ el_props_out,
119
+ c_md_out,
90
120
  )
91
121
 
92
122
  return table
@@ -14,8 +14,9 @@ from pyegeria import (
14
14
  PropertyServerException,
15
15
  UserNotAuthorizedException,
16
16
  print_exception_response,
17
- ClassificationManager,
18
- FeedbackManager,
17
+ # ClassificationManager,
18
+ # FeedbackManager,
19
+ EgeriaTech,
19
20
  )
20
21
 
21
22
 
@@ -45,12 +46,15 @@ def list_elements_x(
45
46
  jupyter: bool = EGERIA_JUPYTER,
46
47
  width: int = EGERIA_WIDTH,
47
48
  ):
48
- c_client = ClassificationManager(server, url, user_id=username, user_pwd=password)
49
+ c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
49
50
  token = c_client.create_egeria_bearer_token()
50
- f_client = FeedbackManager(
51
- server, url, user_id=username, user_pwd=password, token=token
52
- )
53
51
 
52
+ om_typedef = c_client.get_typedef_by_name(om_type)
53
+ if type(om_typedef) is str:
54
+ print(
55
+ f"The type name '{om_type}' is not known to the Egeria platform at {url} - {server}"
56
+ )
57
+ sys.exit(1)
54
58
  elements = c_client.get_elements(om_type)
55
59
 
56
60
  def generate_table() -> Table:
@@ -93,7 +97,7 @@ def list_elements_x(
93
97
 
94
98
  el_props_out = Markdown(el_props_md)
95
99
 
96
- tags = f_client.get_attached_tags(el_guid)
100
+ tags = c_client.get_attached_tags(el_guid)
97
101
  tags_md = "Tags:\n"
98
102
  if type(tags) is list:
99
103
  for tag in tags:
@@ -106,7 +110,7 @@ def list_elements_x(
106
110
  else:
107
111
  tags_md = "---"
108
112
 
109
- likes = f_client.get_attached_likes(el_guid)
113
+ likes = c_client.get_attached_likes(el_guid)
110
114
  likes_md = "Likes:\b"
111
115
  if type(likes) is list:
112
116
  for like in likes:
@@ -83,7 +83,7 @@ def element_response(response: dict, element_type: str, detailed_response: bool)
83
83
 
84
84
 
85
85
  def elements_response(response: dict, element_type: str, detailed_response: bool):
86
- print(response)
86
+ # print(response)
87
87
  if detailed_response:
88
88
  return response
89
89
  elif not element_type in response:
@@ -1096,7 +1096,7 @@ class RuntimeManager(Client):
1096
1096
  archive_file: str,
1097
1097
  server_guid: str = None,
1098
1098
  server_name: str = None,
1099
- time_out: int = 60,
1099
+ time_out: int = 120,
1100
1100
  ) -> None:
1101
1101
  """Add a new open metadata archive to running OMAG Server's repository.
1102
1102
  An open metadata archive contains metadata types and instances. This operation loads an open metadata archive
@@ -1141,7 +1141,7 @@ class RuntimeManager(Client):
1141
1141
  archive_file: str,
1142
1142
  server_guid: str = None,
1143
1143
  server_name: str = None,
1144
- time_out: int = 60,
1144
+ time_out: int = 120,
1145
1145
  ) -> None:
1146
1146
  """Add a new open metadata archive to running OMAG Server's repository.
1147
1147
  An open metadata archive contains metadata types and instances. This operation loads an open metadata archive
@@ -1247,7 +1247,7 @@ class RuntimeManager(Client):
1247
1247
  return
1248
1248
 
1249
1249
  async def _async_activate_server_with_stored_config(
1250
- self, server_guid: str = None, server_name: str = None
1250
+ self, server_guid: str = None, server_name: str = None, timeout: int = 120
1251
1251
  ) -> None:
1252
1252
  """Activate the named OMAG server using the appropriate configuration document found in the
1253
1253
  configuration store. Async version.
@@ -1275,11 +1275,11 @@ class RuntimeManager(Client):
1275
1275
  server_guid = self.__get_guid__(server_guid, server_name)
1276
1276
  url = f"{self.runtime_command_root}/omag-servers/{server_guid}/instance"
1277
1277
 
1278
- await self._async_make_request("POST", url)
1278
+ await self._async_make_request("POST", url, time_out=timeout)
1279
1279
  return
1280
1280
 
1281
1281
  def activate_server_with_stored_config(
1282
- self, server_guid: str = None, server_name: str = None
1282
+ self, server_guid: str = None, server_name: str = None, timeout: int = 120
1283
1283
  ) -> None:
1284
1284
  """Activate the named OMAG server using the appropriate configuration document found in the
1285
1285
  configuration store.
@@ -1306,7 +1306,9 @@ class RuntimeManager(Client):
1306
1306
  """
1307
1307
  loop = asyncio.get_event_loop()
1308
1308
  loop.run_until_complete(
1309
- self._async_activate_server_with_stored_config(server_guid, server_name)
1309
+ self._async_activate_server_with_stored_config(
1310
+ server_guid, server_name, timeout
1311
+ )
1310
1312
  )
1311
1313
  return
1312
1314
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyegeria
3
- Version: 0.8.4.38
3
+ Version: 0.8.4.40
4
4
  Summary: A python client for Egeria
5
5
  Home-page: https://github.com/odpi/egeria-python
6
6
  License: Apache 2.0
@@ -1,12 +1,12 @@
1
1
  commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
2
2
  commands/cat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- commands/cat/get_asset_graph.py,sha256=5YwgV4D1_R9pptPJuIFbPOjWpZBnfPiEan33_To75TE,11194
3
+ commands/cat/get_asset_graph.py,sha256=4AO4KlCgb7vbMihJK7W_GAnrd4J9sKwc4kXxa2ZrRW4,12447
4
4
  commands/cat/get_collection.py,sha256=v7hCeEDcAQmcjM9qepuk8gg_RnYra3_v009AJOunkKk,5005
5
5
  commands/cat/get_project_dependencies.py,sha256=B0JaMSUi0hzVgos1sTY2uUPGy1DzKEJMIbbYfMUWvQA,5981
6
6
  commands/cat/get_project_structure.py,sha256=n2GbNd07w1DTo7jTR8b2ewXRyNcat_2BcCBRyDMldwk,5969
7
7
  commands/cat/get_tech_type_elements.py,sha256=-m3Q0BoNqkCtV8h75vMwTcOV-_ymEXmnJcr4Ec7WMAw,6180
8
8
  commands/cat/get_tech_type_template.py,sha256=gMFVcgCIm09GQu1Vsc5ZUVH9XLhItAG1eVGZJrcnHeQ,6174
9
- commands/cat/list_archives.py,sha256=E45WMqAUuaEL6vwHGMfbpoUm3C7CyW46pIFcRc0Yfbs,5481
9
+ commands/cat/list_archives.py,sha256=83LhNeZWhzRiE-oU6veuIk9ob4XDtDWUoXdGGXaYeE8,5454
10
10
  commands/cat/list_assets.py,sha256=bNwSaBDz661hfnc2Rn4j4HPHAugKvz0XwN9L1m4FVQk,6529
11
11
  commands/cat/list_cert_types.py,sha256=mbCls_EqC5JKG5rvS4o69k7KgZ6aNXlcqoJ3DtHsTFA,7127
12
12
  commands/cat/list_glossary.py,sha256=tUtQQoTGTlDLU-yFbfO3zjiJC9QyEJfg8NxnGCo2mnI,5811
@@ -52,8 +52,8 @@ commands/tech/get_element_info.py,sha256=Rauespy7ZfyKtLh_H8XWgYTpPijsqlUGm-zeb7K
52
52
  commands/tech/get_guid_info.py,sha256=HfwcGAFALFIpy4AJAgQHU__Fv1fjprh1G1xB5AjlZ80,4282
53
53
  commands/tech/get_tech_details.py,sha256=p5OgSKep3VOuuZmQXE2OSYhE-kvnI18TBcQ-PU5kEAw,6023
54
54
  commands/tech/list_asset_types.py,sha256=LG7e8yjewQ_SX8SjzEiEii_-hDvmAJKyLN8iDjbch50,4162
55
- commands/tech/list_elements.py,sha256=cafGJMwvWTK5TkUNMPkPdSaTGqws0uQknyA_iywFjNQ,4834
56
- commands/tech/list_elements_x.py,sha256=mVAwl7QLPjiKCN_zWZpJIK4H_bwuT4hla8mUB8bJcgA,6370
55
+ commands/tech/list_elements.py,sha256=QWL465PoaMznSuLS_SV7Ubq_B7nwEPPTNYut2NYiDtQ,5996
56
+ commands/tech/list_elements_x.py,sha256=k5jkekB7wh6cbzjn7FnwL7pKrPFq_oE-x36c_Z1FuSo,6500
57
57
  commands/tech/list_registered_services.py,sha256=QzE_ebdopNkHWMxa-xc902GG6ac4Yw-ln8i8NUsgHVA,6542
58
58
  commands/tech/list_related_specification.py,sha256=mWrKenXOskL4cl0DHjH2Z8M9-FJzjkzK62W-tsx3WDU,5918
59
59
  commands/tech/list_relationship_types.py,sha256=BlVzrPznZXqMVLN2-2vYEVRGeYsiJrqXxIJEikobyoo,5875
@@ -77,7 +77,7 @@ pyegeria/egeria_client.py,sha256=gZjo_Z8n7r05KJnQgJuQibGOvCA90JCDlzyFRGkZV-I,336
77
77
  pyegeria/egeria_config_client.py,sha256=Zm31u4e7o8mXTV93qD0IHluQuG73jYbArPFqypjaMso,1328
78
78
  pyegeria/egeria_my_client.py,sha256=XHwbFmSZXJClKDBFV8_fyK9CWaap2FndurRjywKPQiU,1549
79
79
  pyegeria/egeria_tech_client.py,sha256=7NfqpJFft5GR4NPRDVDw22L9caHbXB8fhx0TAf6qEoo,2440
80
- pyegeria/feedback_manager_omvs.py,sha256=yvZ36nA_AIFsqyU-lysMWHHgqEnucti3ztfkqMxDCT0,152929
80
+ pyegeria/feedback_manager_omvs.py,sha256=B66e3ZCaC_dirb0mcb2Nz3PYh2ZKsoMAYNOb3euNiro,152931
81
81
  pyegeria/full_omag_server_config.py,sha256=LBnqUiz1ofBdlKBzECFs_pQbdJwcWigAukWHGJRR2nU,47340
82
82
  pyegeria/glossary_browser_omvs.py,sha256=AnBRp6KKw0507ABz_WmknVL94zLzYzJ4saXrghFlpmw,93455
83
83
  pyegeria/glossary_manager_omvs.py,sha256=VaPUROcVR5AjgkXeFx63e_10h0QzUeMt3JppHrhlq2M,111926
@@ -86,13 +86,13 @@ pyegeria/my_profile_omvs.py,sha256=DyECbUFEcgokrIbzdMMNljC3bqfqKGXAF2wZEpzvRYs,3
86
86
  pyegeria/platform_services.py,sha256=CJIOYIFEbcIGwdWlApAQcXxZTsdrhFtpJcm4O3p7dG0,41646
87
87
  pyegeria/project_manager_omvs.py,sha256=Y7Lyqh4jIujJrr_Ub7feo904FN_uz4R10T4hKhqE1Uw,67499
88
88
  pyegeria/registered_info.py,sha256=y0-LgDIQXpph0lEWxIOG3_HsqX_Z2iAIb3xu4Aa4B70,6344
89
- pyegeria/runtime_manager_omvs.py,sha256=aDLJauaRKoZP8ike-NiMH71zRVFmLC5-mCZEzM7cgLM,74149
89
+ pyegeria/runtime_manager_omvs.py,sha256=TYFbCpbCfgu-JqAxl2qdVPYZlUiTxeHqd4L8lNap-3I,74248
90
90
  pyegeria/server_operations.py,sha256=ciH890hYT85YQ6OpByn4w7s3a7TtvWZpIG5rkRqbcI0,16766
91
91
  pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
92
92
  pyegeria/valid_metadata_omvs.py,sha256=raBU_bK0oMhOqjOUTSbU_OZuGKsYqRoiFbtUwz4OtZI,29060
93
93
  pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
94
- pyegeria-0.8.4.38.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
95
- pyegeria-0.8.4.38.dist-info/METADATA,sha256=P-ouAO_QVuOuzKDCaBsp7p7ipcbMeNCF1vHAlfYu7D0,2868
96
- pyegeria-0.8.4.38.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
97
- pyegeria-0.8.4.38.dist-info/entry_points.txt,sha256=R8sNzclWZN542SufuVlx9HDia23PlSVnJioUkzCWg4I,3349
98
- pyegeria-0.8.4.38.dist-info/RECORD,,
94
+ pyegeria-0.8.4.40.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
95
+ pyegeria-0.8.4.40.dist-info/METADATA,sha256=S848dKDNgxHA9sXkELQLtCCoYiWltZdhN6XdAP-ydsA,2868
96
+ pyegeria-0.8.4.40.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
97
+ pyegeria-0.8.4.40.dist-info/entry_points.txt,sha256=DUPkeIWOd5H0m7_0Czt2P340RnePXcE-VAcact9B1Hc,3350
98
+ pyegeria-0.8.4.40.dist-info/RECORD,,
@@ -15,7 +15,7 @@ hey_egeria=commands.cli.egeria:cli
15
15
  hey_egeria_cat=commands.cli.egeria_cat:cli
16
16
  hey_egeria_my=commands.cli.egeria_my:cli
17
17
  hey_egeria_ops=commands.cli.egeria_ops:cli
18
- hey_egeria_tech=commands.cli.egeria_cat:cli
18
+ hey_egeria_tech=commands.cli.egeria_tech:cli
19
19
  list_archives=commands.cat.list_archives:main
20
20
  list_asset_types=commands.tech.list_asset_types:main
21
21
  list_assets=commands.cat.list_assets:main