pyegeria 0.5.5.13__tar.gz → 0.5.5.14__tar.gz
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.
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/PKG-INFO +1 -1
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/get_tech_details.py +24 -15
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/get_tech_type_template.py +42 -43
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_integ_daemon_status.py +2 -2
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/__init__.py +4 -2
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/_client.py +54 -4
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/_globals.py +2 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/utils.py +3 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyproject.toml +1 -1
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/LICENSE +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/README.md +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/doc_samples/Create_Collection_Sample.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/doc_samples/Create_Sustainability_Collection_Sample.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/catalog_user/README.md +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/catalog_user/__init__.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/catalog_user/list_assets.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/catalog_user/view_asset_graph.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/catalog_user/view_collection.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/catalog_user/view_glossary.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/README.md +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/__init__.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/get_guid_info.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_asset_types.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_registered_services.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_relationship_types.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_tech_templates.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_tech_types.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_valid_metadata_values.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/README.md +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/__init__.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/get_tech_type_elements.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_asset_events.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_coco_status.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_eng_action_status.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_gov_eng_status.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_platform_status.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_server_list.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_server_status.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/README.md +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/__init__.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/get_my_profile.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/list_projects.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/list_todos.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/view_my_todos.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/view_open_todos.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/Xfeedback_manager_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/Xloaded_resources_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/_deprecated_gov_engine.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/_exceptions.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/_validators.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/action_author_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/asset_catalog_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/automated_curation_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/collection_manager_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/core_guids.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/core_omag_server_config.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/full_omag_server_config.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/glossary_browser_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/glossary_manager_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/my_profile_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/platform_services.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/project_manager_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/registered_info.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/runtime_manager_omvs.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/server_operations.py +0 -0
- {pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/pyegeria/valid_metadata_omvs.py +0 -0
@@ -14,13 +14,14 @@ from rich.panel import Panel
|
|
14
14
|
from rich.prompt import Prompt
|
15
15
|
from rich.text import Text
|
16
16
|
from rich.tree import Tree
|
17
|
-
|
17
|
+
from rich.console import Console
|
18
18
|
from pyegeria import (UserNotAuthorizedException, PropertyServerException,
|
19
19
|
InvalidParameterException, AutomatedCuration)
|
20
20
|
from pyegeria._exceptions import (
|
21
21
|
print_exception_response,
|
22
22
|
)
|
23
23
|
|
24
|
+
console = Console()
|
24
25
|
disable_ssl_warnings = True
|
25
26
|
|
26
27
|
platform = "https://127.0.0.1:9443"
|
@@ -33,26 +34,33 @@ def tech_viewer(tech: str, server_name:str, platform_url:str, user:str):
|
|
33
34
|
def view_tech_details(a_client: AutomatedCuration, root_collection_name: str, tree: Tree) -> Tree:
|
34
35
|
l2: Tree = None
|
35
36
|
tech_details = a_client.get_technology_type_detail(tech)
|
36
|
-
if type(tech_details) is dict:
|
37
|
+
if (type(tech_details) is dict) and (len(tech_details)>0):
|
38
|
+
name = tech_details.get('name','---')
|
39
|
+
qualified_name = tech_details.get('qualifiedName',"---")
|
40
|
+
category = tech_details.get('category','---')
|
41
|
+
description = tech_details.get('description','---')
|
42
|
+
|
37
43
|
style = ""
|
38
|
-
l2 = tree.add(Text(f"Name: {
|
39
|
-
l2 = tree.add(Text(f"* QualifiedName: {
|
40
|
-
l2 = tree.add(Text(f"* Category: {
|
41
|
-
l2 = tree.add(Text(f"* Technology Description: {
|
44
|
+
l2 = tree.add(Text(f"Name: {name}", "bold red"))
|
45
|
+
l2 = tree.add(Text(f"* QualifiedName: {qualified_name}","bold white"))
|
46
|
+
l2 = tree.add(Text(f"* Category: {category}", "bold white"))
|
47
|
+
l2 = tree.add(Text(f"* Technology Description: {description}", "bold white"))
|
42
48
|
ext_ref = tech_details.get('externalReferences', None)
|
43
|
-
if ext_ref is not None:
|
44
|
-
l2 = tree.add(Text(f'* URI: {ext_ref[0]["properties"]["uri"]}', "bold white"))
|
45
49
|
|
50
|
+
if ext_ref is not None:
|
51
|
+
uri = ext_ref[0]["properties"].get("uri", "---")
|
52
|
+
# console.print(f" {type(ext_ref)}, {len(ext_ref)}")
|
53
|
+
l2 = tree.add(Text(f'* URI: {uri}', "bold white"))
|
46
54
|
|
47
55
|
resource_list = tech_details.get('resourceList',None)
|
48
56
|
if resource_list:
|
49
57
|
t_r = tree.add("Resource List[bold red]")
|
50
58
|
for resource in resource_list:
|
51
|
-
resource_use = Text(f"[bold white]{resource
|
52
|
-
resource_use_description = Text(f"[bold white]{resource
|
53
|
-
type_name = Text(f"[bold white]{resource['relatedElement']['type']
|
54
|
-
unique_name = Text(f"[bold white]{resource['relatedElement']
|
55
|
-
related_guid = Text(f"[bold white]{resource['relatedElement']
|
59
|
+
resource_use = Text(f"[bold white]{resource.get('resourceUse','---')}", "")
|
60
|
+
resource_use_description = Text(f"[bold white]{resource.get('resourceUseDescription','---')}", "")
|
61
|
+
type_name = Text(f"[bold white]{resource['relatedElement']['type'].get('typeName','---')}", "")
|
62
|
+
unique_name = Text(f"[bold white]{resource['relatedElement'].get('uniqueName','---')}", "")
|
63
|
+
related_guid = Text(f"[bold white]{resource['relatedElement'].get('guid','---')}", "")
|
56
64
|
resource_text = (f"[bold red]Resource\n"
|
57
65
|
f"[white]Resource use: {resource_use}[white]\nDescription: "
|
58
66
|
f"{resource_use_description}\nType Name: {type_name}\n"
|
@@ -60,9 +68,10 @@ def tech_viewer(tech: str, server_name:str, platform_url:str, user:str):
|
|
60
68
|
p = Panel.fit(resource_text)
|
61
69
|
tt = t_r.add(p, style=style)
|
62
70
|
|
71
|
+
else:
|
72
|
+
tt = tree.add(f"Tech type {tech} was not found - please check the tech type name")
|
63
73
|
|
64
|
-
|
65
|
-
|
74
|
+
return tt
|
66
75
|
|
67
76
|
try:
|
68
77
|
tree = Tree(f"[bold bright green]{tech}", guide_style="bold bright_blue")
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/get_tech_type_template.py
RENAMED
@@ -62,51 +62,50 @@ def tech_viewer(tech_name: str, server_name:str, platform_url:str, user:str):
|
|
62
62
|
|
63
63
|
token = a_client.create_egeria_bearer_token(user, "secret")
|
64
64
|
tech_elements = a_client.get_technology_type_elements(tech_name, get_templates=True)
|
65
|
-
if len(tech_elements)
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
note_md = Panel.fit(Markdown(note), style = 'bold bright_white')
|
106
|
-
t = tree.add(note_md)
|
65
|
+
if (len(tech_elements) >= 1) and (type(tech_elements) is list):
|
66
|
+
tree = Tree(f"Deployed Technology Type: {tech_name}", style="bold bright_white", guide_style="bold bright_blue")
|
67
|
+
note: str =" "
|
68
|
+
for element in tech_elements:
|
69
|
+
header = element['elementHeader']
|
70
|
+
tech_type = header["type"]["typeName"]
|
71
|
+
tech_collection = header["origin"]['homeMetadataCollectionName']
|
72
|
+
tech_created_by = header['versions']['createdBy']
|
73
|
+
tech_created_at = header['versions']['createTime']
|
74
|
+
tech_guid = header['guid']
|
75
|
+
tech_classifications = header['classifications']
|
76
|
+
class_md = build_classifications(tech_classifications)
|
77
|
+
|
78
|
+
referenceables = element['referenceableProperties']
|
79
|
+
tech_qualified_name = referenceables['qualifiedName']
|
80
|
+
extended = referenceables['extendedProperties']
|
81
|
+
ex_md:str = ""
|
82
|
+
for key, value in extended.items():
|
83
|
+
ex_md += f"* {key}: {value}\n"
|
84
|
+
|
85
|
+
note = (f"* Qualified Name: {tech_qualified_name}\n"
|
86
|
+
f"* GUID: {tech_guid}\n"
|
87
|
+
f"* Createdy by: {tech_created_by}\n"
|
88
|
+
f"* Created at: {tech_created_at}\n"
|
89
|
+
f"* Home Collection: {tech_collection}\n"
|
90
|
+
f"{class_md}\n"
|
91
|
+
f"{ex_md}\n"
|
92
|
+
)
|
93
|
+
|
94
|
+
interfaces = extended.get('connectorInterfaces', None)
|
95
|
+
if interfaces is not None:
|
96
|
+
interface_type_name = interfaces['typeName']
|
97
|
+
interface_array_cnt = interfaces['arrayCount']
|
98
|
+
note += f"* Interface Type: {interface_type_name}\n"
|
99
|
+
for i in range(0, int(interface_array_cnt)):
|
100
|
+
note += (f"\t* Type: {interfaces['arrayValues']['propertyValueMap'][str(i)]['typeName']}"
|
101
|
+
f"\tName: {interfaces['arrayValues']['propertiesAsStrings'][str(i)]}\n"
|
102
|
+
)
|
103
|
+
note_md = Panel.fit(Markdown(note), style = 'bold bright_white')
|
104
|
+
t = tree.add(note_md)
|
107
105
|
|
106
|
+
else:
|
107
|
+
tree = Tree(f"No elements found for {tech_name}", style="red")
|
108
108
|
print(tree)
|
109
|
-
|
110
109
|
except (
|
111
110
|
InvalidParameterException,
|
112
111
|
PropertyServerException,
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_integ_daemon_status.py
RENAMED
@@ -123,8 +123,8 @@ def main():
|
|
123
123
|
parser = argparse.ArgumentParser()
|
124
124
|
parser.add_argument("--integ_server", help="Name of the integration server to display status for")
|
125
125
|
parser.add_argument("--integ_url", help="URL Platform to connect to")
|
126
|
-
parser.add_argument("--view_server", help="Name of the
|
127
|
-
parser.add_argument("--view_url", help="URL Platform to connect to")
|
126
|
+
parser.add_argument("--view_server", help="Name of the view server to use")
|
127
|
+
parser.add_argument("--view_url", help="view server URL Platform to connect to")
|
128
128
|
parser.add_argument("--userid", help="User Id")
|
129
129
|
args = parser.parse_args()
|
130
130
|
|
@@ -11,7 +11,7 @@ the server platform and servers.
|
|
11
11
|
|
12
12
|
"""
|
13
13
|
|
14
|
-
from ._globals import (is_debug, disable_ssl_warnings, max_paging_size,
|
14
|
+
from ._globals import (is_debug, disable_ssl_warnings, max_paging_size, template_guids, integration_guids
|
15
15
|
)
|
16
16
|
from .core_guids import *
|
17
17
|
|
@@ -48,4 +48,6 @@ from .runtime_manager_omvs import RuntimeManager
|
|
48
48
|
from .action_author_omvs import GovernanceAuthor
|
49
49
|
from .glossary_manager_omvs import GlossaryManager
|
50
50
|
|
51
|
-
|
51
|
+
|
52
|
+
|
53
|
+
|
@@ -10,7 +10,6 @@ import asyncio
|
|
10
10
|
import inspect
|
11
11
|
import json
|
12
12
|
import os
|
13
|
-
|
14
13
|
import httpx
|
15
14
|
from httpx import AsyncClient, Response
|
16
15
|
|
@@ -18,8 +17,8 @@ from pyegeria._exceptions import (
|
|
18
17
|
OMAGCommonErrorCode,
|
19
18
|
InvalidParameterException,
|
20
19
|
PropertyServerException,
|
21
|
-
UserNotAuthorizedException
|
22
|
-
from pyegeria._globals import max_paging_size
|
20
|
+
UserNotAuthorizedException )
|
21
|
+
from pyegeria._globals import max_paging_size, template_guids, integration_guids
|
23
22
|
from pyegeria._validators import (
|
24
23
|
validate_name,
|
25
24
|
validate_server_name,
|
@@ -138,6 +137,10 @@ class Client:
|
|
138
137
|
# else:
|
139
138
|
# self.session = httpx.AsyncClient(verify=self.ssl_verify)
|
140
139
|
self.session = AsyncClient(verify=self.ssl_verify)
|
140
|
+
# if (len(template_guids) == 0) or (len(integration_guids) == 0):
|
141
|
+
# self.build_global_guid_lists()
|
142
|
+
# self.template_guids = template_guids
|
143
|
+
# self.integration_guids = integration_guids
|
141
144
|
|
142
145
|
def __enter__(self):
|
143
146
|
return self
|
@@ -202,7 +205,7 @@ class Client:
|
|
202
205
|
"userId": user_id,
|
203
206
|
"password": password
|
204
207
|
}
|
205
|
-
async with
|
208
|
+
async with AsyncClient(verify=self.ssl_verify) as client:
|
206
209
|
try:
|
207
210
|
response = await client.post(url, json=data, headers=self.headers)
|
208
211
|
token = response.text
|
@@ -565,6 +568,53 @@ class Client:
|
|
565
568
|
)
|
566
569
|
raise InvalidParameterException(exc_msg)
|
567
570
|
|
571
|
+
def build_global_guid_lists(self) -> None:
|
572
|
+
global template_guids, integration_guids
|
573
|
+
|
574
|
+
self.create_egeria_bearer_token(self.user_id, self.user_pwd)
|
575
|
+
# get all technology types
|
576
|
+
url = (f"{self.platform_url}/servers/{self.server_name}/api/open-metadata/automated-curation/technology-types/"
|
577
|
+
f"by-search-string?startFrom=0&pageSize=0&startsWith=false&"
|
578
|
+
f"endsWith=false&ignoreCase=true")
|
579
|
+
body = {"filter": ""}
|
580
|
+
|
581
|
+
response = self.make_request("POST", url, body)
|
582
|
+
tech_types = response.json().get("elements", "no tech found")
|
583
|
+
if type(tech_types) is list:
|
584
|
+
for tech_type in tech_types:
|
585
|
+
# get tech type details
|
586
|
+
display_name = tech_type["name"]
|
587
|
+
|
588
|
+
url = f"{self.platform_url}/servers/{self.server_name}/api/open-metadata/automated-curation/technology-types/by-name"
|
589
|
+
body = {"filter": display_name}
|
590
|
+
response = self.make_request("POST", url, body)
|
591
|
+
details = response.json().get("element","no type found")
|
592
|
+
if type(details) is str:
|
593
|
+
continue
|
594
|
+
# get templates and update the template_guids global
|
595
|
+
templates = details.get("catalogTemplates", "Not Found")
|
596
|
+
if type(templates) is str:
|
597
|
+
template_guids[display_name]= None
|
598
|
+
else:
|
599
|
+
for template in templates:
|
600
|
+
template_name = template.get("name", None)
|
601
|
+
template_guid = template["relatedElement"]["guid"]
|
602
|
+
template_guids[template_name] = template_guid
|
603
|
+
# print(f"Added {template_name} template with GUID {template_guids[template_name]}")
|
604
|
+
|
605
|
+
# Now find the integration connector guids
|
606
|
+
resource_list = details.get('resourceList', ' ')
|
607
|
+
if type(resource_list) is str:
|
608
|
+
integration_guids[display_name] = None
|
609
|
+
else:
|
610
|
+
for resource in resource_list:
|
611
|
+
resource_guid = resource['relatedElement']['guid']
|
612
|
+
resource_type = resource['relatedElement']['type']['typeName']
|
613
|
+
if resource_type == "IntegrationConnector":
|
614
|
+
integration_guids[display_name] = resource_guid
|
615
|
+
# print(f"Added {display_name} integration connector with GUID {integration_guids[display_name]}")
|
616
|
+
|
617
|
+
|
568
618
|
|
569
619
|
if __name__ == "__main__":
|
570
620
|
try:
|
@@ -70,6 +70,8 @@ from rich import print, print_json
|
|
70
70
|
# df = pd.json_normalize(data)
|
71
71
|
# print(tabulate(wrap_text(df, wrap_len), headers="keys", tablefmt=tablefmt))
|
72
72
|
|
73
|
+
template_guids: dict = None
|
74
|
+
integration_guids: dict = None
|
73
75
|
|
74
76
|
def print_rest_request_body(body):
|
75
77
|
"""
|
@@ -189,3 +191,4 @@ def body_slimmer(body: dict) -> dict:
|
|
189
191
|
"""
|
190
192
|
slimmed = {key: value for key, value in body.items() if value}
|
191
193
|
return slimmed
|
194
|
+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_registered_services.py
RENAMED
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_relationship_types.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/developer/list_valid_metadata_values.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/get_tech_type_elements.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_eng_action_status.py
RENAMED
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/operational/view_platform_status.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/get_my_profile.py
RENAMED
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/list_projects.py
RENAMED
File without changes
|
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/view_my_todos.py
RENAMED
File without changes
|
{pyegeria-0.5.5.13 → pyegeria-0.5.5.14}/examples/widgets/personal_organizer/view_open_todos.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|