pyegeria 5.4.0.20__py3-none-any.whl → 5.4.0.23__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.
- commands/cat/.DS_Store +0 -0
- commands/cat/.env +8 -0
- commands/cat/debug_log.log +0 -0
- commands/cat/list_collections.py +15 -6
- commands/cat/list_format_set.py +90 -85
- commands/cat/logs/pyegeria.log +136 -0
- commands/cli/debug_log.log +0 -0
- commands/ops/logs/pyegeria.log +0 -0
- md_processing/.DS_Store +0 -0
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-30-37.md +163 -0
- md_processing/dr-egeria-outbox/Collections-2025-08-12-13-35-58.md +474 -0
- md_processing/dr_egeria_inbox/Derive-Dr-Gov-Defs.md +8 -0
- md_processing/dr_egeria_inbox/Dr.Egeria Templates.md +873 -0
- md_processing/dr_egeria_inbox/arch_test.md +57 -0
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro.md +254 -0
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_more_terms.md +696 -0
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part1.md +254 -0
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part2.md +298 -0
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part3.md +608 -0
- md_processing/dr_egeria_inbox/archive/dr_egeria_intro_part4.md +94 -0
- md_processing/dr_egeria_inbox/archive/freddie_intro.md +284 -0
- md_processing/dr_egeria_inbox/archive/freddie_intro_orig.md +275 -0
- md_processing/dr_egeria_inbox/archive/test-term.md +110 -0
- md_processing/dr_egeria_inbox/cat_test.md +100 -0
- md_processing/dr_egeria_inbox/collections.md +39 -0
- md_processing/dr_egeria_inbox/data_designer_debug.log +6 -0
- md_processing/dr_egeria_inbox/data_designer_out.md +60 -0
- md_processing/dr_egeria_inbox/data_designer_search_test.md +11 -0
- md_processing/dr_egeria_inbox/data_field.md +54 -0
- md_processing/dr_egeria_inbox/data_spec.md +77 -0
- md_processing/dr_egeria_inbox/data_spec_test.md +2406 -0
- md_processing/dr_egeria_inbox/data_test.md +179 -0
- md_processing/dr_egeria_inbox/data_test2.md +429 -0
- md_processing/dr_egeria_inbox/data_test3.md +462 -0
- md_processing/dr_egeria_inbox/dr_egeria_data_designer_1.md +124 -0
- md_processing/dr_egeria_inbox/dr_egeria_intro_categories.md +168 -0
- md_processing/dr_egeria_inbox/dr_egeria_intro_part1.md +280 -0
- md_processing/dr_egeria_inbox/dr_egeria_intro_part2.md +313 -0
- md_processing/dr_egeria_inbox/dr_egeria_intro_part3.md +1073 -0
- md_processing/dr_egeria_inbox/dr_egeria_isc1.md +44 -0
- md_processing/dr_egeria_inbox/generated_help_report.md +9 -0
- md_processing/dr_egeria_inbox/glossary_list.md +5 -0
- md_processing/dr_egeria_inbox/glossary_search_test.md +40 -0
- md_processing/dr_egeria_inbox/glossary_test1.md +324 -0
- md_processing/dr_egeria_inbox/gov_def.md +424 -0
- md_processing/dr_egeria_inbox/gov_def2.md +447 -0
- md_processing/dr_egeria_inbox/product.md +50 -0
- md_processing/dr_egeria_inbox/rel.md +8 -0
- md_processing/dr_egeria_inbox/sb.md +119 -0
- md_processing/dr_egeria_inbox/solution-components.md +136 -0
- md_processing/dr_egeria_inbox/solution_blueprints.md +118 -0
- md_processing/dr_egeria_inbox/synonym_test.md +42 -0
- md_processing/dr_egeria_inbox/t2.md +268 -0
- md_processing/dr_egeria_outbox/.obsidian/app.json +1 -0
- md_processing/dr_egeria_outbox/.obsidian/appearance.json +1 -0
- md_processing/dr_egeria_outbox/.obsidian/community-plugins.json +6 -0
- md_processing/dr_egeria_outbox/.obsidian/core-plugins.json +31 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/data.json +10 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/main.js +4459 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/calendar/manifest.json +10 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/data.json +3 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/main.js +153 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/manifest.json +11 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-kanban/styles.css +1 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/main.js +500 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/manifest.json +12 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/obsidian-tasks-plugin/styles.css +1 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/main.js +37 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/manifest.json +11 -0
- md_processing/dr_egeria_outbox/.obsidian/plugins/templater-obsidian/styles.css +220 -0
- md_processing/dr_egeria_outbox/.obsidian/types.json +28 -0
- md_processing/dr_egeria_outbox/.obsidian/workspace.json +220 -0
- md_processing/dr_egeria_outbox/Untitled.canvas +1 -0
- md_processing/dr_egeria_outbox/friday/processed-2025-07-18 15:00-product.md +62 -0
- md_processing/dr_egeria_outbox/friday/processed-2025-07-18 15:13-product.md +62 -0
- md_processing/dr_egeria_outbox/friday/processed-2025-07-20 13:23-product.md +47 -0
- md_processing/dr_egeria_outbox/friday/processed-2025-08-01 11:55-data_test3.md +503 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-07-14 12:38-data_designer_out.md +663 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-07-21 10:52-generated_help_report.md +2744 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-07-21 18:38-collections.md +62 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-08-01 11:34-gov_def.md +444 -0
- md_processing/dr_egeria_outbox/processed-2025-08-03 16:05-glossary_list.md +37 -0
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 14:55-product.md +77 -0
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:05-product.md +75 -0
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 15:11-product.md +74 -0
- md_processing/dr_egeria_outbox/sunday/processed-2025-07-20 20:40-collections.md +49 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 15:00-Derive-Dr-Gov-Defs.md +719 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:13-Derive-Dr-Gov-Defs.md +41 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:14-Derive-Dr-Gov-Defs.md +33 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 20:50-Derive-Dr-Gov-Defs.md +192 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:08-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-17 22:10-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:53-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 08:54-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:03-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:06-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/thursday/processed-2025-07-18 09:10-gov_def2.md +486 -0
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-16 19:15-gov_def2.md +527 -0
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 12:08-gov_def2.md +527 -0
- md_processing/dr_egeria_outbox/tuesday/processed-2025-07-17 14:27-gov_def2.md +485 -0
- md_processing/md_processing_utils/debug_log.log +0 -0
- md_processing/md_processing_utils/solution_architect_log.log +0 -0
- pyegeria/.DS_Store +0 -0
- pyegeria/__init__.py +2 -2
- pyegeria/_client_new.py +392 -98
- pyegeria/_exceptions_new.py +16 -13
- pyegeria/_output_format_models.py +22 -17
- pyegeria/_output_formats.py +107 -34
- pyegeria/collection_manager.py +703 -1429
- pyegeria/collection_manager_omvs.py +48 -19
- pyegeria/egeria_cat_client.py +1 -1
- pyegeria/egeria_client.py +6 -0
- pyegeria/egeria_tech_client.py +6 -1
- pyegeria/governance_officer.py +2515 -0
- pyegeria/models.py +23 -6
- pyegeria/output_formatter.py +298 -79
- {pyegeria-5.4.0.20.dist-info → pyegeria-5.4.0.23.dist-info}/METADATA +1 -1
- {pyegeria-5.4.0.20.dist-info → pyegeria-5.4.0.23.dist-info}/RECORD +121 -19
- {pyegeria-5.4.0.20.dist-info → pyegeria-5.4.0.23.dist-info}/LICENSE +0 -0
- {pyegeria-5.4.0.20.dist-info → pyegeria-5.4.0.23.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.0.20.dist-info → pyegeria-5.4.0.23.dist-info}/entry_points.txt +0 -0
@@ -16,7 +16,7 @@ from pyegeria._client import Client
|
|
16
16
|
from pyegeria._globals import NO_ELEMENTS_FOUND, NO_GUID_RETURNED, NO_MEMBERS_FOUND
|
17
17
|
from pyegeria._validators import validate_guid, validate_search_string
|
18
18
|
from pyegeria.output_formatter import (generate_output,
|
19
|
-
_extract_referenceable_properties)
|
19
|
+
_extract_referenceable_properties, get_required_relationships)
|
20
20
|
from pyegeria.utils import body_slimmer, dynamic_catch
|
21
21
|
|
22
22
|
|
@@ -6431,34 +6431,63 @@ class CollectionManager(Client2):
|
|
6431
6431
|
return resp
|
6432
6432
|
|
6433
6433
|
|
6434
|
-
def _extract_collection_properties(self, element: dict) -> dict:
|
6434
|
+
def _extract_collection_properties(self, element: dict, columns_struct: dict) -> dict:
|
6435
6435
|
"""
|
6436
|
-
Extract common properties from a collection element.
|
6436
|
+
Extract common properties from a collection element and populate into the provided columns_struct.
|
6437
6437
|
|
6438
6438
|
Args:
|
6439
6439
|
element (dict): The collection element
|
6440
|
+
columns_struct (dict): The columns structure to populate
|
6440
6441
|
|
6441
6442
|
Returns:
|
6442
|
-
dict:
|
6443
|
+
dict: columns_struct with column 'value' fields populated
|
6443
6444
|
"""
|
6444
|
-
|
6445
|
-
|
6446
|
-
|
6447
|
-
|
6448
|
-
|
6449
|
-
|
6450
|
-
|
6451
|
-
|
6452
|
-
|
6453
|
-
|
6445
|
+
col_data = columns_struct
|
6446
|
+
# Populate display/qualified/description etc. from properties via output formatter util not available here,
|
6447
|
+
# so we do minimal direct mapping for OMVS variant.
|
6448
|
+
props = element.get('properties', {}) or {}
|
6449
|
+
columns_list = col_data.get('formats', {}).get('columns', [])
|
6450
|
+
|
6451
|
+
# Header props
|
6452
|
+
header_props = _extract_referenceable_properties(element)
|
6453
|
+
for column in columns_list:
|
6454
|
+
key = column.get('key')
|
6455
|
+
# from element.properties (camelCase); keys here are snake_case or GUID
|
6456
|
+
if isinstance(key, str):
|
6457
|
+
if key.lower() == 'guid':
|
6458
|
+
column['value'] = header_props.get('GUID')
|
6459
|
+
elif key in header_props:
|
6460
|
+
column['value'] = header_props.get(key)
|
6461
|
+
else:
|
6462
|
+
# simple camelCase mapping inline to reduce imports here
|
6463
|
+
snake_parts = key.split('_')
|
6464
|
+
camel = snake_parts[0] + ''.join([p.capitalize() if p.lower() != 'guid' else 'GUID' for p in snake_parts[1:]])
|
6465
|
+
if camel in props:
|
6466
|
+
column['value'] = props.get(camel)
|
6467
|
+
|
6468
|
+
# Mermaid graph
|
6469
|
+
for column in columns_list:
|
6470
|
+
if column.get('key') == 'mermaid':
|
6471
|
+
column['value'] = element.get('mermaidGraph', '') or ''
|
6472
|
+
break
|
6473
|
+
|
6474
|
+
# Members list (uses API call)
|
6454
6475
|
member_names = ""
|
6455
|
-
members = self.get_member_list(collection_guid=
|
6476
|
+
members = self.get_member_list(collection_guid=header_props.get('GUID'))
|
6456
6477
|
if isinstance(members, list):
|
6457
6478
|
for member in members:
|
6458
6479
|
member_names += f"{member['qualifiedName']}, "
|
6459
|
-
|
6460
|
-
|
6461
|
-
|
6480
|
+
member_names = member_names[:-2]
|
6481
|
+
for column in columns_list:
|
6482
|
+
if column.get('key') == 'members':
|
6483
|
+
column['value'] = member_names
|
6484
|
+
break
|
6485
|
+
|
6486
|
+
# Populate any additional requested relationship-based columns generically
|
6487
|
+
col_data = get_required_relationships(element, col_data)
|
6488
|
+
|
6489
|
+
logger.trace(f"Extracted/Populated columns: {col_data}")
|
6490
|
+
return col_data
|
6462
6491
|
|
6463
6492
|
|
6464
6493
|
def _generate_collection_output(self, elements: dict|list[dict], filter: Optional[str],
|
@@ -6487,7 +6516,7 @@ class CollectionManager(Client2):
|
|
6487
6516
|
output_formats = select_output_format_set(output_format_set, output_format)
|
6488
6517
|
if isinstance(output_format_set, dict):
|
6489
6518
|
output_formats = get_output_format_type_match(output_format_set, output_format)
|
6490
|
-
# If no output_format was set, then use the
|
6519
|
+
# If no output_format was set, then use the collection_type to lookup the output format
|
6491
6520
|
elif classification_name:
|
6492
6521
|
output_formats = select_output_format_set(classification_name, output_format)
|
6493
6522
|
else:
|
pyegeria/egeria_cat_client.py
CHANGED
@@ -8,7 +8,7 @@ AssetCatalog, CollectionManager, GlossaryManager, and ProjectManager.
|
|
8
8
|
"""
|
9
9
|
from pyegeria.egeria_my_client import EgeriaMy
|
10
10
|
from pyegeria.asset_catalog_omvs import AssetCatalog
|
11
|
-
from pyegeria.
|
11
|
+
from pyegeria.collection_manager import CollectionManager
|
12
12
|
from pyegeria.glossary_manager_omvs import GlossaryManager
|
13
13
|
from pyegeria.project_manager_omvs import ProjectManager
|
14
14
|
|
pyegeria/egeria_client.py
CHANGED
@@ -15,6 +15,7 @@ for all use cases..using the more role based clients is often appropriate:
|
|
15
15
|
from pyegeria.asset_catalog_omvs import AssetCatalog
|
16
16
|
from pyegeria.collection_manager_omvs import CollectionManager
|
17
17
|
from pyegeria.glossary_manager_omvs import GlossaryManager
|
18
|
+
from pyegeria.governance_officer import GovernanceOfficer
|
18
19
|
from pyegeria.project_manager_omvs import ProjectManager
|
19
20
|
from pyegeria.automated_curation_omvs import AutomatedCuration
|
20
21
|
from pyegeria.classification_manager_omvs import ClassificationManager
|
@@ -30,6 +31,7 @@ from pyegeria.registered_info import RegisteredInfo
|
|
30
31
|
from pyegeria.valid_metadata_omvs import ValidMetadataManager
|
31
32
|
from pyegeria.egeria_config_client import EgeriaConfig
|
32
33
|
from pyegeria.data_designer_omvs import DataDesigner
|
34
|
+
from pyegeria.governance_officer import GovernanceOfficer
|
33
35
|
# from pyegeria.md_processing_utils import render_markdown
|
34
36
|
|
35
37
|
|
@@ -55,6 +57,7 @@ class Egeria(
|
|
55
57
|
SolutionArchitect,
|
56
58
|
EgeriaConfig,
|
57
59
|
DataDesigner,
|
60
|
+
GovernanceOfficer
|
58
61
|
):
|
59
62
|
"""
|
60
63
|
Client to issue Runtime status requests.
|
@@ -129,4 +132,7 @@ class Egeria(
|
|
129
132
|
DataDesigner.__init__(
|
130
133
|
self, view_server, platform_url, user_id, user_pwd, token
|
131
134
|
)
|
135
|
+
GovernanceOfficer.__init__(
|
136
|
+
self, view_server, platform_url, user_id, user_pwd, token
|
137
|
+
)
|
132
138
|
print(Egeria.mro())
|
pyegeria/egeria_tech_client.py
CHANGED
@@ -15,7 +15,8 @@ from pyegeria.runtime_manager_omvs import RuntimeManager
|
|
15
15
|
from pyegeria.solution_architect_omvs import SolutionArchitect
|
16
16
|
from pyegeria.template_manager_omvs import TemplateManager
|
17
17
|
from pyegeria.valid_metadata_omvs import ValidMetadataManager
|
18
|
-
from pyegeria.
|
18
|
+
from pyegeria.governance_officer import GovernanceOfficer
|
19
|
+
from pyegeria.collection_manager import CollectionManager
|
19
20
|
|
20
21
|
|
21
22
|
class EgeriaTech(
|
@@ -31,6 +32,7 @@ class EgeriaTech(
|
|
31
32
|
DataDesigner,
|
32
33
|
TemplateManager,
|
33
34
|
GovernanceOfficer,
|
35
|
+
CollectionManager
|
34
36
|
):
|
35
37
|
"""
|
36
38
|
Client for technical Egeria users.
|
@@ -94,6 +96,9 @@ class EgeriaTech(
|
|
94
96
|
GovernanceOfficer.__init__(
|
95
97
|
self, view_server, platform_url, user_id, user_pwd, token
|
96
98
|
)
|
99
|
+
CollectionManager.__init__(
|
100
|
+
self, view_server, platform_url, user_id, user_pwd, token
|
101
|
+
)
|
97
102
|
|
98
103
|
if __name__ == "__main__":
|
99
104
|
print("Main-Tech Client")
|