pyegeria 5.4.0.23__py3-none-any.whl → 5.4.0.25__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/debug_log +7967 -465
- commands/cat/debug_log.2025-08-15_09-14-07_444802.zip +0 -0
- commands/cat/debug_log.2025-08-16_10-21-59_388912.zip +0 -0
- commands/cat/debug_log.2025-08-17_11-34-27_981852.zip +0 -0
- commands/cat/dr_egeria_md.py +36 -6
- commands/cat/logs/pyegeria.log +3 -135
- md_processing/.DS_Store +0 -0
- md_processing/__init__.py +12 -6
- md_processing/data/commands.json +8523 -2234
- md_processing/dr_egeria_inbox/gov_def.md +76 -18
- md_processing/dr_egeria_inbox/img.png +0 -0
- md_processing/dr_egeria_inbox/product.md +185 -24
- md_processing/dr_egeria_outbox/.obsidian/workspace.json +5 -5
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:05-product.md +426 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 07:56-product.md +212 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-08-19 09:43-product.md +201 -0
- md_processing/dr_egeria_outbox/tuesday/processed-2025-08-19 10:55-product.md +209 -0
- md_processing/md_commands/governance_officer_commands.py +247 -178
- md_processing/md_commands/product_manager_commands.py +730 -580
- md_processing/md_processing_utils/common_md_proc_utils.py +170 -12
- md_processing/md_processing_utils/common_md_utils.py +126 -28
- md_processing/md_processing_utils/extraction_utils.py +2 -2
- md_processing/md_processing_utils/md_processing_constants.py +14 -10
- pyegeria/.DS_Store +0 -0
- pyegeria/__init__.py +1 -1
- pyegeria/_client_new.py +61 -12
- pyegeria/_exceptions_new.py +6 -0
- pyegeria/_output_formats.py +42 -2
- pyegeria/collection_manager.py +79 -14
- pyegeria/{data_designer_omvs.py → data_designer.py} +1171 -1675
- pyegeria/glossary_browser.py +1259 -0
- pyegeria/{glossary_manager_omvs.py → glossary_manager.py} +1181 -1099
- pyegeria/governance_officer.py +1 -3
- pyegeria/load_config.py +1 -1
- pyegeria/models.py +37 -4
- pyegeria/output_formatter.py +2 -1
- pyegeria/project_manager.py +1952 -0
- pyegeria/utils.py +5 -2
- {pyegeria-5.4.0.23.dist-info → pyegeria-5.4.0.25.dist-info}/METADATA +1 -1
- {pyegeria-5.4.0.23.dist-info → pyegeria-5.4.0.25.dist-info}/RECORD +43 -44
- md_processing/dr_egeria_outbox/friday/processed-2025-07-18 15:00-product.md +0 -62
- md_processing/dr_egeria_outbox/friday/processed-2025-07-18 15:13-product.md +0 -62
- md_processing/dr_egeria_outbox/friday/processed-2025-07-20 13:23-product.md +0 -47
- md_processing/dr_egeria_outbox/friday/processed-2025-08-01 11:55-data_test3.md +0 -503
- md_processing/dr_egeria_outbox/monday/processed-2025-07-14 12:38-data_designer_out.md +0 -663
- md_processing/dr_egeria_outbox/monday/processed-2025-07-21 10:52-generated_help_report.md +0 -2744
- md_processing/dr_egeria_outbox/monday/processed-2025-07-21 18:38-collections.md +0 -62
- md_processing/dr_egeria_outbox/monday/processed-2025-08-01 11:34-gov_def.md +0 -444
- md_processing/dr_egeria_outbox/processed-2025-08-03 16:05-glossary_list.md +0 -37
- pyegeria/glossary_browser_omvs.py +0 -3840
- pyegeria/governance_officer_omvs.py +0 -2367
- {pyegeria-5.4.0.23.dist-info → pyegeria-5.4.0.25.dist-info}/LICENSE +0 -0
- {pyegeria-5.4.0.23.dist-info → pyegeria-5.4.0.25.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.0.23.dist-info → pyegeria-5.4.0.25.dist-info}/entry_points.txt +0 -0
pyegeria/governance_officer.py
CHANGED
@@ -726,8 +726,6 @@ class GovernanceOfficer(Client2):
|
|
726
726
|
|
727
727
|
@dynamic_catch
|
728
728
|
async def _async_update_governance_definition(self, guid: str, body: dict | UpdateElementRequestBody) -> None:
|
729
|
-
""" Update a governance definition."""
|
730
|
-
|
731
729
|
""" Update the properties of a governance definition. Async Version.
|
732
730
|
|
733
731
|
Parameters
|
@@ -793,7 +791,7 @@ class GovernanceOfficer(Client2):
|
|
793
791
|
await self._async_update_element_body_request(url, GOV_DEF_PROPERTIES_LIST, body)
|
794
792
|
|
795
793
|
@dynamic_catch
|
796
|
-
def _async_update_governance_definition(self, guid: str, body: dict | UpdateElementRequestBody) -> None:
|
794
|
+
async def _async_update_governance_definition(self, guid: str, body: dict | UpdateElementRequestBody) -> None:
|
797
795
|
""" Update a governance definition. Async Version."""
|
798
796
|
|
799
797
|
def update_governance_definition(self, guid: str, body: dict | UpdateStatusRequestBody) -> None:
|
pyegeria/load_config.py
CHANGED
@@ -381,7 +381,7 @@ def load_app_config(env_file: str = None):
|
|
381
381
|
|
382
382
|
# Logging section
|
383
383
|
log = config_dict["Logging"]
|
384
|
-
log["console_filter_levels"] = _parse_list_env("PYEGERIA_CONSOLE_FILTER_LEVELS", log.get("console_filter_levels", ["ERROR"]))
|
384
|
+
log["console_filter_levels"] = _parse_list_env("PYEGERIA_CONSOLE_FILTER_LEVELS", log.get("console_filter_levels", ["ERROR","WARNING","INFO","SUCCESS"]))
|
385
385
|
log["console_logging_enabled"] = _parse_list_env("PYEGERIA_CONSOLE_LOGGING_ENABLED", log.get("console_logging_enabled", ["pyegeria"]))
|
386
386
|
log["console_logging_level"] = os.getenv("PYEGERIA_CONSOLE_LOG_LVL", log.get("console_logging_level", "INFO"))
|
387
387
|
log["enable_logging"] = _parse_bool_env("PYEGERIA_ENABLE_LOGGING", log.get("enable_logging", False))
|
pyegeria/models.py
CHANGED
@@ -177,6 +177,33 @@ class OpenMetadataRootProperties(PyegeriaModel):
|
|
177
177
|
type_name: str | None = None
|
178
178
|
extended_properties: dict | None = None
|
179
179
|
|
180
|
+
@model_validator(mode='before')
|
181
|
+
@classmethod
|
182
|
+
def preprocess_data(cls, values):
|
183
|
+
"""
|
184
|
+
This model validator performs pre-processing on the entire
|
185
|
+
input dictionary before field validation.
|
186
|
+
It converts any empty tuples to None and ensures a metadata key exists.
|
187
|
+
|
188
|
+
This is the modern equivalent of @root_validator(pre=True).
|
189
|
+
"""
|
190
|
+
# Ensure the 'data' key exists before trying to access it.
|
191
|
+
if 'data' in values and isinstance(values['data'], dict):
|
192
|
+
# Convert empty tuples to None
|
193
|
+
processed_data = {}
|
194
|
+
for key, value in values['data'].items():
|
195
|
+
if isinstance(value, tuple) and not value:
|
196
|
+
processed_data[key] = None
|
197
|
+
else:
|
198
|
+
processed_data[key] = value
|
199
|
+
values['data'] = processed_data
|
200
|
+
|
201
|
+
# Ensure a 'metadata' key is always a dictionary.
|
202
|
+
if 'metadata' not in values:
|
203
|
+
values['metadata'] = {}
|
204
|
+
|
205
|
+
return values
|
206
|
+
|
180
207
|
|
181
208
|
class RelationshipBeanProperties(PyegeriaModel):
|
182
209
|
effective_from: datetime | None = None
|
@@ -259,18 +286,18 @@ class NewElementRequestBody(RequestBody):
|
|
259
286
|
|
260
287
|
class NewClassificationRequestBody(RequestBody):
|
261
288
|
class_: Annotated[Literal["NewClassificationRequestBody"], Field(alias="class")]
|
262
|
-
properties:
|
289
|
+
properties: dict | None = None
|
263
290
|
|
264
291
|
|
265
292
|
class UpdateClassificationRequestBody(RequestBody):
|
266
293
|
class_: Annotated[Literal["UpdateClassificationRequestBody"], Field(alias="class")]
|
267
|
-
properties:
|
294
|
+
properties: dict | None = None
|
268
295
|
merge_update: bool | None = True
|
269
296
|
|
270
297
|
|
271
298
|
class UpdateRelationshipRequestBody(RequestBody):
|
272
299
|
class_: Annotated[Literal["UpdateRelationshipRequestBody"], Field(alias="class")]
|
273
|
-
properties:
|
300
|
+
properties: dict | None = None
|
274
301
|
merge_update: bool | None = True
|
275
302
|
|
276
303
|
|
@@ -286,6 +313,11 @@ class TemplateRequestBody(PyegeriaModel):
|
|
286
313
|
template_guid: str
|
287
314
|
replacement_properties: dict[str, Any] = {}
|
288
315
|
placeholder_properties: dict[str, Any] = {}
|
316
|
+
deep_copy: bool | None = False
|
317
|
+
effective_from: datetime | None = None
|
318
|
+
effective_to: datetime | None = None
|
319
|
+
template_substitute: bool | None = False
|
320
|
+
allow_retrieve: bool | None = True
|
289
321
|
|
290
322
|
|
291
323
|
class UpdateElementRequestBody(PyegeriaModel):
|
@@ -311,7 +343,7 @@ class UpdateStatusRequestBody(PyegeriaModel):
|
|
311
343
|
|
312
344
|
class GetRequestBody(PyegeriaModel):
|
313
345
|
class_: Annotated[Literal["GetRequestBody"], Field(alias="class")]
|
314
|
-
|
346
|
+
metadata_element_type_name: str | None = None
|
315
347
|
metadata_element_subtype_names: list[str] | None = None
|
316
348
|
skip_relationships: list[str] | None = None
|
317
349
|
include_only_relationships: list[str] | None = None
|
@@ -323,6 +355,7 @@ class GetRequestBody(PyegeriaModel):
|
|
323
355
|
effective_time: datetime | None = None
|
324
356
|
for_lineage: bool | None = False
|
325
357
|
for_duplicate_processing: bool | None = False
|
358
|
+
relationship_page_size: int | None = None
|
326
359
|
|
327
360
|
|
328
361
|
class ResultsRequestBody(GetRequestBody):
|
pyegeria/output_formatter.py
CHANGED
@@ -632,7 +632,8 @@ def generate_entity_dict(elements: List[Dict],
|
|
632
632
|
if columns_struct is not None:
|
633
633
|
try:
|
634
634
|
returned_struct = extract_properties_func(element, columns_struct)
|
635
|
-
except TypeError:
|
635
|
+
except TypeError as e:
|
636
|
+
logger.info(f"Error - didn't find extractor?: {e}")
|
636
637
|
returned_struct = None
|
637
638
|
|
638
639
|
# Get additional properties if function is provided
|