pyegeria 1.5.1.1.30__py3-none-any.whl → 1.5.1.1.34__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.
@@ -506,6 +506,116 @@ class AssetCatalog(Client):
506
506
  )
507
507
  return response
508
508
 
509
+ async def _async_get_asset_lineage_graph(
510
+ self,
511
+ asset_guid: str,
512
+ start_from: int = 0,
513
+ page_size: int = max_paging_size,
514
+ ) -> str | dict:
515
+ """Return the asset lineage including a mermaid markdown string. Async Version.
516
+ Parameters
517
+ ----------
518
+ asset_guid : str
519
+ The unique identity of the asset to get the graph for.
520
+
521
+ start_from : int, optional
522
+ The index from which to start fetching the engine actions. Default is 0.
523
+
524
+ page_size : int, optional
525
+ The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
526
+
527
+ Returns
528
+ -------
529
+ str | dict
530
+ A dictionary of the asset graph that includes a mermaid markdown string.
531
+
532
+ Raises:
533
+ ------
534
+ InvalidParameterException
535
+ PropertyServerException
536
+ UserNotAuthorizedException
537
+
538
+ """
539
+
540
+ url = (
541
+ f"{self.platform_url}/servers/{self.view_server}/api/open-metadata/asset-catalog/assets/{asset_guid}/"
542
+ f"as-lineage-graph?startFrom={start_from}&pageSize={page_size}"
543
+ )
544
+
545
+ response = await self._async_make_request("POST", url)
546
+ return response.json().get("assetLineageGraph", "no asset found")
547
+
548
+ def get_asset_lineage_graph(
549
+ self,
550
+ asset_guid: str,
551
+ start_from: int = 0,
552
+ page_size: int = max_paging_size,
553
+ ) -> str | dict:
554
+ """Return the asset lineage including a mermaid markdown string. Async Version.
555
+ Parameters
556
+ ----------
557
+ asset_guid : str
558
+ The unique identity of the asset to get the graph for.
559
+
560
+ start_from : int, optional
561
+ The index from which to start fetching the engine actions. Default is 0.
562
+
563
+ page_size : int, optional
564
+ The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
565
+
566
+ Returns
567
+ -------
568
+ dict or str
569
+ A dictionary of the asset graph.
570
+
571
+ Raises:
572
+ ------
573
+ InvalidParameterException
574
+ PropertyServerException
575
+ UserNotAuthorizedException
576
+
577
+ """
578
+
579
+ loop = asyncio.get_event_loop()
580
+ response = loop.run_until_complete(
581
+ self._async_get_asset_lineage_graph(asset_guid, start_from, page_size)
582
+ )
583
+ return response
584
+
585
+ def get_asset_lineage_mermaid_graph(
586
+ self,
587
+ asset_guid: str,
588
+ start_from: int = 0,
589
+ page_size: int = max_paging_size,
590
+ ) -> str:
591
+ """Return the lineage as mermaid markdown string. Async Version.
592
+ Parameters
593
+ ----------
594
+ asset_guid : str
595
+ The unique identity of the asset to get the graph for.
596
+
597
+ start_from : int, optional
598
+ The index from which to start fetching the engine actions. Default is 0.
599
+
600
+ page_size : int, optional
601
+ The maximum number of engine actions to fetch in a single request. Default is `max_paging_size`.
602
+
603
+ Returns
604
+ -------
605
+ str
606
+ A mermaid string representing the lineage.
607
+
608
+ Raises:
609
+ ------
610
+ InvalidParameterException
611
+ PropertyServerException
612
+ UserNotAuthorizedException
613
+
614
+ """
615
+
616
+ asset_graph = self.get_asset_lineage_graph(asset_guid, start_from, page_size)
617
+ return asset_graph.get("mermaidGraph")
618
+
509
619
  async def _async_get_assets_by_metadata_collection_id(
510
620
  self,
511
621
  metadata_collection_id: str,
@@ -1,12 +1,21 @@
1
1
  """
2
+ SPDX-License-Identifier: Apache-2.0
3
+ Copyright Contributors to the ODPi Egeria project.
2
4
 
3
- Widgets
5
+
6
+
7
+ pyegeria commands available also from python.
4
8
  """
5
9
 
6
10
  from .ops.monitor_gov_eng_status import display_gov_eng_status
7
11
  from .ops.monitor_integ_daemon_status import display_integration_daemon_status
8
- from .cat.list_glossaries import display_glossaries
9
- from .cat.list_terms import display_glossary_terms
10
12
  from .ops.table_integ_daemon_status import (
11
13
  display_integration_daemon_status as table_integ_daemon_status,
12
14
  )
15
+ from .ops.monitor_engine_activity_c import display_engine_activity_c
16
+
17
+ from .cat.list_glossaries import display_glossaries
18
+ from .cat.list_terms import display_glossary_terms
19
+ from .cat.list_deployed_catalogs import list_deployed_catalogs
20
+ from .cat.list_deployed_database_schemas import list_deployed_database_schemas
21
+ from .cat.list_deployed_databases import list_deployed_databases
@@ -1,5 +1,5 @@
1
- from .list_glossaries import display_glossaries
2
- from .list_terms import display_glossary_terms
3
- from .list_deployed_catalogs import list_deployed_catalogs
4
- from .list_deployed_database_schemas import list_deployed_database_schemas
5
- from .list_deployed_databases import list_deployed_databases
1
+ # from .list_glossaries import display_glossaries
2
+ # from .list_terms import display_glossary_terms
3
+ # from .list_deployed_catalogs import list_deployed_catalogs
4
+ # from .list_deployed_database_schemas import list_deployed_database_schemas
5
+ # from .list_deployed_databases import list_deployed_databases
@@ -47,21 +47,41 @@ def check_if_template(header: dict) -> bool:
47
47
 
48
48
 
49
49
  def list_deployed_catalogs(
50
- catalog_server: str,
51
- server: str,
52
- url: str,
53
- username: str,
54
- password: str,
50
+ catalog_server: str = "*",
51
+ view_server: str = EGERIA_VIEW_SERVER,
52
+ view_url: str = EGERIA_VIEW_SERVER_URL,
53
+ user: str = EGERIA_USER,
54
+ user_pass: str = EGERIA_USER_PASSWORD,
55
55
  jupyter: bool = EGERIA_JUPYTER,
56
56
  width: int = EGERIA_WIDTH,
57
57
  ):
58
- c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
58
+ """
59
+ Display the list of deployed catalogs. These could be metadata catalogs or other catalogs such as database catalogs..
60
+
61
+ Parameters
62
+ ----------
63
+ catalog_server : str, optional
64
+ The name of the catalog server to query. Default is "*" for all catalog servers.
65
+ view_server : str, optional
66
+ The server providing the view. Default is EGERIA_VIEW_SERVER.
67
+ view_url : str, optional
68
+ The URL of the view server. Default is EGERIA_VIEW_SERVER_URL.
69
+ user : str, optional
70
+ The user ID for authentication. Default is EGERIA_USER.
71
+ user_pass : str, optional
72
+ The password for the user. Default is EGERIA_USER_PASSWORD.
73
+ jupyter : bool, optional
74
+ Enable Jupyter notebook output. Default is EGERIA_JUPYTER.
75
+ width : int, optional
76
+ The width of the console output. Default is EGERIA_WIDTH.
77
+ """
78
+ c_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
59
79
  token = c_client.create_egeria_bearer_token()
60
80
 
61
81
  def generate_table() -> Table:
62
82
  """Make a new table."""
63
83
  table = Table(
64
- caption=f"Databases found: {url} - {server} @ {time.asctime()}",
84
+ caption=f"Databases found: {view_url} - {view_server} @ {time.asctime()}",
65
85
  style="bold bright_white on black",
66
86
  row_styles=["bold bright_white on black"],
67
87
  header_style="white on dark_blue",
@@ -55,21 +55,39 @@ def make_prop_md(props: dict) -> str:
55
55
 
56
56
 
57
57
  def list_deployed_database_schemas(
58
- db_name: str,
59
- server: str,
60
- url: str,
61
- username: str,
62
- password: str,
58
+ db_name: str = "*",
59
+ view_server: str = EGERIA_VIEW_SERVER,
60
+ view_url: str = EGERIA_VIEW_SERVER_URL,
61
+ user: str = EGERIA_USER,
62
+ user_pass: str = EGERIA_USER_PASSWORD,
63
63
  jupyter: bool = EGERIA_JUPYTER,
64
64
  width: int = EGERIA_WIDTH,
65
65
  ):
66
- c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
66
+ """List schemas that have been deployed in database catalogs or databases.
67
+ Parameters
68
+ ----------
69
+ db_name : str
70
+ Name of the database or catalog to get schemas for, or '*' for all databases.
71
+ view_server : str
72
+ The view server to connect to.
73
+ view_url : str
74
+ URL of the view server.
75
+ user : str
76
+ Username for authentication.
77
+ user_pass : str
78
+ Password for authentication.
79
+ jupyter : bool
80
+ Whether to force the terminal output to behave as if in a Jupyter notebook.
81
+ width : int
82
+ Width of the console output.
83
+ """
84
+ c_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
67
85
  token = c_client.create_egeria_bearer_token()
68
86
 
69
87
  def generate_table() -> Table:
70
88
  """Make a new table."""
71
89
  table = Table(
72
- caption=f"Databases found: {url} - {server} @ {time.asctime()}",
90
+ caption=f"Databases found: {view_url} - {view_server} @ {time.asctime()}",
73
91
  style="bold bright_white on black",
74
92
  row_styles=["bold bright_white on black"],
75
93
  header_style="white on dark_blue",
@@ -47,20 +47,36 @@ def check_if_template(header: dict) -> bool:
47
47
 
48
48
 
49
49
  def list_deployed_databases(
50
- server: str,
51
- url: str,
52
- username: str,
53
- password: str,
50
+ view_server: str = EGERIA_VIEW_SERVER,
51
+ view_url: str = EGERIA_VIEW_SERVER_URL,
52
+ user: str = EGERIA_USER,
53
+ user_pass: str = EGERIA_USER_PASSWORD,
54
54
  jupyter: bool = EGERIA_JUPYTER,
55
55
  width: int = EGERIA_WIDTH,
56
56
  ):
57
- c_client = EgeriaTech(server, url, user_id=username, user_pwd=password)
57
+ """
58
+ Parameters
59
+ ----------
60
+ view_server : str
61
+ The view server name to which the Egeria client will connect. By default, this is set to EGERIA_VIEW_SERVER.
62
+ view_url : str
63
+ The URL of the Egeria view server. By default, this is set to EGERIA_VIEW_SERVER_URL.
64
+ user : str
65
+ The username used for authentication with the Egeria server. By default, it is set to EGERIA_USER.
66
+ user_pass : str
67
+ The password used for authentication with the Egeria server. By default, it is set to EGERIA_USER_PASSWORD.
68
+ jupyter : bool
69
+ A flag indicating whether the output is displayed within a Jupyter notebook. Default is set to EGERIA_JUPYTER.
70
+ width : int
71
+ The width of the output console. By default, it is set to EGERIA_WIDTH.
72
+ """
73
+ c_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
58
74
  token = c_client.create_egeria_bearer_token()
59
75
 
60
76
  def generate_table() -> Table:
61
77
  """Make a new table."""
62
78
  table = Table(
63
- caption=f"Databases found: {url} - {server} @ {time.asctime()}",
79
+ caption=f"Databases found: {view_url} - {view_server} @ {time.asctime()}",
64
80
  style="bold bright_white on black",
65
81
  row_styles=["bold bright_white on black"],
66
82
  header_style="white on dark_blue",
@@ -46,16 +46,33 @@ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
46
46
 
47
47
 
48
48
  def display_glossaries(
49
- search_string: str,
50
- server: str,
51
- url: str,
52
- userid: str,
53
- password: str,
49
+ search_string: str = "*",
50
+ view_server: str = EGERIA_VIEW_SERVER,
51
+ view_url: str = EGERIA_VIEW_SERVER_URL,
52
+ user: str = EGERIA_USER,
53
+ user_pass: str = EGERIA_USER_PASSWORD,
54
54
  jupyter: bool = EGERIA_JUPYTER,
55
55
  width: int = EGERIA_WIDTH,
56
56
  ):
57
- """List all glossaries"""
58
- m_client = EgeriaTech(server, url, user_id=userid, user_pwd=password)
57
+ """Display either a specified glossary or all glossaries if the search_string is '*'.
58
+ Parameters
59
+ ----------
60
+ search_string : str, default is '*'
61
+ The string used to search for glossaries.
62
+ view_server : str
63
+ The view server name or address where the Egeria services are hosted.
64
+ view_url : str
65
+ The URL of the platform the view server is on.
66
+ user : str
67
+ The user ID for authentication with the Egeria server.
68
+ user_pass : str
69
+ The password for authentication with the Egeria server.
70
+ jupyter : bool, optional
71
+ A boolean indicating whether the output is intended for a Jupyter notebook (default is EGERIA_JUPYTER).
72
+ width : int, optional
73
+ The width of the console output (default is EGERIA_WIDTH).
74
+ """
75
+ m_client = EgeriaTech(view_server, view_url, user_id=user, user_pwd=user_pass)
59
76
  token = m_client.create_egeria_bearer_token()
60
77
  try:
61
78
  table = Table(
@@ -66,7 +83,7 @@ def display_glossaries(
66
83
  caption_style="white on black",
67
84
  show_lines=True,
68
85
  box=box.ROUNDED,
69
- caption=f"View Server '{server}' @ Platform - {url}",
86
+ caption=f"View Server '{view_server}' @ Platform - {view_url}",
70
87
  expand=True,
71
88
  )
72
89
  table.add_column("Glossary Name")
@@ -46,18 +46,45 @@ EGERIA_WIDTH = int(os.environ.get("EGERIA_WIDTH", "200"))
46
46
 
47
47
 
48
48
  def display_glossary_terms(
49
- search_string: str,
50
- glossary_guid: str,
51
- glossary_name: str,
52
- server: str,
53
- url: str,
54
- username: str,
55
- user_password: str,
49
+ search_string: str = "*",
50
+ glossary_guid: str = None,
51
+ glossary_name: str = None,
52
+ view_server: str = EGERIA_VIEW_SERVER,
53
+ view_url: str = EGERIA_VIEW_SERVER_URL,
54
+ user_id: str = EGERIA_USER,
55
+ user_pass: str = EGERIA_USER_PASSWORD,
56
56
  jupyter: bool = EGERIA_JUPYTER,
57
57
  width: int = EGERIA_WIDTH,
58
58
  ):
59
- """Display glossary terms in a table"""
60
- g_client = EgeriaTech(server, url, username, user_password)
59
+ """Display a table of glossary terms filtered by search_string and glossary, if specified. If no
60
+ filters then all terms are displayed. If glossary_guid or name is specified, then only terms from that
61
+ glossary are displayed.
62
+ Parameters
63
+ ----------
64
+ search_string : str, optional
65
+ The string to search for terms. Defaults to "*".
66
+ glossary_guid : str, optional
67
+ The unique identifier of the glossary. Defaults to None. If specified, then only terms from that glossary
68
+ are displayed. If both glossary_guid and glossary_name are provided then glossary_guid will take precedence.
69
+ glossary_name : str, optional
70
+ The display name of the glossary. Defaults to None. If specified, then only terms from that glossary
71
+ are displayed. If both glossary_guid and glossary_name are provided then glossary_guid will take precedence.
72
+ Note that the use of glossary display name relies on the qualified name conforming to convention. GUID is more
73
+ reliable.
74
+ view_server : str
75
+ The server where the glossary is hosted. Defaults to EGERIA_VIEW_SERVER.
76
+ view_url : str
77
+ The URL of the server where the glossary is hosted. Defaults to EGERIA_VIEW_SERVER_URL.
78
+ user_id : str
79
+ The user ID for authentication. Defaults to EGERIA_USER.
80
+ user_pass : str
81
+ The user password for authentication. Defaults to EGERIA_USER_PASSWORD.
82
+ jupyter : bool
83
+ Flag to indicate if the output should be formatted for Jupyter notebook. Defaults to EGERIA_JUPYTER.
84
+ width : int
85
+ The width of the console output. Defaults to EGERIA_WIDTH.
86
+ """
87
+ g_client = EgeriaTech(view_server, view_url, user_id, user_pass)
61
88
  token = g_client.create_egeria_bearer_token()
62
89
  if (glossary_name is not None) and (glossary_name != "*"):
63
90
  glossary_guid = g_client.__get_guid__(
@@ -78,7 +105,7 @@ def display_glossary_terms(
78
105
  caption_style="white on black",
79
106
  show_lines=True,
80
107
  box=box.ROUNDED,
81
- caption=f"View Server '{server}' @ Platform - {url}",
108
+ caption=f"View Server '{view_server}' @ Platform - {view_url}",
82
109
  expand=True,
83
110
  )
84
111
  table.add_column("Term Name")
@@ -117,7 +144,7 @@ def display_glossary_terms(
117
144
  display_name = Text(props["displayName"], style=style)
118
145
  qualified_name = props["qualifiedName"]
119
146
  term_guid = term["elementHeader"]["guid"]
120
- q_name = Text(f"{qualified_name}\n\t\t\t&\n{term_guid}", style=style)
147
+ q_name = Text(f"{qualified_name}\n\t\t&\n{term_guid}", style=style)
121
148
  abbrev = Text(props.get("abbreviation", " "), style=style)
122
149
  summary = Text(props.get("summary", " "), style=style)
123
150
  description = Text(props.get("description", " "), style=style)
@@ -356,7 +356,7 @@ def get_element_info(ctx, om_type):
356
356
  )
357
357
 
358
358
 
359
- @show.command("list-elements")
359
+ @show.command("elements")
360
360
  @click.pass_context
361
361
  @click.option("--om_type", default="Project", help="Metadata type to query")
362
362
  def list_element_info(ctx, om_type):
@@ -373,9 +373,9 @@ def list_element_info(ctx, om_type):
373
373
  )
374
374
 
375
375
 
376
- @show.command("list-processes")
376
+ @show.command("processes")
377
377
  @click.pass_context
378
- def list_element_info(ctx):
378
+ def list_process_info(ctx):
379
379
  """Display the valid metadata values for a property and type"""
380
380
  c = ctx.obj
381
381
  list_elements(
@@ -917,9 +917,9 @@ def show_todos(ctx):
917
917
  )
918
918
 
919
919
 
920
- @show.command("list-archives")
920
+ @show.command("archives")
921
921
  @click.pass_context
922
- def list_archives(ctx):
922
+ def archives(ctx):
923
923
  """Display a tree graph of information about an asset"""
924
924
  c = ctx.obj
925
925
  display_archive_list(
@@ -933,12 +933,12 @@ def list_archives(ctx):
933
933
  )
934
934
 
935
935
 
936
- @show.command("list-deployed-schemas")
936
+ @show.command("deployed-schemas")
937
937
  @click.option(
938
938
  "--search_catalog", default="*", help="What database or catalog to search"
939
939
  )
940
940
  @click.pass_context
941
- def list_deployed_schemas(search_catalog, ctx):
941
+ def deployed_schemas(search_catalog, ctx):
942
942
  """Display a tree graph of information about an asset"""
943
943
  c = ctx.obj
944
944
  list_deployed_database_schemas(
@@ -952,10 +952,10 @@ def list_deployed_schemas(search_catalog, ctx):
952
952
  )
953
953
 
954
954
 
955
- @show.command("list-catalogs")
955
+ @show.command("catalogs")
956
956
  @click.option("--search_server", default="*", help="Server to search for catalogs")
957
957
  @click.pass_context
958
- def list_catalogs(search_server, ctx):
958
+ def catalogs(search_server, ctx):
959
959
  """Display a tree graph of information about an asset"""
960
960
  c = ctx.obj
961
961
  list_deployed_catalogs(
@@ -969,9 +969,9 @@ def list_catalogs(search_server, ctx):
969
969
  )
970
970
 
971
971
 
972
- @show.command("list-databases")
972
+ @show.command("databases")
973
973
  @click.pass_context
974
- def list_databases(ctx):
974
+ def databases(ctx):
975
975
  """Display a tree graph of information about an asset"""
976
976
  c = ctx.obj
977
977
  list_deployed_databases(
@@ -979,10 +979,10 @@ def list_databases(ctx):
979
979
  )
980
980
 
981
981
 
982
- @show.command("list-glossaries")
982
+ @show.command("glossaries")
983
983
  @click.option("--search_string", default="*", help="Name to search for glossaries")
984
984
  @click.pass_context
985
- def list_glossaries(ctx, search_string):
985
+ def glossaries(ctx, search_string):
986
986
  """Display a tree graph of information about an asset"""
987
987
  c = ctx.obj
988
988
  display_glossaries(
@@ -500,7 +500,7 @@ def show_todos(ctx):
500
500
  )
501
501
 
502
502
 
503
- @show.command("list-archives")
503
+ @show.command("archives")
504
504
  @click.pass_context
505
505
  def list_archives(ctx):
506
506
  """Display a tree graph of information about an asset"""
@@ -516,10 +516,10 @@ def list_archives(ctx):
516
516
  )
517
517
 
518
518
 
519
- @show.command("list-schemas")
519
+ @show.command("deployed-schemas")
520
520
  @click.option("--catalog", default="*", help="What database or catalog to search")
521
521
  @click.pass_context
522
- def list_deployed_schemas(ctx, catalog):
522
+ def deployed_schemas(ctx, catalog):
523
523
  """Display a tree graph of information about an asset"""
524
524
  c = ctx.obj
525
525
  list_deployed_database_schemas(
@@ -533,7 +533,7 @@ def list_deployed_schemas(ctx, catalog):
533
533
  )
534
534
 
535
535
 
536
- @show.command("list-catalogs")
536
+ @show.command("catalogs")
537
537
  @click.option("--search_server", default="*", help="Server to search for catalogs")
538
538
  @click.pass_context
539
539
  def list_catalogs(ctx, search_server):
@@ -550,10 +550,10 @@ def list_catalogs(ctx, search_server):
550
550
  )
551
551
 
552
552
 
553
- @show.command("list-glossaries")
553
+ @show.command("glossaries")
554
554
  @click.option("--search_string", default="*", help="Name to search for glossaries")
555
555
  @click.pass_context
556
- def list_glossaries(ctx, search_string):
556
+ def glossaries(ctx, search_string):
557
557
  """Display a tree graph of information about an asset"""
558
558
  c = ctx.obj
559
559
  display_glossaries(
@@ -567,7 +567,7 @@ def list_glossaries(ctx, search_string):
567
567
  )
568
568
 
569
569
 
570
- @show.command("list-databases")
570
+ @show.command("databases")
571
571
  @click.pass_context
572
572
  def list_databases(ctx):
573
573
  """Display a tree graph of information about an asset"""
@@ -608,19 +608,19 @@ def survey(ctx):
608
608
  pass
609
609
 
610
610
 
611
- @survey.command("survey-uc-server")
612
- @click.pass_context
613
- @click.option(
614
- "--uc_endpoint",
615
- default="https://localhost:8080",
616
- help="Endpoint of the Unity Catalog Server to Survey",
617
- )
618
- def survey_uc_server(ctx, uc_endpoint):
619
- """Survey the Unity Catalog server at the given endpoint"""
620
- c = ctx.obj
621
- pass
622
- # restart_connector(connector, c.integration_daemon, c.integration_daemon_url,
623
- # c.userid, c.password)
611
+ # @survey.command("survey-uc-server")
612
+ # @click.pass_context
613
+ # @click.option(
614
+ # "--uc_endpoint",
615
+ # default="https://localhost:8080",
616
+ # help="Endpoint of the Unity Catalog Server to Survey",
617
+ # )
618
+ # def survey_uc_server(ctx, uc_endpoint):
619
+ # """Survey the Unity Catalog server at the given endpoint"""
620
+ # c = ctx.obj
621
+ # pass
622
+ # # restart_connector(connector, c.integration_daemon, c.integration_daemon_url,
623
+ # # c.userid, c.password)
624
624
 
625
625
 
626
626
  if __name__ == "__main__":
@@ -468,7 +468,7 @@ def valid_metadata_values(ctx, property, type_name):
468
468
  )
469
469
 
470
470
 
471
- @show.command("list-elements")
471
+ @show.command("elements")
472
472
  @click.pass_context
473
473
  @click.option("--om_type", default="Organization", help="Metadata type to query")
474
474
  def list_element_info(ctx, om_type):
@@ -485,7 +485,7 @@ def list_element_info(ctx, om_type):
485
485
  )
486
486
 
487
487
 
488
- @show.command("list-processes")
488
+ @show.command("processes")
489
489
  @click.pass_context
490
490
  def list_element_info(ctx):
491
491
  """Display the valid metadata values for a property and type"""
@@ -98,7 +98,7 @@ def start_server(ctx, server):
98
98
  p_client.close_session()
99
99
 
100
100
 
101
- @click.command("refresh-gov-eng-config")
101
+ @click.command("refresh")
102
102
  @click.pass_context
103
103
  # @click.option(
104
104
  # "--engine-host", default=EGERIA_ENGINE_HOST, help="Engine Host to refresh"
@@ -54,20 +54,39 @@ disable_ssl_warnings = True
54
54
 
55
55
 
56
56
  def display_engine_activity_c(
57
- server: str,
58
- url: str,
59
- user: str,
60
- user_pass: str,
61
- paging: bool,
57
+ view_server: str = EGERIA_VIEW_SERVER,
58
+ view_url: str = EGERIA_VIEW_SERVER_URL,
59
+ user: str = EGERIA_USER,
60
+ user_pass: str = EGERIA_USER_PASSWORD,
61
+ paging: bool = True,
62
62
  jupyter: bool = EGERIA_JUPYTER,
63
- width=EGERIA_WIDTH,
63
+ width: int = EGERIA_WIDTH,
64
64
  ):
65
- g_client = AutomatedCuration(server, url, user, user_pwd=user_pass)
65
+ """Display governance engine activity as a table.
66
+
67
+ Parameters
68
+ ----------
69
+ view_server : str
70
+ The Egeria view server name.
71
+ view_url : str
72
+ The URL for the Egeria view server.
73
+ user : str
74
+ The user name for authenticating with the Egeria server.
75
+ user_pass : str
76
+ The user password for authenticating with the Egeria server.
77
+ paging : bool, default is True
78
+ Whether to enable paging mode when displaying the table.
79
+ jupyter : bool
80
+ Indicates if the environment is a Jupyter notebook.
81
+ width : int
82
+ The width of the console for table printing.
83
+ """
84
+ g_client = AutomatedCuration(view_server, view_url, user, user_pwd=user_pass)
66
85
 
67
86
  def generate_table() -> Table:
68
87
  """Make a new table."""
69
88
  table = Table(
70
- title=f"Engine Action Status for Platform {url} @ {time.asctime()}",
89
+ title=f"Engine Action Status for Platform {view_url} @ {time.asctime()}",
71
90
  style="bold white on black",
72
91
  row_styles=["bold white on black"],
73
92
  header_style="white on dark_blue",
@@ -75,7 +94,7 @@ def display_engine_activity_c(
75
94
  caption_style="white on black",
76
95
  show_lines=True,
77
96
  box=box.ROUNDED,
78
- caption=f"Engine Status for Server '{server}' @ Platform - {url}",
97
+ caption=f"Engine Status for Server '{view_server}' @ Platform - {view_url}",
79
98
  expand=True,
80
99
  )
81
100
  table.add_column("Requested Time")
@@ -62,7 +62,37 @@ def display_gov_eng_status(
62
62
  jupyter: bool = EGERIA_JUPYTER,
63
63
  width: int = EGERIA_WIDTH,
64
64
  sort: bool = True,
65
- ):
65
+ ) -> None:
66
+ """Displays the status table of the governance engines on the specified Engine Host OMAG Server
67
+
68
+ Parameters
69
+ ----------
70
+ search_list : list of str
71
+ List of governance engine names to search for. Defaults to ["*"] which returns all governance engines.
72
+ engine_host : str
73
+ The host name of the governance engine.
74
+ view_server : str
75
+ The name of the view server to interact with.
76
+ url : str
77
+ The URL of the view server.
78
+ username : str
79
+ Username for authentication with the view server.
80
+ user_pass : str
81
+ Password for authentication with the view server.
82
+ paging : bool
83
+ Determines whether to use a pager or live monitor for output. Defaults to True.
84
+ jupyter : bool
85
+ Specifies if the code is running in a Jupyter environment. Defaults to EGERIA_JUPYTER.
86
+ width : int
87
+ Width of the console output. Defaults to EGERIA_WIDTH.
88
+ sort : bool
89
+ Determines whether to sort the governance engine statuses. Defaults to True.
90
+
91
+ Returns
92
+ -------
93
+
94
+ Nothing
95
+ """
66
96
  console = Console(width=EGERIA_WIDTH)
67
97
 
68
98
  s_client = EgeriaTech(view_server, url, username, user_pass)
@@ -60,7 +60,49 @@ def display_integration_daemon_status(
60
60
  jupyter: bool = EGERIA_JUPYTER,
61
61
  width: int = EGERIA_WIDTH,
62
62
  sort: bool = True,
63
- ):
63
+ ) -> None:
64
+ """Display the status of connectors running on the specified Integration Daemon OMAG Server.
65
+
66
+ Parameters
67
+ ----------
68
+ search_list : list[str], optional
69
+ A list of connector names to search for. Default is ["*"], which returns all connectors.
70
+
71
+ integ_server : str, optional
72
+ The name of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON.
73
+
74
+ integ_url : str, optional
75
+ The URL of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON_URL.
76
+
77
+ view_server : str, optional
78
+ The name of the view server. Default is EGERIA_VIEW_SERVER.
79
+
80
+ view_url : str, optional
81
+ The URL of the view server. Default is EGERIA_VIEW_SERVER_URL.
82
+
83
+ user : str, optional
84
+ The username for authentication. Default is EGERIA_USER.
85
+
86
+ user_pass : str, optional
87
+ The password for authenticated access. Default is EGERIA_USER_PASSWORD.
88
+
89
+ paging : bool, optional
90
+ Determines whether to use paging or a live monitor for console output. Default is True.
91
+
92
+ jupyter : bool, optional
93
+ Determines whether running in a Jupyter environment. Default is EGERIA_JUPYTER.
94
+
95
+ width : int, optional
96
+ The width of the console display. Default is EGERIA_WIDTH.
97
+
98
+ sort : bool, optional
99
+ Determines whether to sort the connector reports. Default is True.
100
+
101
+ Returns
102
+ -------
103
+
104
+ Nothing
105
+ """
64
106
  s_client = EgeriaTech(view_server, view_url, user, user_pass)
65
107
  token = s_client.create_egeria_bearer_token()
66
108
 
@@ -45,15 +45,15 @@ console = Console(width=200)
45
45
 
46
46
 
47
47
  def display_status(
48
- server: str,
49
- url: str,
50
- username: str,
51
- user_pass: str,
48
+ view_server: str = EGERIA_VIEW_SERVER,
49
+ view_url: str = EGERIA_VIEW_SERVER_URL,
50
+ user: str = EGERIA_USER,
51
+ user_pass: str = EGERIA_USER_PASSWORD,
52
52
  jupyter: bool = EGERIA_JUPYTER,
53
53
  width: int = EGERIA_WIDTH,
54
54
  ):
55
- r_client = RuntimeManager(server, url, username)
56
- token = r_client.create_egeria_bearer_token(username, user_pass)
55
+ r_client = RuntimeManager(view_server, view_url, user)
56
+ token = r_client.create_egeria_bearer_token(user, user_pass)
57
57
 
58
58
  def generate_table() -> Table:
59
59
  """Make a new table."""
@@ -8,19 +8,16 @@ A simple status display for the Integration Daemon.
8
8
 
9
9
 
10
10
  """
11
- import argparse
12
11
  import os
13
12
  import time
13
+ from typing import Union
14
14
 
15
+ import nest_asyncio
15
16
  from rich import box
16
- from rich.console import Console
17
- from rich.live import Live
18
17
  from rich.table import Table
19
- import nest_asyncio
20
- from typing import Union
21
18
  from textual.widgets import DataTable
22
19
 
23
- from pyegeria import EgeriaTech, AutomatedCuration
20
+ from pyegeria import EgeriaTech
24
21
  from pyegeria._exceptions import (
25
22
  InvalidParameterException,
26
23
  PropertyServerException,
@@ -80,6 +77,50 @@ def display_integration_daemon_status(
80
77
  sort: bool = True,
81
78
  data_table: bool = False,
82
79
  ) -> Table | DataTable:
80
+ """Returns a table representing the status of connectors running on the specified Integration Daemon OMAG Server.
81
+ This routine is meant to be used in a python script or Jupyter Notebook where the resulting table is rendered
82
+ in either a Rich Console or a Textual Application.
83
+
84
+ Parameters
85
+ ----------
86
+ integ_server : str, optional
87
+ The name of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON.
88
+
89
+ integ_url : str, optional
90
+ The URL of the integration daemon server. Default is EGERIA_INTEGRATION_DAEMON_URL.
91
+
92
+ view_server : str, optional
93
+ The name of the view server. Default is EGERIA_VIEW_SERVER.
94
+
95
+ view_url : str, optional
96
+ The URL of the view server. Default is EGERIA_VIEW_SERVER_URL.
97
+
98
+ user : str, optional
99
+ The username for authentication. Default is EGERIA_USER.
100
+
101
+ user_pass : str, optional
102
+ The password for authenticated access. Default is EGERIA_USER_PASSWORD.
103
+
104
+ paging : bool, optional
105
+ Determines whether to use paging or a live monitor for console output. Default is True.
106
+
107
+ jupyter : bool, optional
108
+ Determines whether running in a Jupyter environment. Default is EGERIA_JUPYTER.
109
+
110
+ width : int, optional
111
+ The width of the console display. Default is EGERIA_WIDTH.
112
+
113
+ sort : bool, optional
114
+ Determines whether to sort the connector reports. Default is True.
115
+ data_table: bool, optional, default is False.
116
+ If True, a Textual DataTable widget is returned. If false, a Rich table is returned..
117
+
118
+ Returns
119
+ -------
120
+
121
+ Either a Rich Table or a Textual DataTable depending on the status of data_table
122
+ """
123
+
83
124
  s_client = EgeriaTech(view_server, view_url, user, user_pass)
84
125
  nest_asyncio.apply()
85
126
 
@@ -180,20 +221,7 @@ def display_integration_daemon_status(
180
221
  return table
181
222
 
182
223
  try:
183
- if paging is True:
184
- console = Console(width=width, force_terminal=not jupyter)
185
- with console.pager():
186
- console.print(generate_table())
187
- else:
188
- with Live(
189
- generate_table(),
190
- refresh_per_second=1,
191
- screen=True,
192
- vertical_overflow="visible",
193
- ) as live:
194
- while True:
195
- time.sleep(2)
196
- live.update(generate_table())
224
+ return generate_table()
197
225
 
198
226
  except (
199
227
  InvalidParameterException,
@@ -207,86 +235,3 @@ def display_integration_daemon_status(
207
235
 
208
236
  finally:
209
237
  s_client.close_session()
210
-
211
-
212
- def main_live():
213
- parser = argparse.ArgumentParser()
214
- parser.add_argument(
215
- "--integ_server", help="Name of the integration server to display status for"
216
- )
217
- parser.add_argument("--integ_url", help="URL Platform to connect to")
218
- parser.add_argument("--view_server", help="Name of the view server to use")
219
- parser.add_argument("--view_url", help="view server URL Platform to connect to")
220
- parser.add_argument("--userid", help="User Id")
221
- parser.add_argument("--password", help="User Password")
222
- args = parser.parse_args()
223
-
224
- integ_server = (
225
- args.integ_server
226
- if args.integ_server is not None
227
- else EGERIA_INTEGRATION_DAEMON
228
- )
229
- integ_url = (
230
- args.integ_url if args.integ_url is not None else EGERIA_INTEGRATION_DAEMON_URL
231
- )
232
- view_server = (
233
- args.view_server if args.view_server is not None else EGERIA_VIEW_SERVER
234
- )
235
- view_url = args.view_url if args.view_url is not None else EGERIA_VIEW_SERVER_URL
236
- userid = args.userid if args.userid is not None else EGERIA_USER
237
- user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
238
- display_integration_daemon_status(
239
- integ_server=integ_server,
240
- integ_url=integ_url,
241
- view_server=view_server,
242
- view_url=view_url,
243
- user=userid,
244
- user_pass=user_pass,
245
- paging=False,
246
- data_table=False,
247
- )
248
-
249
-
250
- def main_paging():
251
- parser = argparse.ArgumentParser()
252
- parser.add_argument(
253
- "--integ_server", help="Name of the integration server to display status for"
254
- )
255
- parser.add_argument("--integ_url", help="URL Platform to connect to")
256
- parser.add_argument("--view_server", help="Name of the view server to use")
257
- parser.add_argument("--view_url", help="view server URL Platform to connect to")
258
- parser.add_argument("--userid", help="User Id")
259
- parser.add_argument("--password", help="User Password")
260
- args = parser.parse_args()
261
-
262
- integ_server = (
263
- args.integ_server
264
- if args.integ_server is not None
265
- else EGERIA_INTEGRATION_DAEMON
266
- )
267
- integ_url = (
268
- args.integ_url if args.integ_url is not None else EGERIA_INTEGRATION_DAEMON_URL
269
- )
270
- view_server = (
271
- args.view_server if args.view_server is not None else EGERIA_VIEW_SERVER
272
- )
273
- view_url = args.view_url if args.view_url is not None else EGERIA_VIEW_SERVER_URL
274
- userid = args.userid if args.userid is not None else EGERIA_USER
275
- user_pass = args.password if args.password is not None else EGERIA_USER_PASSWORD
276
- display_integration_daemon_status(
277
- integ_server=integ_server,
278
- integ_url=integ_url,
279
- view_server=view_server,
280
- view_url=view_url,
281
- user=userid,
282
- user_pass=user_pass,
283
- paging=True,
284
- data_table=False,
285
- )
286
-
287
-
288
- if __name__ == "__main__":
289
- main_live()
290
-
291
- if __name__ == "__main_paging__":
292
- main_paging()
@@ -1577,13 +1577,24 @@ class GlossaryManager(GlossaryBrowser):
1577
1577
 
1578
1578
  # process each row
1579
1579
  for row in csv_reader:
1580
+ # Parse the file. When the value '---' is encountered, make the value None.git+https:
1580
1581
  term_name = row.get("Term Name", None)
1581
1582
  qualified_name = row.get("Qualified Name", None)
1582
- abbrev = row.get("Abbreviation", None)
1583
- summary = row.get("Summary", None)
1584
- description = row.get("Description", None)
1585
- examples = row.get("Examples", None)
1586
- usage = row.get("Usage", None)
1583
+ abbrev_in = row.get("Abbreviation", None)
1584
+ abbrev = None if abbrev_in == "---" else abbrev_in
1585
+
1586
+ summary_in = row.get("Summary", None)
1587
+ summary = None if summary_in == "---" else summary_in
1588
+
1589
+ description_in = row.get("Description", None)
1590
+ description = None if description_in == "---" else description_in
1591
+
1592
+ examples_in = row.get("Examples", None)
1593
+ examples = None if examples_in == "---" else examples_in
1594
+
1595
+ usage_in = row.get("Usage", None)
1596
+ usage = None if usage_in == "---" else usage_in
1597
+
1587
1598
  version = row.get("Version Identifier", "1.0")
1588
1599
  status = row.get("Status", "DRAFT")
1589
1600
  status = status.upper()
@@ -1727,12 +1738,14 @@ class GlossaryManager(GlossaryBrowser):
1727
1738
  for term in term_list:
1728
1739
  term_name = term["glossaryTermProperties"]["displayName"]
1729
1740
  qualified_name = term["glossaryTermProperties"]["qualifiedName"]
1730
- abbrev = term["glossaryTermProperties"]["abbreviation"]
1731
- summary = term["glossaryTermProperties"]["summary"]
1732
- description = term["glossaryTermProperties"]["description"]
1733
- examples = term["glossaryTermProperties"]["examples"]
1734
- usage = term["glossaryTermProperties"]["usage"]
1735
- version = term["glossaryTermProperties"]["publishVersionIdentifier"]
1741
+ abbrev = term["glossaryTermProperties"].get("abbreviation", "---")
1742
+ summary = term["glossaryTermProperties"].get("summary", "---")
1743
+ description = term["glossaryTermProperties"].get("description", "---")
1744
+ examples = term["glossaryTermProperties"].get("examples", "---")
1745
+ usage = term["glossaryTermProperties"].get("usage", "---")
1746
+ version = term["glossaryTermProperties"].get(
1747
+ "publishVersionIdentifier", "---"
1748
+ )
1736
1749
  status = term["elementHeader"]["status"]
1737
1750
 
1738
1751
  csv_writer.writerow(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyegeria
3
- Version: 1.5.1.1.30
3
+ Version: 1.5.1.1.34
4
4
  Summary: A python client for Egeria
5
5
  Home-page: https://github.com/odpi/egeria-python
6
6
  License: Apache 2.0
@@ -5,15 +5,15 @@ pyegeria/_deprecated_gov_engine.py,sha256=dWNcwVsE5__dF2u4QiIyQrssozzzOjBbLld8Md
5
5
  pyegeria/_exceptions.py,sha256=NJ7vAhmvusK1ENvY2MMrBB6A6TgpYjzS9QJxFH56b8c,18470
6
6
  pyegeria/_globals.py,sha256=1Uc8392wjbiVN5L__RzxC1-U97RMXj77_iUsMSgeAjQ,638
7
7
  pyegeria/_validators.py,sha256=rnZelHJnjHaLZ8UhUTDyB59MfIUJifhALtkYoHBaos4,12736
8
- pyegeria/asset_catalog_omvs.py,sha256=NUF9C3s_zs9pTfIZyRJlqMCKrhZASJPH08EXzzjki7g,21120
8
+ pyegeria/asset_catalog_omvs.py,sha256=Bgw5pRO8wUdVlLTRQ9ySd34Rl_FFoeDnEoybBBVNNhU,24576
9
9
  pyegeria/automated_curation_omvs.py,sha256=BwNuF7XQJAV-POvzaWwFh0TS5yRnHZZPhlayvtIMlwY,130243
10
10
  pyegeria/classification_manager_omvs.py,sha256=3yInuRy7Cf43oSFZ8BuzcIgtGSm5BfvlKYqtWKRMlPU,186678
11
11
  pyegeria/collection_manager_omvs.py,sha256=kye2kjthNnmwxMZhHQKV0xoHbxcNPWjNzRAYOItj_gY,99201
12
12
  pyegeria/commands/.DS_Store,sha256=nBgW7MKJ6b4wSWyEEeGYHWwC8QJAiteQaWKM9PoNRzY,6148
13
13
  pyegeria/commands/README.md,sha256=zNfWZppDxoKqTJeRtcewzku9z1m6_hKacCyQUQw1iq4,1974
14
- pyegeria/commands/__init__.py,sha256=nqoGHBFvcPCVsHS5YyG2RMOj0lJappL1yYeewO6I9rc,378
14
+ pyegeria/commands/__init__.py,sha256=dVtdNVBwR_n04rMwDPFmND4fZyuywAoucYeT7hJtIq4,782
15
15
  pyegeria/commands/cat/README.md,sha256=-aaAnIT2fcfU63vajgB-RzQk4l4yFdhkyVfSaTPiqRY,967
16
- pyegeria/commands/cat/__init__.py,sha256=ernlw1R7H7d4wN2AyzT9B1K9ANp_reKXv7VOY5BFBv4,290
16
+ pyegeria/commands/cat/__init__.py,sha256=3LHTWeyxLdFGDhWVTBzgJ6Y_9b2pM5CO2-kbsUASv4M,300
17
17
  pyegeria/commands/cat/get_asset_graph.py,sha256=4AO4KlCgb7vbMihJK7W_GAnrd4J9sKwc4kXxa2ZrRW4,12447
18
18
  pyegeria/commands/cat/get_collection.py,sha256=v7hCeEDcAQmcjM9qepuk8gg_RnYra3_v009AJOunkKk,5005
19
19
  pyegeria/commands/cat/get_project_dependencies.py,sha256=B0JaMSUi0hzVgos1sTY2uUPGy1DzKEJMIbbYfMUWvQA,5981
@@ -24,22 +24,22 @@ pyegeria/commands/cat/glossary_actions.py,sha256=T1JkB-uhf1WyM1xcIBux_kNcAnpkLt8
24
24
  pyegeria/commands/cat/list_archives.py,sha256=FEZ2XYnQIWo2PztWqnj6unn0pbblPU0-bMbTyI3csv4,5464
25
25
  pyegeria/commands/cat/list_assets.py,sha256=bNwSaBDz661hfnc2Rn4j4HPHAugKvz0XwN9L1m4FVQk,6529
26
26
  pyegeria/commands/cat/list_cert_types.py,sha256=mbCls_EqC5JKG5rvS4o69k7KgZ6aNXlcqoJ3DtHsTFA,7127
27
- pyegeria/commands/cat/list_deployed_catalogs.py,sha256=eG8K-d7BijD34el_yVx9yfnLJdfwTUiJVxd-gcGwo7k,7157
28
- pyegeria/commands/cat/list_deployed_database_schemas.py,sha256=HNAR8qXU7FWUxPJw6yBxmlsJ_eVXqsD_DrswKmY1iv0,8824
29
- pyegeria/commands/cat/list_deployed_databases.py,sha256=HE8nG-mIlxa9iSUEH-n71o-G2a4ss1Zzalq7YJQIix0,6668
30
- pyegeria/commands/cat/list_glossaries.py,sha256=tndiJ5cJ6cdxeRnAsIZykDMhjmZACb9KIoCacAz9skw,4652
27
+ pyegeria/commands/cat/list_deployed_catalogs.py,sha256=sdfhzK0Wqo59tpoX6jpjnBWl5MLdD1qzU0TcXC_QtsY,8140
28
+ pyegeria/commands/cat/list_deployed_database_schemas.py,sha256=g-O5Qk6t9mHl3yAYwHIbVWNxjy5bR4YOfvJ5YMoeMyw,9535
29
+ pyegeria/commands/cat/list_deployed_databases.py,sha256=DTpt7l2z81YsmadsHsnSgrbRGPlkBzHjg2p1TdnI-zc,7565
30
+ pyegeria/commands/cat/list_glossaries.py,sha256=_2viz45k-PZQXyDfuwHEBThFCjYdmVerpN_xjjpp0fY,5527
31
31
  pyegeria/commands/cat/list_projects.py,sha256=Jzs-DtIpPhCH-gY4PYT6mnRBWnEf4m18TFfcw8UymNU,8011
32
32
  pyegeria/commands/cat/list_relationships.py,sha256=U9f78cOi4HyaacqNaFSMq_7rRxVcEczvwPv468GYw3Q,5869
33
33
  pyegeria/commands/cat/list_tech_types.py,sha256=20T4v6L5qeebSsaL1nGkFMDAIsy2W3A3SMm1RcgFoh0,4609
34
- pyegeria/commands/cat/list_terms.py,sha256=zNo8oQo4y3cGIYikBnD9gutPLecwyF8Q3XaOLiLg7tA,7212
34
+ pyegeria/commands/cat/list_terms.py,sha256=acflhC9YwSog2rGmGOI-U52g21xre9eF9w2nFbUYmJg,8936
35
35
  pyegeria/commands/cat/list_todos.py,sha256=iPxHRyW3X5tiREio4TUOwRPvNPjU0gxm3pVnUI79ir4,6542
36
36
  pyegeria/commands/cat/list_user_ids.py,sha256=7JinL7rknPbGusIb8ikXKEaV1vvbuvx_WWtbmlfS_DY,5093
37
37
  pyegeria/commands/cli/__init__.py,sha256=hpTVSMP2gnPRhcAZPdeUEsQ-eaDySlXlk239dNWYmng,292
38
- pyegeria/commands/cli/egeria.py,sha256=CheD1P34n_mqKZMCWRLjnUJXAhle4X-yNfWjnPLLwRw,32824
39
- pyegeria/commands/cli/egeria_cat.py,sha256=sdFTgW33Qza4DtBTObaFoUE0Ac39en_oGubi0zy8ekQ,15763
38
+ pyegeria/commands/cli/egeria.py,sha256=PC6_mVoeQu5tIoUzmNClywEWliAZMbEnJMDsZg_GkDM,32764
39
+ pyegeria/commands/cli/egeria_cat.py,sha256=o6RfCYRhykXfFegd47-Z2fsXLzcREViGkqts1fOnrAs,15763
40
40
  pyegeria/commands/cli/egeria_my.py,sha256=Memyxzhrn_i3nMNRor-5N40_SKJJMzylA4iQgBW3T4g,6235
41
41
  pyegeria/commands/cli/egeria_ops.py,sha256=aI3BU7btQa0ZrT3LDXto4gLWzLn2qoS4r499eHoAntc,11998
42
- pyegeria/commands/cli/egeria_tech.py,sha256=iq5D-dl0KW1HbNG8AolJSZoR6hTLp90RD_JjHxVj9Pk,13313
42
+ pyegeria/commands/cli/egeria_tech.py,sha256=o6g_xwP8S-ehwgpkl-0BD_-FyGfyr90bEiKWNvHj9xk,13303
43
43
  pyegeria/commands/cli/ops_config.py,sha256=m4AfPjf-fR4EBTx8Dc2mcgrfWwAxb30YGeV-v79bg4U,1450
44
44
  pyegeria/commands/my/README.md,sha256=ZheFhj_VoPMhcWjW3pGchHB0vH_A9PklSmrSkzKdrcQ,844
45
45
  pyegeria/commands/my/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -50,23 +50,23 @@ pyegeria/commands/my/monitor_open_todos.py,sha256=KDrAjdLPP3j0K9Y3G95BIgr51ktTx3
50
50
  pyegeria/commands/my/todo_actions.py,sha256=iazoRhsQ9aecCwJk6r4lWRP-mPD2t-YGU_GmPrFtR-Q,8372
51
51
  pyegeria/commands/ops/README.md,sha256=PJsSDcvMv6E6og6y-cwvxFX5lhCII0UCwgKiM1T17MQ,1595
52
52
  pyegeria/commands/ops/__init__.py,sha256=GyDGBYodxuJ-7k87z2farDs9vhR__RNrYeAe94HWGPM,764
53
- pyegeria/commands/ops/engine_actions.py,sha256=qEb41rQbQIFWwJ0dE-2DbnPnzZKEt-5j-m21h-8MUvk,4530
53
+ pyegeria/commands/ops/engine_actions.py,sha256=zHmjUhAb3pyIXRo6rdMkx5RL4XnR3ozwIlr7HaG7s3M,4515
54
54
  pyegeria/commands/ops/gov_server_actions.py,sha256=dKYdb2ImwohPjrGE9ufkIhXURhY9V9FnzUh84ycQhTg,5515
55
55
  pyegeria/commands/ops/list_catalog_targets.py,sha256=0FIZqZu7DSh7tnrme6EOhNiVvK8wyvN1iTZKEDuwTmw,6620
56
56
  pyegeria/commands/ops/load_archive.py,sha256=ZsJmQ-2cywsiO5RYHQXFF72wrlBK18jvAkyQ8N-nSp4,2744
57
57
  pyegeria/commands/ops/monitor_asset_events.py,sha256=cjdlVqE0XYnoRW3aorNbsVkjByDXefPBnllaZLelGls,3838
58
58
  pyegeria/commands/ops/monitor_engine_activity.py,sha256=m18OSnRoo5ut0WKKOWNoFGXJW_npjp6hzHK3RUQG8T0,8479
59
- pyegeria/commands/ops/monitor_engine_activity_c.py,sha256=rSEUD3elhsiYdUhQRn613OM_R4VecFb0uq39MhYhltQ,9371
60
- pyegeria/commands/ops/monitor_gov_eng_status.py,sha256=wQ8KBjPJXYUVob7jxgpsS40x8J4wXzt41dmsBnygD-M,8017
61
- pyegeria/commands/ops/monitor_integ_daemon_status.py,sha256=-qOHNTmuzflUNxuSifZT_seCTyVKDJPrrIIXj17o7xY,9961
62
- pyegeria/commands/ops/monitor_platform_status.py,sha256=xmngiuQK9X6X4-stGSITzfMSAdqpswVk-DY7kh8M0P0,6401
59
+ pyegeria/commands/ops/monitor_engine_activity_c.py,sha256=LM__vwJUbZOBwcBTEfa4JLcqWtR3POEbt1lMTwHk4lw,10135
60
+ pyegeria/commands/ops/monitor_gov_eng_status.py,sha256=nR0xI_8L8W6gOJm8-jp8BaAeOLf1Gd5ikYP43AbJMxo,9094
61
+ pyegeria/commands/ops/monitor_integ_daemon_status.py,sha256=Fjtwwgdz9RuaeW-tPIs_VX_J0x-YrO_TIzk-HOOwqA0,11367
62
+ pyegeria/commands/ops/monitor_platform_status.py,sha256=3uIgY9JzXnMxxenLpvmKEEfv_GsxslJeeseOEVEmCbU,6492
63
63
  pyegeria/commands/ops/monitor_server_startup.py,sha256=0pwnhv761uuFHGJXVANa5RhQQPPTXFldJ45TfeT7qfk,3901
64
64
  pyegeria/commands/ops/monitor_server_status.py,sha256=eeZY4o_HwrH-csrhHPi95LLGu00j6AYl48A7fDYTG34,6061
65
65
  pyegeria/commands/ops/orig_monitor_server_list.py,sha256=Uhtn8lv7QVXJBi9DSR3Nelmz8TB0vOsat10nFS6Nu20,4637
66
66
  pyegeria/commands/ops/orig_monitor_server_status.py,sha256=A-8hMDfbscdcq-b1OD4wKn0tphumX8WIK-Hz8uPoFkc,3974
67
67
  pyegeria/commands/ops/refresh_integration_daemon.py,sha256=aEaN3RAqlu2Fu9TgbJqnsfyXZ__WBml2EgRKaC48Pig,2961
68
68
  pyegeria/commands/ops/restart_integration_daemon.py,sha256=dqsQ6nOBw-EJgf7NvwTcR__h317dq_cxUWYRTGxvWaM,2901
69
- pyegeria/commands/ops/table_integ_daemon_status.py,sha256=6K_r8OeU42z2EqRwupHKk2S_YirvVrYQwSWGaLc3UjU,10238
69
+ pyegeria/commands/ops/table_integ_daemon_status.py,sha256=to93SVOF9tlaG5FpSHV4vZwZQgVoKmj5n-wc3oVQLGU,8414
70
70
  pyegeria/commands/tech/README.md,sha256=nxDnfr3BCiGgW5G1VxWxiwUWJXIe5wreNuUeRyIt_hY,1343
71
71
  pyegeria/commands/tech/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
72
  pyegeria/commands/tech/get_element_graph.py,sha256=YhpvHPNuSd-Ft-dBRLswGfqGYv2AlByyV0IyjhV4SSk,7367
@@ -96,7 +96,7 @@ pyegeria/egeria_tech_client.py,sha256=7NfqpJFft5GR4NPRDVDw22L9caHbXB8fhx0TAf6qEo
96
96
  pyegeria/feedback_manager_omvs.py,sha256=B66e3ZCaC_dirb0mcb2Nz3PYh2ZKsoMAYNOb3euNiro,152931
97
97
  pyegeria/full_omag_server_config.py,sha256=LBnqUiz1ofBdlKBzECFs_pQbdJwcWigAukWHGJRR2nU,47340
98
98
  pyegeria/glossary_browser_omvs.py,sha256=NcitYaZJqwVODBO5zBtWpXPNUJJ3DKzEbRaOFSAyUlg,93554
99
- pyegeria/glossary_manager_omvs.py,sha256=BWnSNiNuyjA6zQA2loLKxiMaUGnRazIg9RfQKg7kD5U,126277
99
+ pyegeria/glossary_manager_omvs.py,sha256=GfOolBICYMouiJszt6CO1iVlWeb8760AsA55xSkCR8o,126859
100
100
  pyegeria/mermaid_utilities.py,sha256=GXiS-subb5nJcDqlThZWX2T8WspU1neFfhf4TxRoMh4,8344
101
101
  pyegeria/my_profile_omvs.py,sha256=DyECbUFEcgokrIbzdMMNljC3bqfqKGXAF2wZEpzvRYs,34666
102
102
  pyegeria/platform_services.py,sha256=CJIOYIFEbcIGwdWlApAQcXxZTsdrhFtpJcm4O3p7dG0,41646
@@ -108,8 +108,8 @@ pyegeria/template_manager_omvs.py,sha256=heqbKeum5hPCHap4r1RUZU8YB3QaQlxVNbq4GZi
108
108
  pyegeria/utils.py,sha256=1h6bwveadd6GpbnGLTmqPBmBk68QvxdjGTI9RfbrgKY,5415
109
109
  pyegeria/valid_metadata_omvs.py,sha256=tfCGXed5LLt59YA8uZNNtd9UJ-lRZfPU_uZxK31Yux0,65069
110
110
  pyegeria/x_action_author_omvs.py,sha256=xu1IQ0YbhIKi17C5a7Aq9u1Az2czwahNPpX9czmyVxE,6454
111
- pyegeria-1.5.1.1.30.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
112
- pyegeria-1.5.1.1.30.dist-info/METADATA,sha256=Cqo6dSTF7fBD0rvEQWgOeB8-u5htWV7pJb3um7xWqHM,2998
113
- pyegeria-1.5.1.1.30.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
114
- pyegeria-1.5.1.1.30.dist-info/entry_points.txt,sha256=YxEUUWKTrK3YStEbBqM6TD_UetgVKy5LYGWBnxnyNz0,4886
115
- pyegeria-1.5.1.1.30.dist-info/RECORD,,
111
+ pyegeria-1.5.1.1.34.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
112
+ pyegeria-1.5.1.1.34.dist-info/METADATA,sha256=zn9jOqKStTT2xeK5ISFKemBHlMcPQBG_BGwjKg7dm3g,2998
113
+ pyegeria-1.5.1.1.34.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
114
+ pyegeria-1.5.1.1.34.dist-info/entry_points.txt,sha256=YxEUUWKTrK3YStEbBqM6TD_UetgVKy5LYGWBnxnyNz0,4886
115
+ pyegeria-1.5.1.1.34.dist-info/RECORD,,