pyegeria 5.4.8.8__py3-none-any.whl → 5.4.8.9__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.
Potentially problematic release.
This version of pyegeria might be problematic. Click here for more details.
- md_processing/__init__.py +1 -1
- md_processing/data/commands.json +39 -39
- md_processing/dr_egeria.py +3 -3
- md_processing/md_commands/feedback_commands.py +58 -83
- md_processing/md_processing_utils/common_md_utils.py +2 -2
- md_processing/md_processing_utils/extraction_utils.py +9 -5
- md_processing/md_processing_utils/md_processing_constants.py +7 -3
- pyegeria/_client_new.py +77 -20
- pyegeria/_exceptions_new.py +19 -11
- pyegeria/_globals.py +101 -92
- pyegeria/asset_catalog_omvs.py +2 -2
- pyegeria/base_report_formats.py +45 -8
- pyegeria/output_formatter.py +6 -2
- {pyegeria-5.4.8.8.dist-info → pyegeria-5.4.8.9.dist-info}/METADATA +1 -1
- {pyegeria-5.4.8.8.dist-info → pyegeria-5.4.8.9.dist-info}/RECORD +19 -19
- {pyegeria-5.4.8.8.dist-info → pyegeria-5.4.8.9.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.8.8.dist-info → pyegeria-5.4.8.9.dist-info}/entry_points.txt +0 -0
- {pyegeria-5.4.8.8.dist-info → pyegeria-5.4.8.9.dist-info}/licenses/LICENSE +0 -0
- {pyegeria-5.4.8.8.dist-info → pyegeria-5.4.8.9.dist-info}/top_level.txt +0 -0
md_processing/__init__.py
CHANGED
|
@@ -32,7 +32,7 @@ from md_processing.md_commands.data_designer_commands import (process_data_field
|
|
|
32
32
|
process_data_dict_upsert_command,
|
|
33
33
|
process_data_structure_upsert_command)
|
|
34
34
|
|
|
35
|
-
from md_processing.md_commands.feedback_commands import (process_add_comment_command,
|
|
35
|
+
from md_processing.md_commands.feedback_commands import (process_add_comment_command, process_journal_entry_command,
|
|
36
36
|
process_upsert_note_command, process_attach_note_log_command,
|
|
37
37
|
process_upsert_informal_tag_command, process_tag_element_command)
|
|
38
38
|
|
md_processing/data/commands.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Command Specifications": {
|
|
3
|
-
"exported": "Oct
|
|
3
|
+
"exported": "Oct 30, 2025 at 11:35:20 AM",
|
|
4
4
|
"Create Comment": {
|
|
5
5
|
"display_name": "Comment",
|
|
6
6
|
"qn_prefix": "Comment",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"default_value": "",
|
|
55
55
|
"valid_values": "",
|
|
56
56
|
"existing_element": "",
|
|
57
|
-
"description": "The element the comment is attached to.",
|
|
57
|
+
"description": "The element the comment is attached to. To reply to a previous comment, you would use the ID of the previous comment as the associated element.",
|
|
58
58
|
"qualified_name_pattern": "",
|
|
59
59
|
"generated": false,
|
|
60
60
|
"style": "Reference Name",
|
|
@@ -69,30 +69,6 @@
|
|
|
69
69
|
"Journal Entry": ""
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
|
-
{
|
|
73
|
-
"Parent Comment": {
|
|
74
|
-
"variable_name": "parent_comment",
|
|
75
|
-
"inUpdate": true,
|
|
76
|
-
"attr_labels": "Element",
|
|
77
|
-
"examples": "",
|
|
78
|
-
"default_value": "",
|
|
79
|
-
"valid_values": "",
|
|
80
|
-
"existing_element": "",
|
|
81
|
-
"description": "The comment being replied to. If provided, the Associated Element will be ignored (this becomes the associated element).",
|
|
82
|
-
"qualified_name_pattern": "",
|
|
83
|
-
"generated": false,
|
|
84
|
-
"style": "ID",
|
|
85
|
-
"user_specified": true,
|
|
86
|
-
"unique": false,
|
|
87
|
-
"input_required": false,
|
|
88
|
-
"isParent": false,
|
|
89
|
-
"isAnchor": false,
|
|
90
|
-
"min_cardinality": 1,
|
|
91
|
-
"max_cardinality": 1,
|
|
92
|
-
"level": "Basic",
|
|
93
|
-
"Journal Entry": ""
|
|
94
|
-
}
|
|
95
|
-
},
|
|
96
72
|
{
|
|
97
73
|
"Comment Text": {
|
|
98
74
|
"variable_name": "comment_text",
|
|
@@ -455,10 +431,10 @@
|
|
|
455
431
|
}
|
|
456
432
|
]
|
|
457
433
|
},
|
|
458
|
-
"Create
|
|
434
|
+
"Create Journal Entry": {
|
|
459
435
|
"display_name": "NoteLog",
|
|
460
436
|
"qn_prefix": "NoteLog",
|
|
461
|
-
"alternate_names": "",
|
|
437
|
+
"alternate_names": "Note Log; Journal",
|
|
462
438
|
"family": "Feedback Manager",
|
|
463
439
|
"description": "Allows a sequence of notes to be attached to an associated element.",
|
|
464
440
|
"verb": "Create",
|
|
@@ -476,21 +452,21 @@
|
|
|
476
452
|
"Journal Entry": "",
|
|
477
453
|
"Attributes": [
|
|
478
454
|
{
|
|
479
|
-
"
|
|
455
|
+
"Journal Name": {
|
|
480
456
|
"variable_name": "display_name",
|
|
481
457
|
"inUpdate": true,
|
|
482
|
-
"attr_labels": "Name",
|
|
458
|
+
"attr_labels": "Name; Title",
|
|
483
459
|
"examples": "",
|
|
484
460
|
"default_value": "",
|
|
485
461
|
"valid_values": "",
|
|
486
462
|
"existing_element": "",
|
|
487
|
-
"description": "Name of the NoteLog.",
|
|
463
|
+
"description": "Name of the NoteLog or Journal.",
|
|
488
464
|
"qualified_name_pattern": "",
|
|
489
465
|
"generated": false,
|
|
490
|
-
"style": "
|
|
466
|
+
"style": "ID",
|
|
491
467
|
"user_specified": true,
|
|
492
468
|
"unique": false,
|
|
493
|
-
"input_required":
|
|
469
|
+
"input_required": true,
|
|
494
470
|
"isParent": false,
|
|
495
471
|
"isAnchor": false,
|
|
496
472
|
"min_cardinality": 0,
|
|
@@ -524,8 +500,8 @@
|
|
|
524
500
|
}
|
|
525
501
|
},
|
|
526
502
|
{
|
|
527
|
-
"Description": {
|
|
528
|
-
"variable_name": "
|
|
503
|
+
"Journal Description": {
|
|
504
|
+
"variable_name": "journal_description",
|
|
529
505
|
"inUpdate": true,
|
|
530
506
|
"attr_labels": "",
|
|
531
507
|
"examples": "",
|
|
@@ -547,6 +523,30 @@
|
|
|
547
523
|
"Journal Entry": ""
|
|
548
524
|
}
|
|
549
525
|
},
|
|
526
|
+
{
|
|
527
|
+
"Note Entry": {
|
|
528
|
+
"variable_name": "note_entry",
|
|
529
|
+
"inUpdate": true,
|
|
530
|
+
"attr_labels": "Note; Journal Entry",
|
|
531
|
+
"examples": "",
|
|
532
|
+
"default_value": "",
|
|
533
|
+
"valid_values": "",
|
|
534
|
+
"existing_element": "",
|
|
535
|
+
"description": "The text of the journal entry.",
|
|
536
|
+
"qualified_name_pattern": "",
|
|
537
|
+
"generated": false,
|
|
538
|
+
"style": "Simple",
|
|
539
|
+
"user_specified": true,
|
|
540
|
+
"unique": false,
|
|
541
|
+
"input_required": true,
|
|
542
|
+
"isParent": false,
|
|
543
|
+
"isAnchor": false,
|
|
544
|
+
"min_cardinality": 1,
|
|
545
|
+
"max_cardinality": 1,
|
|
546
|
+
"level": "Basic",
|
|
547
|
+
"Journal Entry": ""
|
|
548
|
+
}
|
|
549
|
+
},
|
|
550
550
|
{
|
|
551
551
|
"URL": {
|
|
552
552
|
"variable_name": "url",
|
|
@@ -885,7 +885,7 @@
|
|
|
885
885
|
"Display Name": {
|
|
886
886
|
"variable_name": "display_name",
|
|
887
887
|
"inUpdate": true,
|
|
888
|
-
"attr_labels": "Name",
|
|
888
|
+
"attr_labels": "Name; Title",
|
|
889
889
|
"examples": "",
|
|
890
890
|
"default_value": "",
|
|
891
891
|
"valid_values": "",
|
|
@@ -909,7 +909,7 @@
|
|
|
909
909
|
"NoteLog": {
|
|
910
910
|
"variable_name": "note_log",
|
|
911
911
|
"inUpdate": true,
|
|
912
|
-
"attr_labels": "",
|
|
912
|
+
"attr_labels": "Journal",
|
|
913
913
|
"examples": "",
|
|
914
914
|
"default_value": "",
|
|
915
915
|
"valid_values": "",
|
|
@@ -933,12 +933,12 @@
|
|
|
933
933
|
"Description": {
|
|
934
934
|
"variable_name": "description",
|
|
935
935
|
"inUpdate": true,
|
|
936
|
-
"attr_labels": "",
|
|
936
|
+
"attr_labels": "Text",
|
|
937
937
|
"examples": "",
|
|
938
938
|
"default_value": "",
|
|
939
939
|
"valid_values": "",
|
|
940
940
|
"existing_element": "",
|
|
941
|
-
"description": "
|
|
941
|
+
"description": "The text of the note..",
|
|
942
942
|
"qualified_name_pattern": "",
|
|
943
943
|
"generated": false,
|
|
944
944
|
"style": "Simple",
|
md_processing/dr_egeria.py
CHANGED
|
@@ -45,7 +45,7 @@ from md_processing.md_commands.data_designer_commands import (process_data_spec_
|
|
|
45
45
|
process_data_structure_upsert_command,
|
|
46
46
|
process_data_class_upsert_command)
|
|
47
47
|
|
|
48
|
-
from md_processing.md_commands.feedback_commands import (process_add_comment_command,
|
|
48
|
+
from md_processing.md_commands.feedback_commands import (process_add_comment_command, process_journal_entry_command,
|
|
49
49
|
process_upsert_note_command, process_attach_note_log_command,
|
|
50
50
|
process_upsert_informal_tag_command, process_tag_element_command)
|
|
51
51
|
|
|
@@ -124,8 +124,8 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
|
|
|
124
124
|
|
|
125
125
|
elif potential_command in ["Create Comment", "Update Comment"]:
|
|
126
126
|
result = process_add_comment_command(client, current_block, directive)
|
|
127
|
-
elif potential_command in ["Create
|
|
128
|
-
result =
|
|
127
|
+
elif potential_command in ["Create Journal Entry"]:
|
|
128
|
+
result = process_journal_entry_command(client, current_block, directive)
|
|
129
129
|
elif potential_command in ["Create Note", "Update Note"]:
|
|
130
130
|
result = process_upsert_note_command(client, current_block, directive)
|
|
131
131
|
elif potential_command in ["Link NoteLog", "Detach NoteLog"]:
|
|
@@ -64,7 +64,8 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
64
64
|
|
|
65
65
|
attributes = parsed_output['attributes']
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
valid = parsed_output['valid']
|
|
68
|
+
exists = parsed_output['exists']
|
|
68
69
|
|
|
69
70
|
qualified_name = parsed_output.get('qualified_name', None)
|
|
70
71
|
guid = parsed_output.get('guid', None)
|
|
@@ -79,19 +80,18 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
79
80
|
associated_element = attributes.get('Associated Element', {}).get('value', None)
|
|
80
81
|
associated_element_guid = attributes.get('Associated Element', {}).get('guid', None)
|
|
81
82
|
description = attributes.get('Comment Text', {}).get('value', None)
|
|
82
|
-
comment_type = attributes.get('Comment Type', {}).get('value', None)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
exists = True
|
|
83
|
+
comment_type = attributes.get('Comment Type', {}).get('value', None).strip()
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
# if associated_element_guid is None and parent_comment_guid is None:
|
|
87
|
+
# valid = False
|
|
88
|
+
# msg = f"Validation failed for {command} - One of `Associated Element` or `Parent Comment` must be specified\n"
|
|
89
|
+
# logger.error(msg)
|
|
90
|
+
# print(msg)
|
|
91
|
+
# else:
|
|
92
|
+
# if description:
|
|
93
|
+
# valid = True
|
|
94
|
+
# exists = True
|
|
95
95
|
#
|
|
96
96
|
|
|
97
97
|
if directive == "display":
|
|
@@ -109,13 +109,14 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
109
109
|
obj = "Comment"
|
|
110
110
|
if comment_type not in COMMENT_TYPES:
|
|
111
111
|
raise ValueError(f"Invalid comment type: {comment_type}")
|
|
112
|
-
target_guid = parent_comment_guid if parent_comment_guid else associated_element_guid
|
|
112
|
+
# target_guid = parent_comment_guid if parent_comment_guid else associated_element_guid
|
|
113
113
|
if qualified_name is None:
|
|
114
|
-
qualified_name = egeria_client.make_feedback_qn("Comment",
|
|
114
|
+
qualified_name = egeria_client.make_feedback_qn("Comment",associated_element_guid,display_name)
|
|
115
115
|
# Set the property body for a glossary collection
|
|
116
116
|
#
|
|
117
117
|
prop_body = {
|
|
118
118
|
"class": "CommentProperties",
|
|
119
|
+
"displayName": display_name,
|
|
119
120
|
"qualifiedName": qualified_name,
|
|
120
121
|
"description": description,
|
|
121
122
|
"commentType": comment_type
|
|
@@ -165,20 +166,21 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
165
166
|
return None
|
|
166
167
|
|
|
167
168
|
else:
|
|
169
|
+
|
|
168
170
|
body = set_create_body(object_type,attributes)
|
|
169
171
|
body['class'] = "NewAttachmentRequestBody"
|
|
170
172
|
body["properties"] = prop_body
|
|
171
173
|
slim_body = body_slimmer(body)
|
|
172
|
-
if parent_comment_guid:
|
|
173
|
-
|
|
174
|
-
else:
|
|
175
|
-
|
|
174
|
+
# if parent_comment_guid:
|
|
175
|
+
# guid = egeria_client.add_comment_reply(element_guid = parent_comment_guid, body = slim_body)
|
|
176
|
+
# else:
|
|
177
|
+
guid = egeria_client.add_comment_to_element(element_guid = associated_element_guid, body =slim_body)
|
|
176
178
|
|
|
177
179
|
if guid:
|
|
178
180
|
update_element_dictionary(qualified_name, {
|
|
179
181
|
'guid': guid, 'display_name': display_name
|
|
180
182
|
})
|
|
181
|
-
msg = f"Created Element `{display_name}` with GUID {guid}\n\n___"
|
|
183
|
+
msg = f"## ==> Created Element `{display_name}` with GUID {guid}\n\n___"
|
|
182
184
|
logger.success(msg)
|
|
183
185
|
print(Markdown(msg))
|
|
184
186
|
return egeria_client.get_comment_by_guid(guid, output_format='MD', report_spec = "Comments-DrE")
|
|
@@ -196,10 +198,11 @@ def process_add_comment_command(egeria_client: EgeriaTech, txt: str, directive:
|
|
|
196
198
|
else:
|
|
197
199
|
return None
|
|
198
200
|
|
|
199
|
-
def
|
|
201
|
+
def process_journal_entry_command(egeria_client: EgeriaTech, txt: str,
|
|
202
|
+
directive: str = "display") -> Optional[str]:
|
|
200
203
|
"""
|
|
201
|
-
|
|
202
|
-
|
|
204
|
+
Creates or updates a journal entry. If the journal (NoteLog) doesn't exist, then it will be created. Each journal
|
|
205
|
+
entry is a note in a NoteLog.
|
|
203
206
|
|
|
204
207
|
:param txt: A string representing the input cell to be processed for
|
|
205
208
|
extracting glossary-related attributes.
|
|
@@ -227,10 +230,24 @@ def process_upsert_note_log_command(egeria_client: EgeriaTech, txt: str, directi
|
|
|
227
230
|
|
|
228
231
|
attributes = parsed_output['attributes']
|
|
229
232
|
|
|
230
|
-
|
|
231
|
-
|
|
233
|
+
journal_name = attributes['Journal Name'].get('value', None)
|
|
234
|
+
journal_qn = attributes['Journal Name'].get('qualified_name', None)
|
|
235
|
+
journal_exists = attributes['Journal Name'].get('Exists', False)
|
|
236
|
+
note_entry = attributes['Note Entry'].get('value', None)
|
|
237
|
+
journal_description = attributes['Journal Description'].get('value', None)
|
|
238
|
+
|
|
232
239
|
associated_element = attributes.get('Associated Element', {}).get('value', None)
|
|
233
|
-
|
|
240
|
+
associated_element_qn = attributes.get('Associated Element', {}).get('qualified_name', None)
|
|
241
|
+
|
|
242
|
+
if journal_exists is False:
|
|
243
|
+
qualified_name = None
|
|
244
|
+
journal_qn = None
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
if journal_name and note_entry:
|
|
248
|
+
valid = True
|
|
249
|
+
else:
|
|
250
|
+
valid = False
|
|
234
251
|
#
|
|
235
252
|
|
|
236
253
|
if directive == "display":
|
|
@@ -244,71 +261,29 @@ def process_upsert_note_log_command(egeria_client: EgeriaTech, txt: str, directi
|
|
|
244
261
|
|
|
245
262
|
elif directive == "process":
|
|
246
263
|
try:
|
|
247
|
-
obj = "NoteLog"
|
|
248
|
-
|
|
249
|
-
# Set the property body for a glossary collection
|
|
250
|
-
#
|
|
251
|
-
prop_body = set_element_prop_body(obj, qualified_name, attributes)
|
|
252
264
|
|
|
253
|
-
if object_action == "
|
|
254
|
-
if
|
|
255
|
-
msg =
|
|
256
|
-
f"{object_action}\n")
|
|
257
|
-
logger.error(msg)
|
|
258
|
-
return update_a_command(txt, object_action, object_type, qualified_name, guid)
|
|
259
|
-
elif not valid:
|
|
260
|
-
msg = (" The input data is invalid and cannot be processed. \nPlease review")
|
|
265
|
+
if object_action == "Create":
|
|
266
|
+
if valid is False:
|
|
267
|
+
msg = "Journal name or Journal entry are missing."
|
|
261
268
|
logger.error(msg)
|
|
269
|
+
print(msg)
|
|
262
270
|
print(Markdown(f"==> Validation of {command} failed!!\n"))
|
|
263
|
-
print(Markdown(msg))
|
|
264
|
-
return None
|
|
265
|
-
else:
|
|
266
|
-
print(Markdown(
|
|
267
|
-
f"==> Validation of {command} completed successfully! Proceeding to apply the changes.\n"))
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
body = set_update_body(obj, attributes)
|
|
271
|
-
body['properties'] = prop_body
|
|
272
|
-
|
|
273
|
-
egeria_client.update_note_log(associated_element_guid, body)
|
|
274
|
-
|
|
275
|
-
logger.success(f"Updated {object_type} `{display_name}` with GUID {guid}\n\n___")
|
|
276
|
-
update_element_dictionary(qualified_name, {
|
|
277
|
-
'guid': guid, 'display_name': display_name
|
|
278
|
-
})
|
|
279
|
-
return egeria_client.get_note_logs_by_name(filter = qualified_name, element_type="NoteLog",
|
|
280
|
-
output_format='MD', report_spec = "NoteLog-DrE")
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
elif object_action == "Create":
|
|
284
|
-
if valid is False and exists:
|
|
285
|
-
msg = (f"NoteLog `{display_name}` already exists and result document updated changing "
|
|
286
|
-
f"`Create` to `Update` in processed output\n\n___")
|
|
287
|
-
logger.error(msg)
|
|
288
|
-
return update_a_command(txt, object_action, object_type, qualified_name, guid)
|
|
289
|
-
elif not valid:
|
|
290
|
-
msg = ("The input data is invalid and cannot be processed. \nPlease review")
|
|
291
|
-
logger.error(msg)
|
|
292
|
-
print(Markdown(f"==> Validation of {command} failed!!\n"))
|
|
293
|
-
print(Markdown(msg))
|
|
294
271
|
return None
|
|
295
272
|
|
|
296
273
|
else:
|
|
297
|
-
body = set_create_body(object_type,attributes)
|
|
298
274
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
})
|
|
306
|
-
msg = f"Created Element `{display_name}` with GUID {guid}\n\n___"
|
|
275
|
+
note_guid = egeria_client.add_journal_entry(note_log_qn = journal_qn,
|
|
276
|
+
element_qn = associated_element_qn,
|
|
277
|
+
note_log_display_name = journal_name,
|
|
278
|
+
note_entry = note_entry )
|
|
279
|
+
if note_guid:
|
|
280
|
+
msg = f"Created entry in `{journal_name}` with GUID {note_guid}\n\n___"
|
|
307
281
|
logger.success(msg)
|
|
308
|
-
|
|
309
|
-
|
|
282
|
+
print(Markdown(msg))
|
|
283
|
+
return egeria_client.get_note_by_guid(note_guid,
|
|
284
|
+
output_format='MD', report_spec = "Journal-Entry-DrE")
|
|
310
285
|
else:
|
|
311
|
-
msg = f"Failed to create
|
|
286
|
+
msg = f"Failed to create entry for `{journal_name}`\n\n___"
|
|
312
287
|
logger.error(msg)
|
|
313
288
|
return None
|
|
314
289
|
|
|
@@ -572,8 +572,8 @@ def add_note_in_dr_e(client: Client2, qualified_name: str, display_name: str, jo
|
|
|
572
572
|
note_log_qn = f"{qualified_name}-NoteLog"
|
|
573
573
|
note_log_display_name = f"{display_name}-NoteLog"
|
|
574
574
|
note_display_name = f"{qualified_name}-Journal-Entry-{datetime.now().strftime('%Y-%m-%d %H:%M')}"
|
|
575
|
-
journal_entry_guid = client.add_journal_entry(note_log_qn, qualified_name, note_log_display_name,
|
|
576
|
-
|
|
575
|
+
journal_entry_guid = client.add_journal_entry(note_log_qn, qualified_name, note_log_display_name,
|
|
576
|
+
note_display_name, journal_entry)
|
|
577
577
|
logger.info(f"Added journal entry `{journal_entry_guid}` to `{qualified_name}`")
|
|
578
578
|
return journal_entry_guid
|
|
579
579
|
else:
|
|
@@ -142,17 +142,21 @@ def extract_attribute(text: str, labels: List[str]) -> Optional[str]:
|
|
|
142
142
|
Returns:
|
|
143
143
|
The cleaned value of the attribute, or None if not found.
|
|
144
144
|
"""
|
|
145
|
+
|
|
146
|
+
|
|
145
147
|
for label in labels:
|
|
146
|
-
# Construct pattern for the current label
|
|
147
|
-
pattern = rf"## {re.escape(label)}\n(.*?)(
|
|
148
|
+
# Construct pattern for the current label - stops at next ##, ___ separator, or end of text
|
|
149
|
+
pattern = rf"## {re.escape(label)}\n(.*?)(?=^##|^_{3,}|\Z)"
|
|
148
150
|
match = re.search(pattern, text, re.DOTALL | re.MULTILINE)
|
|
149
151
|
if match:
|
|
150
152
|
# Extract matched text
|
|
151
153
|
extracted_text = match.group(1)
|
|
152
154
|
|
|
153
|
-
# Remove lines starting with '>'
|
|
154
|
-
filtered_lines = [
|
|
155
|
-
|
|
155
|
+
# Remove lines starting with '>' and lines that are only underscores/whitespace
|
|
156
|
+
filtered_lines = [
|
|
157
|
+
line for line in extracted_text.splitlines()
|
|
158
|
+
if not line.lstrip().startswith(">") and not re.match(r'^\s*_+\s*$', line)
|
|
159
|
+
]
|
|
156
160
|
# Join the lines back, preserving single newlines
|
|
157
161
|
cleaned_text = "\n".join(filtered_lines).strip()
|
|
158
162
|
|
|
@@ -6,10 +6,12 @@ import json
|
|
|
6
6
|
import os
|
|
7
7
|
|
|
8
8
|
import inflect
|
|
9
|
+
from loguru import logger
|
|
9
10
|
from rich.markdown import Markdown
|
|
10
11
|
|
|
11
12
|
from md_processing.md_processing_utils.message_constants import ERROR
|
|
12
13
|
from pyegeria._globals import DEBUG_LEVEL
|
|
14
|
+
from pyegeria.logging_configuration import config_logging
|
|
13
15
|
|
|
14
16
|
inflect_engine = inflect.engine()
|
|
15
17
|
|
|
@@ -167,7 +169,7 @@ COLLECTION_CREATE = ["Create Collection", "Update Collection", "Create Digital P
|
|
|
167
169
|
"Update Digital Product Catalog",
|
|
168
170
|
"Create Root Collection", "Update Root Collection", "Create Folder", "Update Folder",
|
|
169
171
|
]
|
|
170
|
-
FEEDBACK_COMMANDS = ["Create Comment", "Update Comment", "Create
|
|
172
|
+
FEEDBACK_COMMANDS = ["Create Comment", "Update Comment", "Create Journal Entry",
|
|
171
173
|
"Create Informal Tag", "Update Informal Tag", "Tag Element"]
|
|
172
174
|
|
|
173
175
|
command_list = ["Provenance", "Create Glossary", "Update Glossary", "Create Term", "Update Term", "List Terms",
|
|
@@ -263,9 +265,10 @@ command_seperator = Markdown("\n---\n")
|
|
|
263
265
|
EXISTS_REQUIRED = "Exists Required"
|
|
264
266
|
COMMAND_DEFINITIONS = {}
|
|
265
267
|
|
|
268
|
+
config_logging()
|
|
269
|
+
logger.enable("pyegeria")
|
|
266
270
|
debug_level = DEBUG_LEVEL
|
|
267
271
|
|
|
268
|
-
|
|
269
272
|
# def load_commands(filename: str) -> None:
|
|
270
273
|
# global COMMAND_DEFINITIONS
|
|
271
274
|
#
|
|
@@ -288,7 +291,8 @@ def load_commands(filename: str) -> None:
|
|
|
288
291
|
# Validate JSON before attempting to load
|
|
289
292
|
try:
|
|
290
293
|
COMMAND_DEFINITIONS = json.loads(config_str)
|
|
291
|
-
|
|
294
|
+
msg = f"Successfully loaded {filename}"
|
|
295
|
+
logger.info(msg)
|
|
292
296
|
except json.JSONDecodeError as json_err:
|
|
293
297
|
# Provide detailed error information
|
|
294
298
|
error_line = json_err.lineno
|
pyegeria/_client_new.py
CHANGED
|
@@ -21,7 +21,7 @@ from pydantic import TypeAdapter
|
|
|
21
21
|
|
|
22
22
|
from pyegeria._base_client import BaseClient
|
|
23
23
|
from pyegeria._exceptions_new import (
|
|
24
|
-
PyegeriaConnectionException, PyegeriaInvalidParameterException, PyegeriaException
|
|
24
|
+
PyegeriaConnectionException, PyegeriaInvalidParameterException, PyegeriaException, PyegeriaErrorCode
|
|
25
25
|
)
|
|
26
26
|
from pyegeria._globals import max_paging_size, NO_ELEMENTS_FOUND, default_time_out, COMMENT_TYPES
|
|
27
27
|
from pyegeria.base_report_formats import get_report_spec_match
|
|
@@ -1317,7 +1317,6 @@ class Client2(BaseClient):
|
|
|
1317
1317
|
|
|
1318
1318
|
def remove_comment_from_element(
|
|
1319
1319
|
self,
|
|
1320
|
-
element_guid: str,
|
|
1321
1320
|
comment_guid: str,
|
|
1322
1321
|
body: dict | DeleteElementRequestBody = None,
|
|
1323
1322
|
cascade_delete: bool = False,
|
|
@@ -1330,8 +1329,6 @@ class Client2(BaseClient):
|
|
|
1330
1329
|
|
|
1331
1330
|
Parameters
|
|
1332
1331
|
----------
|
|
1333
|
-
element_guid: str
|
|
1334
|
-
- unique id for the element
|
|
1335
1332
|
comment_guid: str
|
|
1336
1333
|
- unique id for the comment object
|
|
1337
1334
|
body: dict | DeleteElementRequestBody, optional
|
|
@@ -1349,7 +1346,7 @@ class Client2(BaseClient):
|
|
|
1349
1346
|
"""
|
|
1350
1347
|
loop = asyncio.get_event_loop()
|
|
1351
1348
|
loop.run_until_complete(
|
|
1352
|
-
self.
|
|
1349
|
+
self._async_remove_comment_from_element(comment_guid, body, cascade_delete=cascade_delete)
|
|
1353
1350
|
)
|
|
1354
1351
|
|
|
1355
1352
|
async def _async_get_comment_by_guid(
|
|
@@ -1794,6 +1791,7 @@ class Client2(BaseClient):
|
|
|
1794
1791
|
"class": "NewAttachmentRequestBody",
|
|
1795
1792
|
"properties": {
|
|
1796
1793
|
"class": "NoteLogProperties",
|
|
1794
|
+
"typeName": "NoteLog",
|
|
1797
1795
|
"displayName": display_name,
|
|
1798
1796
|
"qualifiedName": self.make_feedback_qn("NoteLog", element_guid, display_name),
|
|
1799
1797
|
"description": description,
|
|
@@ -1804,6 +1802,7 @@ class Client2(BaseClient):
|
|
|
1804
1802
|
"class": "NewAElementRequestBody",
|
|
1805
1803
|
"properties": {
|
|
1806
1804
|
"class": "NoteLogProperties",
|
|
1805
|
+
"typeName": "NoteLog",
|
|
1807
1806
|
"displayName": display_name,
|
|
1808
1807
|
"qualifiedName": self.make_feedback_qn("NoteLog", element_guid, display_name),
|
|
1809
1808
|
"description": description,
|
|
@@ -1817,7 +1816,7 @@ class Client2(BaseClient):
|
|
|
1817
1816
|
if element_guid:
|
|
1818
1817
|
url = f"{self.command_root}feedback-manager/elements/{element_guid}/note-logs"
|
|
1819
1818
|
else:
|
|
1820
|
-
url = f"{self.command_root}feedback-manager/
|
|
1819
|
+
url = f"{self.command_root}feedback-manager/note-logs"
|
|
1821
1820
|
response = await self._async_make_request("POST", url, body_slimmer(body))
|
|
1822
1821
|
return response.json()
|
|
1823
1822
|
|
|
@@ -2296,7 +2295,7 @@ class Client2(BaseClient):
|
|
|
2296
2295
|
"""
|
|
2297
2296
|
|
|
2298
2297
|
url = f"{self.command_root}feedback-manager/note-logs/by-name"
|
|
2299
|
-
response = await self._async_get_name_request(url, _type=element_type,
|
|
2298
|
+
response = await self._async_get_name_request(url, _type=element_type, filter=filter,
|
|
2300
2299
|
_gen_output=self._generate_feedback_output, start_from=start_from,
|
|
2301
2300
|
page_size=page_size, output_format=output_format,
|
|
2302
2301
|
report_spec=report_spec,
|
|
@@ -2438,7 +2437,7 @@ class Client2(BaseClient):
|
|
|
2438
2437
|
|
|
2439
2438
|
@dynamic_catch
|
|
2440
2439
|
async def _async_create_note(self, note_log_guid: str, display_name: str = None, description: str = None,
|
|
2441
|
-
body: dict | NewElementRequestBody = None) -> str:
|
|
2440
|
+
associated_element: str = None, body: dict | NewElementRequestBody = None) -> str:
|
|
2442
2441
|
"""
|
|
2443
2442
|
Creates a new note for a note log and returns the unique identifier for it. Async version.
|
|
2444
2443
|
|
|
@@ -2450,6 +2449,8 @@ class Client2(BaseClient):
|
|
|
2450
2449
|
- optional display name for the note
|
|
2451
2450
|
description
|
|
2452
2451
|
- optional description for the note
|
|
2452
|
+
associated_element: str, default is None
|
|
2453
|
+
- guid of the element to associate with the note - if provided, the note will be anchored to this element.
|
|
2453
2454
|
body
|
|
2454
2455
|
- optional body for the note
|
|
2455
2456
|
|
|
@@ -2501,10 +2502,11 @@ class Client2(BaseClient):
|
|
|
2501
2502
|
}
|
|
2502
2503
|
|
|
2503
2504
|
"""
|
|
2505
|
+
|
|
2504
2506
|
if body is None and display_name:
|
|
2505
2507
|
body = {
|
|
2506
2508
|
"class": "NewElementRequestBody",
|
|
2507
|
-
"anchorGUID": note_log_guid,
|
|
2509
|
+
"anchorGUID": associated_element if associated_element else note_log_guid,
|
|
2508
2510
|
"isOwnAnchor": False,
|
|
2509
2511
|
"parentGUID": note_log_guid,
|
|
2510
2512
|
"parentRelationshipTypeName": "AttachedNoteLogEntry",
|
|
@@ -2602,8 +2604,10 @@ class Client2(BaseClient):
|
|
|
2602
2604
|
return response
|
|
2603
2605
|
|
|
2604
2606
|
@dynamic_catch
|
|
2605
|
-
async def _async_add_journal_entry(self, note_log_qn: str = None, element_qn: str = None,
|
|
2606
|
-
|
|
2607
|
+
async def _async_add_journal_entry(self, note_log_qn: str = None, element_qn: str = None,
|
|
2608
|
+
note_log_display_name: str = None, journal_entry_display_name: str = None,
|
|
2609
|
+
note_entry: str = None,
|
|
2610
|
+
body: dict | NewElementRequestBody = None) -> str:
|
|
2607
2611
|
"""
|
|
2608
2612
|
Creates a new journal entry for a note log and returns the unique identifier for it. The note_log will be
|
|
2609
2613
|
created if it does not exist. Async version.
|
|
@@ -2619,7 +2623,7 @@ class Client2(BaseClient):
|
|
|
2619
2623
|
- optional note log display name
|
|
2620
2624
|
journal_entry_display_name: str = None
|
|
2621
2625
|
- optional journal entry display name
|
|
2622
|
-
|
|
2626
|
+
note_entry: str = None
|
|
2623
2627
|
- the journal entry text
|
|
2624
2628
|
|
|
2625
2629
|
body
|
|
@@ -2683,24 +2687,29 @@ class Client2(BaseClient):
|
|
|
2683
2687
|
if note_log_guid is None or note_log_guid == NO_ELEMENTS_FOUND:
|
|
2684
2688
|
if element_qn is None:
|
|
2685
2689
|
if note_log_display_name is None:
|
|
2686
|
-
note_log_display_name = f"
|
|
2690
|
+
note_log_display_name = f"NoteLog-{datetime.now().strftime('%Y-%m-%d %H:%M')}"
|
|
2687
2691
|
|
|
2688
2692
|
else:
|
|
2689
2693
|
element_guid = await self._async_get_guid_for_name(element_qn, ["qualifiedName"])
|
|
2694
|
+
if element_guid is None or element_guid == NO_ELEMENTS_FOUND:
|
|
2695
|
+
context = { "reason" : "The specified associated element was not found"}
|
|
2696
|
+
raise PyegeriaException(error_code = PyegeriaErrorCode.VALIDATION_ERROR, context = context)
|
|
2690
2697
|
|
|
2691
2698
|
note_log = await self._async_create_note_log(element_guid = element_guid, display_name = note_log_display_name)
|
|
2692
2699
|
note_log_guid = note_log["guid"]
|
|
2693
2700
|
|
|
2694
2701
|
# Create the Journal Entry (Note)
|
|
2702
|
+
if journal_entry_display_name is None:
|
|
2703
|
+
journal_entry_display_name = f"Note-{datetime.now().strftime('%Y-%m-%d %H:%M')}"
|
|
2695
2704
|
journal_entry_guid = await self._async_create_note(note_log_guid, journal_entry_display_name,
|
|
2696
|
-
|
|
2705
|
+
note_entry, body)
|
|
2697
2706
|
|
|
2698
2707
|
return journal_entry_guid
|
|
2699
2708
|
|
|
2700
2709
|
@dynamic_catch
|
|
2701
2710
|
def add_journal_entry(self, note_log_qn: str = None, element_qn: str = None,
|
|
2702
2711
|
note_log_display_name: str = None, journal_entry_display_name: str = None,
|
|
2703
|
-
|
|
2712
|
+
note_entry: str = None,
|
|
2704
2713
|
body: dict | NewElementRequestBody = None) -> str:
|
|
2705
2714
|
"""
|
|
2706
2715
|
Creates a new journal entry for a note log and returns the unique identifier for it. The note_log will be
|
|
@@ -2717,7 +2726,7 @@ class Client2(BaseClient):
|
|
|
2717
2726
|
- optional note log display name
|
|
2718
2727
|
journal_entry_display_name: str = None
|
|
2719
2728
|
- optional journal entry display name
|
|
2720
|
-
|
|
2729
|
+
note_entry: str = None
|
|
2721
2730
|
- the journal entry text
|
|
2722
2731
|
|
|
2723
2732
|
body
|
|
@@ -2773,7 +2782,7 @@ class Client2(BaseClient):
|
|
|
2773
2782
|
"""
|
|
2774
2783
|
loop = asyncio.get_event_loop()
|
|
2775
2784
|
response = loop.run_until_complete(
|
|
2776
|
-
self._async_add_journal_entry(note_log_qn, element_qn, note_log_display_name, journal_entry_display_name,
|
|
2785
|
+
self._async_add_journal_entry(note_log_qn, element_qn, note_log_display_name, journal_entry_display_name, note_entry, body)
|
|
2777
2786
|
)
|
|
2778
2787
|
return response
|
|
2779
2788
|
|
|
@@ -3563,9 +3572,9 @@ class Client2(BaseClient):
|
|
|
3563
3572
|
|
|
3564
3573
|
url = f"{self.command_root}feedback-manager/tags/by-name"
|
|
3565
3574
|
|
|
3566
|
-
response = await self._async_get_name_request(url,
|
|
3567
|
-
|
|
3568
|
-
|
|
3575
|
+
response = await self._async_get_name_request(url, self._generate_feedback_output, tag_name,
|
|
3576
|
+
None,start_from, page_size, output_format, report_spec
|
|
3577
|
+
)
|
|
3569
3578
|
return response
|
|
3570
3579
|
|
|
3571
3580
|
@dynamic_catch
|
|
@@ -4714,6 +4723,11 @@ class Client2(BaseClient):
|
|
|
4714
4723
|
extra = self._extract_element_properties_for_keyword(element, columns_struct)
|
|
4715
4724
|
col_data = overlay_additional_values(col_data, extra)
|
|
4716
4725
|
|
|
4726
|
+
note_logs = element.get("presentInNoteLogs", [])
|
|
4727
|
+
if note_logs != []:
|
|
4728
|
+
extra = self._extract_element_properties_for_notes( element, columns_struct)
|
|
4729
|
+
col_data = overlay_additional_values(col_data, extra)
|
|
4730
|
+
|
|
4717
4731
|
return col_data
|
|
4718
4732
|
|
|
4719
4733
|
@dynamic_catch
|
|
@@ -5667,3 +5681,46 @@ class Client2(BaseClient):
|
|
|
5667
5681
|
get_additional_props_func=None,
|
|
5668
5682
|
columns_struct=output_formats,
|
|
5669
5683
|
)
|
|
5684
|
+
|
|
5685
|
+
def _extract_element_properties_for_keyword(self, element: dict, columns_struct: dict) -> dict:
|
|
5686
|
+
keyword_elements = None
|
|
5687
|
+
keyword_elements = element["keywordElements"]
|
|
5688
|
+
out_body = {}
|
|
5689
|
+
keyword = element["properties"].get('keyword', '')
|
|
5690
|
+
for el in keyword_elements:
|
|
5691
|
+
element = el.get("relatedElement", {})
|
|
5692
|
+
element_guid = element['elementHeader']['guid']
|
|
5693
|
+
element_type = element['elementHeader']['type']['typeName']
|
|
5694
|
+
element_display_name = element['properties'].get('displayName',"")
|
|
5695
|
+
element_description = element['properties'].get('description',"")
|
|
5696
|
+
element_category = element['properties'].get('category',"")
|
|
5697
|
+
out_body = {
|
|
5698
|
+
"element_display_name": element_display_name,
|
|
5699
|
+
"element_description": element_description,
|
|
5700
|
+
"element_category": element_category,
|
|
5701
|
+
"element_type": element_type,
|
|
5702
|
+
"element_guid": element_guid,
|
|
5703
|
+
"keyword": keyword
|
|
5704
|
+
}
|
|
5705
|
+
return out_body
|
|
5706
|
+
|
|
5707
|
+
def _extract_element_properties_for_notes(self, element: dict, columns_struct: dict):
|
|
5708
|
+
note_log_qualified_name = None
|
|
5709
|
+
note_log_guid = None
|
|
5710
|
+
note_log_display_name = None
|
|
5711
|
+
note_log_description = None
|
|
5712
|
+
|
|
5713
|
+
note_log_el = element.get("presentInNoteLogs",{})[0].get("relatedElement",None)
|
|
5714
|
+
if note_log_el:
|
|
5715
|
+
note_log_guid = note_log_el['elementHeader']['guid']
|
|
5716
|
+
note_log_display_name = note_log_el['properties'].get('displayName',"")
|
|
5717
|
+
note_log_qualified_name = note_log_el['properties']['qualifiedName']
|
|
5718
|
+
note_log_description = note_log_el['properties'].get('description',"")
|
|
5719
|
+
|
|
5720
|
+
return {
|
|
5721
|
+
"note_log_name": note_log_display_name,
|
|
5722
|
+
"note_log_description": note_log_description,
|
|
5723
|
+
"note_log_qualified_name": note_log_qualified_name,
|
|
5724
|
+
"note_log_guid": note_log_guid,
|
|
5725
|
+
}
|
|
5726
|
+
|
pyegeria/_exceptions_new.py
CHANGED
|
@@ -391,17 +391,25 @@ def print_basic_exception(e: PyegeriaException):
|
|
|
391
391
|
table.add_column("Item", justify="left", width=80)
|
|
392
392
|
|
|
393
393
|
if isinstance(e, PyegeriaException):
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
394
|
+
if e.context:
|
|
395
|
+
table.add_row("Context", e.context.get('reason',""), style = "bold yellow")
|
|
396
|
+
if e.response:
|
|
397
|
+
table.add_row("HTTP Code", str(e.response_code))
|
|
398
|
+
table.add_row("HTTP Reason", str(http_reason))
|
|
399
|
+
table.add_row("Egeria Code", str(related_code))
|
|
400
|
+
table.add_row("Caller Method", e.context.get("caller method", "---")) if e.context else ""
|
|
401
|
+
table.add_row("Request URL", str(e.response_url))
|
|
402
|
+
if related_response:
|
|
403
|
+
if isinstance(related_response, dict):
|
|
404
|
+
table.add_row("Egeria Message",
|
|
405
|
+
format_dict_to_string(related_response.get('exceptionErrorMessage',"")))
|
|
406
|
+
elif isinstance(related_response, str):
|
|
407
|
+
table.add_row(related_response,)
|
|
408
|
+
|
|
409
|
+
table.add_row("Egeria User Action",
|
|
410
|
+
format_dict_to_string(related_response.get('exceptionUserAction',"")) if isinstance(related_response,dict) else related_response)
|
|
411
|
+
|
|
412
|
+
exception_msg_id = related_response.get("exceptionErrorMessageId", None) if isinstance(related_response,dict) else related_response
|
|
405
413
|
table.add_row("Pyegeria Exception", exception_msg_id)
|
|
406
414
|
table.add_row("Pyegeria Message", e.message)
|
|
407
415
|
console.print(table)
|
pyegeria/_globals.py
CHANGED
|
@@ -49,96 +49,105 @@ NO_COLLECTION_FOUND = "No collection found"
|
|
|
49
49
|
NO_GUID_RETURNED = "No guid returned"
|
|
50
50
|
NO_MEMBERS_FOUND = "No members found"
|
|
51
51
|
|
|
52
|
+
MERMAID_GRAPHS = ["anchorMermaidGraph", "informationSupplyChainMermaidGraph","fieldLevelLineageGraph",
|
|
53
|
+
"actionMermaidGraph", "localLineageGraph", "edgeMermaidGraph", "iscImplementationMermaidGraph",
|
|
54
|
+
"specificationMermaidGraph", "solutionBlueprintMermaidGraph","mermaidGraph",
|
|
55
|
+
"solutionSubcomponentMermaidGraph"]
|
|
56
|
+
MERMAID_GRAPH_TITLES = ["Anchor Mermaid Graph", "Information Supply Chain Mermaid Graph","Field Level Lineage Graph",
|
|
57
|
+
"Action Mermaid Graph", "Local Lineage Graph", "Edge Mermaid Graph", "ISC Implementation Mermaid Graph",
|
|
58
|
+
"Specification Mermaid Graph", "Solution Blueprint Mermaid Graph","Mermaid Graph",
|
|
59
|
+
"Solution Subcomponent Mermaid Graph"]
|
|
60
|
+
|
|
52
61
|
#
|
|
53
|
-
TEMPLATE_GUIDS['File System Directory'] = 'c353fd5d-9523-4a5e-a5e2-723ae490fe54'
|
|
54
|
-
INTEGRATION_GUIDS['GeneralFilesMonitor'] = '1b98cdac-dd0a-4621-93db-99ef5a1098bc'
|
|
55
|
-
INTEGRATION_GUIDS['OpenLineageFilePublisher'] = '6271b678-7d22-4cdf-87b1-45b366beaf4e'
|
|
56
|
-
INTEGRATION_GUIDS['ContentPacksMonitor'] = '6bb2181e-7724-4515-ba3c-877cded55980'
|
|
57
|
-
INTEGRATION_GUIDS['HarvestActivity'] = '856501d9-ec29-4e67-9cd7-120f53710ffa'
|
|
58
|
-
INTEGRATION_GUIDS['SampleDataFilesMonitor'] = 'cd6479e1-2fe7-4426-b358-8a0cf70be117'
|
|
59
|
-
TEMPLATE_GUIDS['CSV Data File'] = '13770f93-13c8-42be-9bb8-e0b1b1e52b1f'
|
|
60
|
-
TEMPLATE_GUIDS['Keystore File'] = 'fbcfcc0c-1652-421f-b49b-c3e1c108768f'
|
|
61
|
-
TEMPLATE_GUIDS['Unity Catalog Registered Model Version'] = '1364bfe7-8295-4e99-9243-8840aeac4cf1'
|
|
62
|
-
TEMPLATE_GUIDS['Unity Catalog Server'] = 'dcca9788-b30f-4007-b1ac-ec634aff6879'
|
|
63
|
-
INTEGRATION_GUIDS['UnityCatalogInsideCatalog'] = '74dde22f-2249-4ea3-af2b-b39e73f79b81'
|
|
64
|
-
INTEGRATION_GUIDS['UnityCatalogServer'] = '06d068d9-9e08-4e67-8c59-073bbf1013af'
|
|
65
|
-
TEMPLATE_GUIDS['Databricks Unity Catalog Server'] = '3f7f62f6-4abc-424e-9f92-523306e7d5d5'
|
|
66
|
-
INTEGRATION_GUIDS['JDBC'] = '70dcd0b7-9f06-48ad-ad44-ae4d7a7762aa'
|
|
67
|
-
TEMPLATE_GUIDS['Data File'] = '66d8dda9-00cf-4e59-938c-4b0583596b1e'
|
|
68
|
-
TEMPLATE_GUIDS['Unity Catalog Catalog'] = '5ee006aa-a6d6-411b-9b8d-5f720c079cae'
|
|
69
|
-
TEMPLATE_GUIDS['View Server'] = 'fd61ca01-390d-4aa2-a55d-426826aa4e1b'
|
|
70
|
-
TEMPLATE_GUIDS['Archive File'] = '7578e504-d00f-406d-a194-3fc0a351cdf9'
|
|
71
|
-
TEMPLATE_GUIDS['Executable File'] = '3d99a163-7a13-4576-a212-784010a8302a'
|
|
72
|
-
INTEGRATION_GUIDS['OpenLineageAPIPublisher'] = '2156bc98-973a-4859-908d-4ccc96f53cc5'
|
|
73
|
-
TEMPLATE_GUIDS['PostgreSQL Relational Database'] = '3d398b3f-7ae6-4713-952a-409f3dea8520'
|
|
74
|
-
INTEGRATION_GUIDS['PostgreSQLDatabase'] = 'ef301220-7dfe-4c6c-bb9d-8f92d9f63823'
|
|
75
|
-
TEMPLATE_GUIDS['Unity Catalog Table'] = '6cc1e5f5-4c1e-4290-a80e-e06643ffb13d'
|
|
76
|
-
TEMPLATE_GUIDS['JSON Data File'] = 'c4836635-7e9e-446a-83b5-15e206b1aff3'
|
|
77
|
-
TEMPLATE_GUIDS['File System'] = '522f228c-097c-4f90-9efc-26c1f2696f87'
|
|
78
|
-
TEMPLATE_GUIDS['Source Code File'] = '9c7013ef-f29b-4b01-a8ea-5ea14f64c67a'
|
|
79
|
-
TEMPLATE_GUIDS['Program File'] = '32d27e9c-1fdf-455a-ad2a-42b4d7d99108'
|
|
80
|
-
TEMPLATE_GUIDS['Apple MacBook Pro'] = '32a9fd56-85c9-47fe-a211-9da3871bf4da'
|
|
81
|
-
TEMPLATE_GUIDS['Build Instruction File'] = 'fbb2fa2e-8bcb-402e-9be7-5c6db9f2c504'
|
|
82
|
-
TEMPLATE_GUIDS['Spreadsheet Data File'] = 'e4fabff5-2ba9-4050-9076-6ed917970b4c'
|
|
83
|
-
TEMPLATE_GUIDS['UNIX File System'] = '27117270-8667-41d0-a99a-9118f9b60199'
|
|
84
|
-
TEMPLATE_GUIDS['Video Data File'] = '93b2b722-ec0f-4da4-960a-b8d4922f8bf5'
|
|
85
|
-
TEMPLATE_GUIDS['JDBC Endpoint'] = '3d79ce50-1887-4627-ad71-ba4649aba2bc'
|
|
86
|
-
TEMPLATE_GUIDS['Unity Catalog Function'] = 'a490ba65-6104-4213-9be9-524e16fed8aa'
|
|
87
|
-
TEMPLATE_GUIDS['Unity Catalog Registered Model'] = '0d762ec5-c1f5-4364-aa64-e7e00d27f837'
|
|
88
|
-
TEMPLATE_GUIDS['PostgreSQL Relational Database Schema'] = '82a5417c-d882-4271-8444-4c6a996a8bfc'
|
|
89
|
-
INTEGRATION_GUIDS['HarvestSurveys'] = 'fae162c3-2bfd-467f-9c47-2e3b63a655de'
|
|
90
|
-
INTEGRATION_GUIDS['HarvestActivity'] = '856501d9-ec29-4e67-9cd7-120f53710ffa'
|
|
91
|
-
INTEGRATION_GUIDS['HarvestOpenMetadata'] = 'f8bf326b-d613-4ece-a12e-a1423bc272d7'
|
|
92
|
-
TEMPLATE_GUIDS['PostgreSQL Server'] = '542134e6-b9ce-4dce-8aef-22e8daf34fdb'
|
|
93
|
-
INTEGRATION_GUIDS['PostgreSQLServer'] = '36f69fd0-54ba-4f59-8a44-11ccf2687a34'
|
|
94
|
-
TEMPLATE_GUIDS['Audio Data File'] = '39b4b670-7f15-4744-a5ba-62e8edafbcee'
|
|
95
|
-
TEMPLATE_GUIDS['Document File'] = 'eb6f728d-fa54-4350-9807-1199cbf96851'
|
|
96
|
-
TEMPLATE_GUIDS['Engine Host'] = '1764a891-4234-45f1-8cc3-536af40c790d'
|
|
97
|
-
TEMPLATE_GUIDS['Integration Daemon'] = '6b3516f0-dd13-4786-9601-07215f995197'
|
|
98
|
-
TEMPLATE_GUIDS['XML Data File'] = 'ea67ae71-c674-473e-b38b-689879d2a7d9'
|
|
99
|
-
TEMPLATE_GUIDS['Avro Data File'] = '9f5be428-058e-41dd-b506-3a222283b579'
|
|
100
|
-
TEMPLATE_GUIDS['REST API Endpoint'] = '9ea4bff4-d193-492f-bcad-6e68c07c6f9e'
|
|
101
|
-
TEMPLATE_GUIDS['Unity Catalog Schema'] = '5bf92b0f-3970-41ea-b0a3-aacfbf6fd92e'
|
|
102
|
-
TEMPLATE_GUIDS['Unity Catalog Volume'] = '92d2d2dc-0798-41f0-9512-b10548d312b7'
|
|
103
|
-
TEMPLATE_GUIDS['Parquet Data File'] = '7f6cd744-79c3-4d25-a056-eeb1a91574c3'
|
|
104
|
-
TEMPLATE_GUIDS['File'] = 'ae3067c7-cc72-4a18-88e1-746803c2c86f'
|
|
105
|
-
TEMPLATE_GUIDS['3D Image Data File'] = '0059ea2b-6292-4cac-aa6f-a80a605f1114'
|
|
106
|
-
TEMPLATE_GUIDS['YAML File'] = '2221855b-2b64-4b45-a2ee-c40adc5e2a64'
|
|
107
|
-
TEMPLATE_GUIDS['Apache Kafka Topic'] = 'ea8f81c9-c59c-47de-9525-7cc59d1251e5'
|
|
108
|
-
INTEGRATION_GUIDS['OpenLineageKafkaListener'] = '980b989c-de78-4e6a-a58d-51049d7381bf'
|
|
109
|
-
TEMPLATE_GUIDS['Script File'] = 'dbd5e6bb-1ff8-46f4-a007-fb0485f68c92'
|
|
110
|
-
TEMPLATE_GUIDS['Apache Atlas Server'] = 'fe6dce45-a978-4417-ab55-17f05b8bcea7'
|
|
111
|
-
INTEGRATION_GUIDS['ApacheAtlasServer'] = '5721627a-2dd4-4f95-a274-6cfb128edb97'
|
|
112
|
-
TEMPLATE_GUIDS['Raster Data File'] = '47211156-f03f-4881-8526-015e695a3dac'
|
|
113
|
-
TEMPLATE_GUIDS['Metadata Access Server'] = 'bd8de890-fa79-4c24-aab8-20b41b5893dd'
|
|
114
|
-
TEMPLATE_GUIDS['Data Folder'] = '372a0379-7060-4c9d-8d84-bc709b31794c'
|
|
115
|
-
INTEGRATION_GUIDS['MaintainDataFolderLastUpdateDate'] = 'fd26f07c-ae44-4bc5-b457-37b43112224f'
|
|
116
|
-
INTEGRATION_GUIDS['OpenLineageFilePublisher'] = '6271b678-7d22-4cdf-87b1-45b366beaf4e'
|
|
117
|
-
TEMPLATE_GUIDS['Properties File'] = '3b281111-a0ef-4fc4-99e7-9a0ef84a7636'
|
|
118
|
-
TEMPLATE_GUIDS['Vector Data File'] = 'db1bec7f-55a9-40d3-91c0-a57b76d422e2'
|
|
119
|
-
TEMPLATE_GUIDS['OMAG Server Platform'] = '9b06c4dc-ddc8-47ae-b56b-28775d3a96f0'
|
|
120
|
-
INTEGRATION_GUIDS['OpenAPI'] = 'b89d9a5a-2ea6-49bc-a4fc-e7df9f3ca93e'
|
|
121
|
-
INTEGRATION_GUIDS['OMAGServerPlatform'] = 'dee84e6e-7a96-4975-86c1-152fb3ab759b'
|
|
122
|
-
TEMPLATE_GUIDS['Apache Kafka Server'] = '5e1ff810-5418-43f7-b7c4-e6e062f9aff7'
|
|
123
|
-
INTEGRATION_GUIDS['KafkaTopic'] = 'fa1f711c-0b34-4b57-8e6e-16162b132b0c'
|
|
124
|
-
INTEGRATION_GUIDS['OpenLineageAPIPublisher'] = '2156bc98-973a-4859-908d-4ccc96f53cc5'
|
|
125
|
-
INTEGRATION_GUIDS['JDBCDatabaseCataloguer'] = '70dcd0b7-9f06-48ad-ad44-ae4d7a7762aa'
|
|
126
|
-
INTEGRATION_GUIDS['ApacheKafkaCataloguer'] = 'fa1f711c-0b34-4b57-8e6e-16162b132b0c'
|
|
127
|
-
INTEGRATION_GUIDS['FilesCataloguer'] = '1b98cdac-dd0a-4621-93db-99ef5a1098bc'
|
|
128
|
-
INTEGRATION_GUIDS['UnityCatalogServerSynchronizer'] = '06d068d9-9e08-4e67-8c59-073bbf1013af'
|
|
129
|
-
INTEGRATION_GUIDS['SampleDataCataloguer'] = 'cd6479e1-2fe7-4426-b358-8a0cf70be117'
|
|
130
|
-
INTEGRATION_GUIDS['OpenLineageGovernanceActionPublisher'] = '206f8faf-04da-4b6f-8280-eeee3943afeb'
|
|
131
|
-
INTEGRATION_GUIDS['OMAGServerPlatformCataloguer'] = 'dee84e6e-7a96-4975-86c1-152fb3ab759b'
|
|
132
|
-
INTEGRATION_GUIDS['HarvestActivity'] = '856501d9-ec29-4e67-9cd7-120f53710ffa'
|
|
133
|
-
INTEGRATION_GUIDS['MaintainLastUpdateDate'] = 'fd26f07c-ae44-4bc5-b457-37b43112224f'
|
|
134
|
-
INTEGRATION_GUIDS['UnityCatalogInsideCatalogSynchronizer'] = '74dde22f-2249-4ea3-af2b-b39e73f79b81'
|
|
135
|
-
INTEGRATION_GUIDS['OpenLineageKafkaListener'] = '980b989c-de78-4e6a-a58d-51049d7381bf'
|
|
136
|
-
INTEGRATION_GUIDS['HarvestOpenMetadata'] = 'f8bf326b-d613-4ece-a12e-a1423bc272d7'
|
|
137
|
-
INTEGRATION_GUIDS['OpenAPICataloguer'] = 'b89d9a5a-2ea6-49bc-a4fc-e7df9f3ca93e'
|
|
138
|
-
INTEGRATION_GUIDS['OpenLineageFilePublisher'] = '6271b678-7d22-4cdf-87b1-45b366beaf4e'
|
|
139
|
-
INTEGRATION_GUIDS['PostgreSQLServerCataloguer'] = '36f69fd0-54ba-4f59-8a44-11ccf2687a34'
|
|
140
|
-
INTEGRATION_GUIDS['PostgreSQLDatabaseCataloguer'] = 'ef301220-7dfe-4c6c-bb9d-8f92d9f63823'
|
|
141
|
-
INTEGRATION_GUIDS['ContentPacksCataloguer'] = '6bb2181e-7724-4515-ba3c-877cded55980'
|
|
142
|
-
INTEGRATION_GUIDS['OpenLineageCataloguer'] = '3347ac71-8dd2-403a-bc16-75a71be64bd7'
|
|
143
|
-
INTEGRATION_GUIDS['ApacheAtlasExchange'] = '5721627a-2dd4-4f95-a274-6cfb128edb97'
|
|
144
|
-
INTEGRATION_GUIDS['HarvestSurveys'] = 'fae162c3-2bfd-467f-9c47-2e3b63a655de'
|
|
62
|
+
# TEMPLATE_GUIDS['File System Directory'] = 'c353fd5d-9523-4a5e-a5e2-723ae490fe54'
|
|
63
|
+
# INTEGRATION_GUIDS['GeneralFilesMonitor'] = '1b98cdac-dd0a-4621-93db-99ef5a1098bc'
|
|
64
|
+
# INTEGRATION_GUIDS['OpenLineageFilePublisher'] = '6271b678-7d22-4cdf-87b1-45b366beaf4e'
|
|
65
|
+
# INTEGRATION_GUIDS['ContentPacksMonitor'] = '6bb2181e-7724-4515-ba3c-877cded55980'
|
|
66
|
+
# INTEGRATION_GUIDS['HarvestActivity'] = '856501d9-ec29-4e67-9cd7-120f53710ffa'
|
|
67
|
+
# INTEGRATION_GUIDS['SampleDataFilesMonitor'] = 'cd6479e1-2fe7-4426-b358-8a0cf70be117'
|
|
68
|
+
# TEMPLATE_GUIDS['CSV Data File'] = '13770f93-13c8-42be-9bb8-e0b1b1e52b1f'
|
|
69
|
+
# TEMPLATE_GUIDS['Keystore File'] = 'fbcfcc0c-1652-421f-b49b-c3e1c108768f'
|
|
70
|
+
# TEMPLATE_GUIDS['Unity Catalog Registered Model Version'] = '1364bfe7-8295-4e99-9243-8840aeac4cf1'
|
|
71
|
+
# TEMPLATE_GUIDS['Unity Catalog Server'] = 'dcca9788-b30f-4007-b1ac-ec634aff6879'
|
|
72
|
+
# INTEGRATION_GUIDS['UnityCatalogInsideCatalog'] = '74dde22f-2249-4ea3-af2b-b39e73f79b81'
|
|
73
|
+
# INTEGRATION_GUIDS['UnityCatalogServer'] = '06d068d9-9e08-4e67-8c59-073bbf1013af'
|
|
74
|
+
# TEMPLATE_GUIDS['Databricks Unity Catalog Server'] = '3f7f62f6-4abc-424e-9f92-523306e7d5d5'
|
|
75
|
+
# INTEGRATION_GUIDS['JDBC'] = '70dcd0b7-9f06-48ad-ad44-ae4d7a7762aa'
|
|
76
|
+
# TEMPLATE_GUIDS['Data File'] = '66d8dda9-00cf-4e59-938c-4b0583596b1e'
|
|
77
|
+
# TEMPLATE_GUIDS['Unity Catalog Catalog'] = '5ee006aa-a6d6-411b-9b8d-5f720c079cae'
|
|
78
|
+
# TEMPLATE_GUIDS['View Server'] = 'fd61ca01-390d-4aa2-a55d-426826aa4e1b'
|
|
79
|
+
# TEMPLATE_GUIDS['Archive File'] = '7578e504-d00f-406d-a194-3fc0a351cdf9'
|
|
80
|
+
# TEMPLATE_GUIDS['Executable File'] = '3d99a163-7a13-4576-a212-784010a8302a'
|
|
81
|
+
# INTEGRATION_GUIDS['OpenLineageAPIPublisher'] = '2156bc98-973a-4859-908d-4ccc96f53cc5'
|
|
82
|
+
# TEMPLATE_GUIDS['PostgreSQL Relational Database'] = '3d398b3f-7ae6-4713-952a-409f3dea8520'
|
|
83
|
+
# INTEGRATION_GUIDS['PostgreSQLDatabase'] = 'ef301220-7dfe-4c6c-bb9d-8f92d9f63823'
|
|
84
|
+
# TEMPLATE_GUIDS['Unity Catalog Table'] = '6cc1e5f5-4c1e-4290-a80e-e06643ffb13d'
|
|
85
|
+
# TEMPLATE_GUIDS['JSON Data File'] = 'c4836635-7e9e-446a-83b5-15e206b1aff3'
|
|
86
|
+
# TEMPLATE_GUIDS['File System'] = '522f228c-097c-4f90-9efc-26c1f2696f87'
|
|
87
|
+
# TEMPLATE_GUIDS['Source Code File'] = '9c7013ef-f29b-4b01-a8ea-5ea14f64c67a'
|
|
88
|
+
# TEMPLATE_GUIDS['Program File'] = '32d27e9c-1fdf-455a-ad2a-42b4d7d99108'
|
|
89
|
+
# TEMPLATE_GUIDS['Apple MacBook Pro'] = '32a9fd56-85c9-47fe-a211-9da3871bf4da'
|
|
90
|
+
# TEMPLATE_GUIDS['Build Instruction File'] = 'fbb2fa2e-8bcb-402e-9be7-5c6db9f2c504'
|
|
91
|
+
# TEMPLATE_GUIDS['Spreadsheet Data File'] = 'e4fabff5-2ba9-4050-9076-6ed917970b4c'
|
|
92
|
+
# TEMPLATE_GUIDS['UNIX File System'] = '27117270-8667-41d0-a99a-9118f9b60199'
|
|
93
|
+
# TEMPLATE_GUIDS['Video Data File'] = '93b2b722-ec0f-4da4-960a-b8d4922f8bf5'
|
|
94
|
+
# TEMPLATE_GUIDS['JDBC Endpoint'] = '3d79ce50-1887-4627-ad71-ba4649aba2bc'
|
|
95
|
+
# TEMPLATE_GUIDS['Unity Catalog Function'] = 'a490ba65-6104-4213-9be9-524e16fed8aa'
|
|
96
|
+
# TEMPLATE_GUIDS['Unity Catalog Registered Model'] = '0d762ec5-c1f5-4364-aa64-e7e00d27f837'
|
|
97
|
+
# TEMPLATE_GUIDS['PostgreSQL Relational Database Schema'] = '82a5417c-d882-4271-8444-4c6a996a8bfc'
|
|
98
|
+
# INTEGRATION_GUIDS['HarvestSurveys'] = 'fae162c3-2bfd-467f-9c47-2e3b63a655de'
|
|
99
|
+
# INTEGRATION_GUIDS['HarvestActivity'] = '856501d9-ec29-4e67-9cd7-120f53710ffa'
|
|
100
|
+
# INTEGRATION_GUIDS['HarvestOpenMetadata'] = 'f8bf326b-d613-4ece-a12e-a1423bc272d7'
|
|
101
|
+
# TEMPLATE_GUIDS['PostgreSQL Server'] = '542134e6-b9ce-4dce-8aef-22e8daf34fdb'
|
|
102
|
+
# INTEGRATION_GUIDS['PostgreSQLServer'] = '36f69fd0-54ba-4f59-8a44-11ccf2687a34'
|
|
103
|
+
# TEMPLATE_GUIDS['Audio Data File'] = '39b4b670-7f15-4744-a5ba-62e8edafbcee'
|
|
104
|
+
# TEMPLATE_GUIDS['Document File'] = 'eb6f728d-fa54-4350-9807-1199cbf96851'
|
|
105
|
+
# TEMPLATE_GUIDS['Engine Host'] = '1764a891-4234-45f1-8cc3-536af40c790d'
|
|
106
|
+
# TEMPLATE_GUIDS['Integration Daemon'] = '6b3516f0-dd13-4786-9601-07215f995197'
|
|
107
|
+
# TEMPLATE_GUIDS['XML Data File'] = 'ea67ae71-c674-473e-b38b-689879d2a7d9'
|
|
108
|
+
# TEMPLATE_GUIDS['Avro Data File'] = '9f5be428-058e-41dd-b506-3a222283b579'
|
|
109
|
+
# TEMPLATE_GUIDS['REST API Endpoint'] = '9ea4bff4-d193-492f-bcad-6e68c07c6f9e'
|
|
110
|
+
# TEMPLATE_GUIDS['Unity Catalog Schema'] = '5bf92b0f-3970-41ea-b0a3-aacfbf6fd92e'
|
|
111
|
+
# TEMPLATE_GUIDS['Unity Catalog Volume'] = '92d2d2dc-0798-41f0-9512-b10548d312b7'
|
|
112
|
+
# TEMPLATE_GUIDS['Parquet Data File'] = '7f6cd744-79c3-4d25-a056-eeb1a91574c3'
|
|
113
|
+
# TEMPLATE_GUIDS['File'] = 'ae3067c7-cc72-4a18-88e1-746803c2c86f'
|
|
114
|
+
# TEMPLATE_GUIDS['3D Image Data File'] = '0059ea2b-6292-4cac-aa6f-a80a605f1114'
|
|
115
|
+
# TEMPLATE_GUIDS['YAML File'] = '2221855b-2b64-4b45-a2ee-c40adc5e2a64'
|
|
116
|
+
# TEMPLATE_GUIDS['Apache Kafka Topic'] = 'ea8f81c9-c59c-47de-9525-7cc59d1251e5'
|
|
117
|
+
# INTEGRATION_GUIDS['OpenLineageKafkaListener'] = '980b989c-de78-4e6a-a58d-51049d7381bf'
|
|
118
|
+
# TEMPLATE_GUIDS['Script File'] = 'dbd5e6bb-1ff8-46f4-a007-fb0485f68c92'
|
|
119
|
+
# TEMPLATE_GUIDS['Apache Atlas Server'] = 'fe6dce45-a978-4417-ab55-17f05b8bcea7'
|
|
120
|
+
# INTEGRATION_GUIDS['ApacheAtlasServer'] = '5721627a-2dd4-4f95-a274-6cfb128edb97'
|
|
121
|
+
# TEMPLATE_GUIDS['Raster Data File'] = '47211156-f03f-4881-8526-015e695a3dac'
|
|
122
|
+
# TEMPLATE_GUIDS['Metadata Access Server'] = 'bd8de890-fa79-4c24-aab8-20b41b5893dd'
|
|
123
|
+
# TEMPLATE_GUIDS['Data Folder'] = '372a0379-7060-4c9d-8d84-bc709b31794c'
|
|
124
|
+
# INTEGRATION_GUIDS['MaintainDataFolderLastUpdateDate'] = 'fd26f07c-ae44-4bc5-b457-37b43112224f'
|
|
125
|
+
# INTEGRATION_GUIDS['OpenLineageFilePublisher'] = '6271b678-7d22-4cdf-87b1-45b366beaf4e'
|
|
126
|
+
# TEMPLATE_GUIDS['Properties File'] = '3b281111-a0ef-4fc4-99e7-9a0ef84a7636'
|
|
127
|
+
# TEMPLATE_GUIDS['Vector Data File'] = 'db1bec7f-55a9-40d3-91c0-a57b76d422e2'
|
|
128
|
+
# TEMPLATE_GUIDS['OMAG Server Platform'] = '9b06c4dc-ddc8-47ae-b56b-28775d3a96f0'
|
|
129
|
+
# INTEGRATION_GUIDS['OpenAPI'] = 'b89d9a5a-2ea6-49bc-a4fc-e7df9f3ca93e'
|
|
130
|
+
# INTEGRATION_GUIDS['OMAGServerPlatform'] = 'dee84e6e-7a96-4975-86c1-152fb3ab759b'
|
|
131
|
+
# TEMPLATE_GUIDS['Apache Kafka Server'] = '5e1ff810-5418-43f7-b7c4-e6e062f9aff7'
|
|
132
|
+
# INTEGRATION_GUIDS['KafkaTopic'] = 'fa1f711c-0b34-4b57-8e6e-16162b132b0c'
|
|
133
|
+
# INTEGRATION_GUIDS['OpenLineageAPIPublisher'] = '2156bc98-973a-4859-908d-4ccc96f53cc5'
|
|
134
|
+
# INTEGRATION_GUIDS['JDBCDatabaseCataloguer'] = '70dcd0b7-9f06-48ad-ad44-ae4d7a7762aa'
|
|
135
|
+
# INTEGRATION_GUIDS['ApacheKafkaCataloguer'] = 'fa1f711c-0b34-4b57-8e6e-16162b132b0c'
|
|
136
|
+
# INTEGRATION_GUIDS['FilesCataloguer'] = '1b98cdac-dd0a-4621-93db-99ef5a1098bc'
|
|
137
|
+
# INTEGRATION_GUIDS['UnityCatalogServerSynchronizer'] = '06d068d9-9e08-4e67-8c59-073bbf1013af'
|
|
138
|
+
# INTEGRATION_GUIDS['SampleDataCataloguer'] = 'cd6479e1-2fe7-4426-b358-8a0cf70be117'
|
|
139
|
+
# INTEGRATION_GUIDS['OpenLineageGovernanceActionPublisher'] = '206f8faf-04da-4b6f-8280-eeee3943afeb'
|
|
140
|
+
# INTEGRATION_GUIDS['OMAGServerPlatformCataloguer'] = 'dee84e6e-7a96-4975-86c1-152fb3ab759b'
|
|
141
|
+
# INTEGRATION_GUIDS['HarvestActivity'] = '856501d9-ec29-4e67-9cd7-120f53710ffa'
|
|
142
|
+
# INTEGRATION_GUIDS['MaintainLastUpdateDate'] = 'fd26f07c-ae44-4bc5-b457-37b43112224f'
|
|
143
|
+
# INTEGRATION_GUIDS['UnityCatalogInsideCatalogSynchronizer'] = '74dde22f-2249-4ea3-af2b-b39e73f79b81'
|
|
144
|
+
# INTEGRATION_GUIDS['OpenLineageKafkaListener'] = '980b989c-de78-4e6a-a58d-51049d7381bf'
|
|
145
|
+
# INTEGRATION_GUIDS['HarvestOpenMetadata'] = 'f8bf326b-d613-4ece-a12e-a1423bc272d7'
|
|
146
|
+
# INTEGRATION_GUIDS['OpenAPICataloguer'] = 'b89d9a5a-2ea6-49bc-a4fc-e7df9f3ca93e'
|
|
147
|
+
# INTEGRATION_GUIDS['OpenLineageFilePublisher'] = '6271b678-7d22-4cdf-87b1-45b366beaf4e'
|
|
148
|
+
# INTEGRATION_GUIDS['PostgreSQLServerCataloguer'] = '36f69fd0-54ba-4f59-8a44-11ccf2687a34'
|
|
149
|
+
# INTEGRATION_GUIDS['PostgreSQLDatabaseCataloguer'] = 'ef301220-7dfe-4c6c-bb9d-8f92d9f63823'
|
|
150
|
+
# INTEGRATION_GUIDS['ContentPacksCataloguer'] = '6bb2181e-7724-4515-ba3c-877cded55980'
|
|
151
|
+
# INTEGRATION_GUIDS['OpenLineageCataloguer'] = '3347ac71-8dd2-403a-bc16-75a71be64bd7'
|
|
152
|
+
# INTEGRATION_GUIDS['ApacheAtlasExchange'] = '5721627a-2dd4-4f95-a274-6cfb128edb97'
|
|
153
|
+
# INTEGRATION_GUIDS['HarvestSurveys'] = 'fae162c3-2bfd-467f-9c47-2e3b63a655de'
|
pyegeria/asset_catalog_omvs.py
CHANGED
|
@@ -466,7 +466,7 @@ class AssetCatalog(Client):
|
|
|
466
466
|
f"as-graph?startFrom={start_from}&pageSize={page_size}"
|
|
467
467
|
)
|
|
468
468
|
|
|
469
|
-
response = await self._async_make_request("
|
|
469
|
+
response = await self._async_make_request("POST", url)
|
|
470
470
|
return response.json().get("assetGraph", NO_ASSETS_FOUND)
|
|
471
471
|
|
|
472
472
|
def get_asset_graph(
|
|
@@ -836,7 +836,7 @@ class AssetCatalog(Client):
|
|
|
836
836
|
|
|
837
837
|
return response.json().get("types", "NO_ASSETS_FOUND")
|
|
838
838
|
|
|
839
|
-
def
|
|
839
|
+
def get_asset_types(self) -> str | dict:
|
|
840
840
|
"""Return all the elements that are anchored to an asset plus relationships between these elements and to
|
|
841
841
|
other elements.
|
|
842
842
|
Parameters
|
pyegeria/base_report_formats.py
CHANGED
|
@@ -299,6 +299,35 @@ base_report_specs = FormatSetDict({
|
|
|
299
299
|
)
|
|
300
300
|
],
|
|
301
301
|
),
|
|
302
|
+
"Common-Mermaid": FormatSet(
|
|
303
|
+
target_type="Referenceable",
|
|
304
|
+
heading="Common Attributes with Mermaid",
|
|
305
|
+
description="Attributes that apply to all Referenceables.",
|
|
306
|
+
annotations={}, # No specific annotations
|
|
307
|
+
formats=[
|
|
308
|
+
Format(
|
|
309
|
+
types=["DICT", "REPORT"],
|
|
310
|
+
attributes=[
|
|
311
|
+
Column(name='Display Name', key='display_name'),
|
|
312
|
+
Column(name="Qualified Name", key='qualified_name'),
|
|
313
|
+
Column(name="Description", key='description'),
|
|
314
|
+
Column(name="GUID", key='guid'),
|
|
315
|
+
Column(name="Mermaid Graph", key='mermaid_graph'),
|
|
316
|
+
Column(name="Anchor Mermaid Graph", key='anchorMermaidGraph'),
|
|
317
|
+
Column(name="Information Supply Chain Mermaid Graph", key='informationSupplyChainMermaidGraph'),
|
|
318
|
+
Column(name="Field Level Lineage Graph", key ='fieldLevelLineageGraph'),
|
|
319
|
+
Column(name= "Action Mermaid Graph", key = 'actionMermaidGraph'),
|
|
320
|
+
Column(name="Local Lineage Graph", key="localLineageGraph"),
|
|
321
|
+
Column(name="Edge Mermaid",key="edgeMermaidGraph"),
|
|
322
|
+
Column(name="ISC Implementation Graph", key='iscImplementationGraph'),
|
|
323
|
+
Column(name="Specification Mermaid Graph", key='specificationMermaidGraph'),
|
|
324
|
+
Column(name="Solution Blueprint Mermaid Graph", key='solutionBlueprintMermaidGraph'),
|
|
325
|
+
Column(name="Solution Subcomponent Mermaid Graph", key='solutionSubcomponentMermaidGraph'),
|
|
326
|
+
|
|
327
|
+
],
|
|
328
|
+
)
|
|
329
|
+
],
|
|
330
|
+
),
|
|
302
331
|
"Search-Keywords": FormatSet(
|
|
303
332
|
heading="Search Keyword Report",
|
|
304
333
|
description="A report of elements with search keywords matching the specified string",
|
|
@@ -348,22 +377,30 @@ base_report_specs = FormatSetDict({
|
|
|
348
377
|
)
|
|
349
378
|
],
|
|
350
379
|
),
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
380
|
+
|
|
381
|
+
"Journal-Entry-DrE": FormatSet(
|
|
382
|
+
target_type="Notification",
|
|
383
|
+
heading="Journal Entry",
|
|
384
|
+
description="Details of a journal entry.",
|
|
355
385
|
annotations={}, # No specific annotations
|
|
356
386
|
formats=[
|
|
357
387
|
Format(
|
|
358
388
|
types=["ALL"],
|
|
359
389
|
attributes=[
|
|
360
|
-
Column(name='
|
|
361
|
-
Column(name=
|
|
362
|
-
Column(name="
|
|
363
|
-
Column(name="
|
|
390
|
+
Column(name='Journal Name', key='note_log_name'),
|
|
391
|
+
Column(name='Journal Qualified Name', key='note_log_qualified_name'),
|
|
392
|
+
Column(name="Journal Entry Qualified Name", key='qualified_name'),
|
|
393
|
+
Column(name="Journal Entry GUID", key='guid'),
|
|
394
|
+
Column(name="Journal Entry", key='description')
|
|
364
395
|
],
|
|
365
396
|
)
|
|
366
397
|
],
|
|
398
|
+
action=ActionParameter(
|
|
399
|
+
function="Client2.find_notes",
|
|
400
|
+
optional_params=OPTIONAL_PARAMS,
|
|
401
|
+
required_params=["search_string"],
|
|
402
|
+
spec_params={},
|
|
403
|
+
)
|
|
367
404
|
),
|
|
368
405
|
|
|
369
406
|
"ExternalReference": FormatSet(
|
pyegeria/output_formatter.py
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
import re
|
|
3
3
|
from typing import Any, Callable, Dict, List, Optional, Tuple, Union
|
|
4
|
+
|
|
5
|
+
from pyegeria._globals import MERMAID_GRAPH_TITLES, MERMAID_GRAPHS
|
|
4
6
|
from pyegeria.utils import (camel_to_title_case)
|
|
5
7
|
from markdown_it import MarkdownIt
|
|
6
8
|
from rich.console import Console
|
|
@@ -204,7 +206,7 @@ def make_md_attribute(attribute_name: str, attribute_value: str, output_type: st
|
|
|
204
206
|
|
|
205
207
|
output = f"## {attribute_title}\n{attribute_value}\n\n"
|
|
206
208
|
elif output_type in ["REPORT", "MERMAID"]:
|
|
207
|
-
if attribute_title in ['Mermaid Graph', 'Mermaid'
|
|
209
|
+
if attribute_title in MERMAID_GRAPH_TITLES + ['Mermaid Graph', 'Mermaid']:
|
|
208
210
|
output = f"## {attribute_title}\n\n```mermaid\n{attribute_value}\n```\n"
|
|
209
211
|
elif attribute_value:
|
|
210
212
|
output = f"## {attribute_title}\n{attribute_value}\n\n"
|
|
@@ -872,9 +874,11 @@ def populate_common_columns(
|
|
|
872
874
|
try:
|
|
873
875
|
mermaid_val = element.get(mermaid_source_key, '') or ''
|
|
874
876
|
for column in columns_list:
|
|
877
|
+
column_key = column.get('key')
|
|
875
878
|
if column.get('key') == mermaid_dest_key and column.get('value') in (None, ""):
|
|
876
879
|
column['value'] = mermaid_val
|
|
877
|
-
|
|
880
|
+
if (column_key in MERMAID_GRAPHS and mermaid_dest_key not in MERMAID_GRAPHS):
|
|
881
|
+
column['value'] = element.get(column_key, '')
|
|
878
882
|
except Exception as e:
|
|
879
883
|
logger.debug(f"populate_common_columns: mermaid handling error: {e}")
|
|
880
884
|
|
|
@@ -122,16 +122,16 @@ examples/Jupyter Notebooks/common/orig_globals.py,sha256=VtwTB336p9WyNJaFEtE9keo
|
|
|
122
122
|
examples/format_sets/all_format_sets.json,sha256=rPesOiP-Vgooe78Y_epuQjyk_KrabTV6icHwXF73p3s,19991
|
|
123
123
|
examples/format_sets/custom_format_sets.json,sha256=X3NG9Qe8L0KlfrUfjd2ju15I2IayV1mFEQxC4rdW2Fg,5614
|
|
124
124
|
examples/format_sets/subset_format_sets.json,sha256=cRgpGuuQht9KkJR6nLxQ8GaEAZtc-ZmbCgU8syHcNkc,4009
|
|
125
|
-
md_processing/__init__.py,sha256=
|
|
126
|
-
md_processing/dr_egeria.py,sha256=
|
|
125
|
+
md_processing/__init__.py,sha256=VAbmF5j27fvjQhwqv6aYrGKDb32r494vFUUhdhHOX5U,7756
|
|
126
|
+
md_processing/dr_egeria.py,sha256=MZZqzvyimb_6csJvzz4RpqsUG1JId7mufmrw3EVF-Wk,22158
|
|
127
127
|
md_processing/data/commands-working.json,sha256=uCo_azcuuYqGm7QffJeCGj7PyZuZRGdu7kKf4XWmMoA,1162560
|
|
128
|
-
md_processing/data/commands.json,sha256=
|
|
128
|
+
md_processing/data/commands.json,sha256=KIRqNzSSZBwNKE4bIZFm0oUGOfLyMxMT0OprzuNC_MU,1036061
|
|
129
129
|
md_processing/data/generated_format_sets.json,sha256=80Z9yt8ll4x-gODzOQyGIweKoqfSsVIin9esaKUeKsA,98631
|
|
130
130
|
md_processing/data/generated_format_sets.py,sha256=2BfRzb5G5n8Cz6VwirQXlBq1fHBISIh4x7jquXg6QEw,36402
|
|
131
131
|
md_processing/md_commands/__init__.py,sha256=ssEojzFlSYtY2bHqqOoKo8PFaANZ_kq_gIbtlXnuc2s,93
|
|
132
132
|
md_processing/md_commands/data_designer_commands.py,sha256=ab0uZo4NutKKpwbMnZhZvkyny2jf6lZjx4pJXdOPQ70,65456
|
|
133
133
|
md_processing/md_commands/ext_ref_commands.py,sha256=jYTD_FsMK0M6pefnkluEpWEcS_VShllMvNFYsZTE3NQ,23558
|
|
134
|
-
md_processing/md_commands/feedback_commands.py,sha256=
|
|
134
|
+
md_processing/md_commands/feedback_commands.py,sha256=tj0fTHuFr6YksFSUztu0WrAYvFb3yAGanTv_n12s44w,31228
|
|
135
135
|
md_processing/md_commands/glossary_commands.py,sha256=F8BPFL5GlCQ3oSs8svSL5PipzmWBiXpCqUAdKUZhGkY,33373
|
|
136
136
|
md_processing/md_commands/governance_officer_commands.py,sha256=drq7H-f9J8j1x9Gw2FKi9M92RsF22oX7cu_9JJdzWJ4,26467
|
|
137
137
|
md_processing/md_commands/product_manager_commands.py,sha256=RPfApQQ4z0dLTBF9jUN1AaxnYAk_Vn6axlzvSiOgMk8,57742
|
|
@@ -140,30 +140,30 @@ md_processing/md_commands/solution_architect_commands.py,sha256=Oqtz6nIKA-ZoznZC
|
|
|
140
140
|
md_processing/md_commands/view_commands.py,sha256=AQsjR6whW_mV-_I_Ihq2xCv3dbEXip6EQEpzB0-UiA0,12042
|
|
141
141
|
md_processing/md_processing_utils/__init__.py,sha256=LxAmxlcji26ziKV4gGar01d95gL9vgToRIeJW8N-Ifs,80
|
|
142
142
|
md_processing/md_processing_utils/common_md_proc_utils.py,sha256=SzzSuXQ6FhUwasKG-u3mXIqD-OW-H_3oiZb_WkWnJnM,59104
|
|
143
|
-
md_processing/md_processing_utils/common_md_utils.py,sha256=
|
|
143
|
+
md_processing/md_processing_utils/common_md_utils.py,sha256=ScVWr8DzLIPbAoC8Atbb63uZ8Prp4MuVv0rRyHMIDQg,28461
|
|
144
144
|
md_processing/md_processing_utils/determine_width.py,sha256=nzinSuSF9SeuVOfKXsg-l1cqLkNYKZnF6HYfJpft44A,4236
|
|
145
|
-
md_processing/md_processing_utils/extraction_utils.py,sha256=
|
|
145
|
+
md_processing/md_processing_utils/extraction_utils.py,sha256=dbHP2HdMv6HqxUIu0x3xhaMrbKDKJEXdPTUxwsoMXv0,22492
|
|
146
146
|
md_processing/md_processing_utils/gen_format_sets.py,sha256=JoOUT56IEj3jT1StMdMemX0cGZ9bpoX-RvbBcDfYOHU,16434
|
|
147
147
|
md_processing/md_processing_utils/generate_dr_help.py,sha256=NKSC2Tf7QzkYkGJD3u_o_Xn9nN9ZvrQU_jPt-R7X3Js,7422
|
|
148
148
|
md_processing/md_processing_utils/generate_md_cmd_templates.py,sha256=mFenxe9Jq8QivgmI0ZFtO_iu6P6RH_EiNa__CGyDw_0,5809
|
|
149
149
|
md_processing/md_processing_utils/generate_md_templates.py,sha256=DMnMQ7_LbmQCS8aG-ppHGTu25obOSn4ZzSg7V21k9jo,3547
|
|
150
|
-
md_processing/md_processing_utils/md_processing_constants.py,sha256=
|
|
150
|
+
md_processing/md_processing_utils/md_processing_constants.py,sha256=nN-mXvAY_HuSzd_GnE2IrvBITr2Sg4JYB6sbAWY1Z9I,25939
|
|
151
151
|
md_processing/md_processing_utils/message_constants.py,sha256=UBf18obM83umM6zplR7ychre4xLRbBnTzidHDZ2gNvM,548
|
|
152
152
|
pyegeria/__init__.py,sha256=_Q93impwC_PIz1PQRy-6ka6r28VuiN3ASdDmLHf4m_s,4466
|
|
153
153
|
pyegeria/_base_client.py,sha256=w2Cid4GZOTwc4dutipk2vy2cs2qj-faMF21eClitFEI,21525
|
|
154
154
|
pyegeria/_client.py,sha256=hJHn5pD8sbelP_M9dK-M5Z2CYqpRXzXfg1UCgAdQ6dQ,33416
|
|
155
|
-
pyegeria/_client_new.py,sha256=
|
|
155
|
+
pyegeria/_client_new.py,sha256=Zrt4hbwkandXANDUbkdynKoJUsQ54ytbWy-U69TLGhU,203415
|
|
156
156
|
pyegeria/_client_new_backup.py,sha256=Kznc1iHG_y1T4D2UlccbgHpczmcQkPSrTut4Wxqq2Rg,187354
|
|
157
157
|
pyegeria/_deprecated_gov_engine.py,sha256=dWNcwVsE5__dF2u4QiIyQrssozzzOjBbLld8MdpmVCQ,17264
|
|
158
158
|
pyegeria/_exceptions.py,sha256=1SrnV194V4_YJNnNAU0myTHQ3dhLn4GF2B2gZcj1u90,18153
|
|
159
|
-
pyegeria/_exceptions_new.py,sha256
|
|
160
|
-
pyegeria/_globals.py,sha256=
|
|
159
|
+
pyegeria/_exceptions_new.py,sha256=-NectpeE5Xq3nS_pRq8yvJs_4J4SR7d8uB_918vBxUw,20195
|
|
160
|
+
pyegeria/_globals.py,sha256=xFuto9O4mQO2Az25nJWpueGjhayaTJqQo5CiLDQOpok,9488
|
|
161
161
|
pyegeria/_output_format_models.py,sha256=LB5ryEMF0xBFE38ZP9rAKFRof_4_mNBOPHhRJY0ur2M,15448
|
|
162
162
|
pyegeria/_output_formats.py,sha256=u8_7zOI5VCWT-hJM5Bc7eCHQZI4kEfOhjzufINivEtg,384
|
|
163
163
|
pyegeria/_validators.py,sha256=pNxND0dN2qvyuGE52N74l1Ezfrh2p9Hao2ziR_t1ENI,7425
|
|
164
|
-
pyegeria/asset_catalog_omvs.py,sha256=
|
|
164
|
+
pyegeria/asset_catalog_omvs.py,sha256=yNpdloqwTPbtJwmOGr9yONFKO6SWxlUb5JZ7LB1GArw,29023
|
|
165
165
|
pyegeria/automated_curation.py,sha256=DaEg_qB2TfgveKm4Y0aEKppoWwyUeY96VqjumVDCYN4,143103
|
|
166
|
-
pyegeria/base_report_formats.py,sha256=
|
|
166
|
+
pyegeria/base_report_formats.py,sha256=98lTsaaNVCrh3XUXR_p91Lr_363xw1PNe12mmysbMJs,196932
|
|
167
167
|
pyegeria/classification_manager.py,sha256=HO5UcSb65FjeKWx8COD4kNYKd3zUfeGG05TiHV2CYis,282275
|
|
168
168
|
pyegeria/classification_manager_omvs.py,sha256=CFFEZv9hBPv0UXIwyu5JyGBg_edGlRn5w6MUkPVC4pY,183952
|
|
169
169
|
pyegeria/collection_manager.py,sha256=bfFQQiqOo2cVf5IqkQxFwZJn-SLhBngCGzJdS7KzncY,239812
|
|
@@ -192,7 +192,7 @@ pyegeria/mermaid_utilities.py,sha256=G0zPyy_xRBs-3jA6Ws0q6KyvB7N5--IzWSHNjt3htnE
|
|
|
192
192
|
pyegeria/metadata_explorer_omvs.py,sha256=xHnZTQKbd6XwOhYia-RiIisrvZcqHi0SL1l6OCf04Gk,86911
|
|
193
193
|
pyegeria/models.py,sha256=Ar7Yg26vODjsITT1kxJz26G8m2-W5S9AC0OtczYIT0A,20580
|
|
194
194
|
pyegeria/my_profile_omvs.py,sha256=d0oJYCJG7pS9BINPuGciVa00ac0jwPHNANXDCLginEc,34720
|
|
195
|
-
pyegeria/output_formatter.py,sha256=
|
|
195
|
+
pyegeria/output_formatter.py,sha256=yfuxgeNMnVCcgUhDlTHReoe7ZV2Gnq6GaX41592zHmM,46100
|
|
196
196
|
pyegeria/output_formatter_with_machine_keys.py,sha256=1Bx_SRreOlrkryZEdDX40xpRYvmTIXr3KlqzGdQ1hRo,47315
|
|
197
197
|
pyegeria/platform_services.py,sha256=cvBoFbKJdtBL546LDbhjik6MZl0sm9VE67_HBnlfCWs,41737
|
|
198
198
|
pyegeria/project_manager.py,sha256=0duceDInq3bAOe1BeNns1WaJJ81zRkNEEaHUEUyXwRg,66338
|
|
@@ -205,9 +205,9 @@ pyegeria/template_manager_omvs.py,sha256=chBljs1vy5wr9DRAtbvIt4Cob_7HxGfxLkCNlDT
|
|
|
205
205
|
pyegeria/utils.py,sha256=xOTxk9PH8ZGZmgIwz_a6rczTVLADLEjucr10ZJTUnY4,9272
|
|
206
206
|
pyegeria/valid_metadata_omvs.py,sha256=Xq9DqBQvBFFJzaFIRKcVZ2k4gJvSh9yeXs_j-O3vn1w,65050
|
|
207
207
|
pyegeria/x_action_author_omvs.py,sha256=XyRsUgN-xnWR-cJayzo5RtY4Xv1uBDML4pwaKHrwC1w,6430
|
|
208
|
-
pyegeria-5.4.8.
|
|
209
|
-
pyegeria-5.4.8.
|
|
210
|
-
pyegeria-5.4.8.
|
|
211
|
-
pyegeria-5.4.8.
|
|
212
|
-
pyegeria-5.4.8.
|
|
213
|
-
pyegeria-5.4.8.
|
|
208
|
+
pyegeria-5.4.8.9.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
209
|
+
pyegeria-5.4.8.9.dist-info/METADATA,sha256=ASOumgTBkkYUIE4YuJARR0MqKhpcL5pWAb7V_Reet7Q,7295
|
|
210
|
+
pyegeria-5.4.8.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
211
|
+
pyegeria-5.4.8.9.dist-info/entry_points.txt,sha256=erl7EsY2vrll8DL_wr28FlvoWk7TQ2liioGYej0C2X4,6585
|
|
212
|
+
pyegeria-5.4.8.9.dist-info/top_level.txt,sha256=79GSLIQLdnCT1ApFEbFYr2flWPPANEUlnvMZXWn4fng,41
|
|
213
|
+
pyegeria-5.4.8.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|