pyegeria 5.4.3__py3-none-any.whl → 5.4.3.2__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.2025-08-30_21-15-48_528443.log.zip +0 -0
- commands/cat/debug_log.log +9410 -1431
- commands/cat/dr_egeria_command_help.py +110 -7
- md_processing/__init__.py +6 -11
- md_processing/data/commands.json +150 -6
- md_processing/dr_egeria.py +7 -6
- md_processing/dr_egeria_inbox/glossary_test1.md +18 -3
- md_processing/dr_egeria_inbox/product.md +11 -11
- md_processing/dr_egeria_outbox/friday/processed-2025-08-31 20:57-glossary_test1.md +400 -0
- md_processing/dr_egeria_outbox/monday/processed-2025-09-01 09:26-product.md +210 -0
- md_processing/md_commands/glossary_commands.py +84 -459
- md_processing/md_commands/product_manager_commands.py +10 -7
- md_processing/md_commands/project_commands.py +2 -2
- md_processing/md_processing_utils/common_md_proc_utils.py +9 -6
- md_processing/md_processing_utils/common_md_utils.py +15 -13
- md_processing/md_processing_utils/extraction_utils.py +12 -3
- md_processing/md_processing_utils/md_processing_constants.py +5 -4
- pyegeria/__init__.py +2 -1
- pyegeria/config.py +179 -1
- pyegeria/glossary_manager.py +2 -2
- pyegeria/project_manager.py +1 -1
- {pyegeria-5.4.3.dist-info → pyegeria-5.4.3.2.dist-info}/METADATA +1 -1
- {pyegeria-5.4.3.dist-info → pyegeria-5.4.3.2.dist-info}/RECORD +26 -23
- {pyegeria-5.4.3.dist-info → pyegeria-5.4.3.2.dist-info}/LICENSE +0 -0
- {pyegeria-5.4.3.dist-info → pyegeria-5.4.3.2.dist-info}/WHEEL +0 -0
- {pyegeria-5.4.3.dist-info → pyegeria-5.4.3.2.dist-info}/entry_points.txt +0 -0
@@ -17,6 +17,12 @@ from rich.markdown import Markdown
|
|
17
17
|
from rich.prompt import Prompt
|
18
18
|
from rich.table import Table
|
19
19
|
from rich.text import Text
|
20
|
+
from typing import List, Dict, Any
|
21
|
+
from html import escape
|
22
|
+
try:
|
23
|
+
from markdown_it import MarkdownIt
|
24
|
+
except Exception:
|
25
|
+
MarkdownIt = None
|
20
26
|
|
21
27
|
from pyegeria import (
|
22
28
|
EgeriaTech,
|
@@ -48,6 +54,40 @@ EGERIA_ROOT_PATH = os.environ.get("EGERIA_ROOT_PATH", "../../")
|
|
48
54
|
EGERIA_INBOX_PATH = os.environ.get("EGERIA_INBOX_PATH", "md_processing/dr_egeria_inbox")
|
49
55
|
EGERIA_OUTBOX_PATH = os.environ.get("EGERIA_OUTBOX_PATH", "md_processing/dr_egeria_outbox")
|
50
56
|
|
57
|
+
def _get_console_width_from_config(default_width: int = EGERIA_WIDTH) -> int:
|
58
|
+
try:
|
59
|
+
from pyegeria.config import settings
|
60
|
+
return int(getattr(settings.Environment, "console_width", default_width) or default_width)
|
61
|
+
except Exception:
|
62
|
+
return default_width
|
63
|
+
|
64
|
+
def _get_outbox_dir() -> str:
|
65
|
+
root = os.environ.get("EGERIA_ROOT_PATH", EGERIA_ROOT_PATH)
|
66
|
+
out = os.environ.get("EGERIA_OUTBOX_PATH", EGERIA_OUTBOX_PATH)
|
67
|
+
return os.path.join(root, out)
|
68
|
+
|
69
|
+
def _md_to_html(md_text: str) -> str:
|
70
|
+
if not md_text:
|
71
|
+
return ""
|
72
|
+
if MarkdownIt is None:
|
73
|
+
return f"<pre>{escape(md_text)}</pre>"
|
74
|
+
try:
|
75
|
+
return MarkdownIt().render(md_text)
|
76
|
+
except Exception:
|
77
|
+
return f"<pre>{escape(md_text)}</pre>"
|
78
|
+
|
79
|
+
def _build_html_table(columns: List[str], rows: List[List[str]]) -> str:
|
80
|
+
ths = ''.join(f'<th>{escape(c)}</th>' for c in columns)
|
81
|
+
body_rows = []
|
82
|
+
for r in rows:
|
83
|
+
tds = []
|
84
|
+
for cell in r:
|
85
|
+
if isinstance(cell, str) and cell.lstrip().startswith('<table'):
|
86
|
+
tds.append(f"<td>{cell}</td>")
|
87
|
+
else:
|
88
|
+
tds.append(f"<td>{escape(cell or '')}</td>")
|
89
|
+
body_rows.append('<tr>' + ''.join(tds) + '</tr>')
|
90
|
+
return '<table>\n<thead><tr>' + ths + '</tr></thead>\n<tbody>\n' + "\n".join(body_rows) + '\n</tbody>\n</table>'
|
51
91
|
|
52
92
|
def display_command_terms(
|
53
93
|
search_string: str = "*",
|
@@ -60,6 +100,7 @@ def display_command_terms(
|
|
60
100
|
jupyter: bool = EGERIA_JUPYTER,
|
61
101
|
width: int = EGERIA_WIDTH,
|
62
102
|
output_format: str = "TABLE",
|
103
|
+
mode: str = "terminal",
|
63
104
|
):
|
64
105
|
"""Display a table of glossary terms filtered by search_string and glossary, if specified. If no
|
65
106
|
filters then all terms are displayed. If glossary_guid or name is specified, then only terms from that
|
@@ -113,7 +154,7 @@ def display_command_terms(
|
|
113
154
|
elif output_format == "REPORT":
|
114
155
|
action = "Report"
|
115
156
|
if output_format != "TABLE":
|
116
|
-
file_path =
|
157
|
+
file_path = _get_outbox_dir()
|
117
158
|
file_name = f"Command-Help-{time.strftime('%Y-%m-%d-%H-%M-%S')}-{action}.md"
|
118
159
|
full_file_path = os.path.join(file_path, file_name)
|
119
160
|
os.makedirs(os.path.dirname(full_file_path), exist_ok=True)
|
@@ -159,11 +200,11 @@ def display_command_terms(
|
|
159
200
|
page_size=500,
|
160
201
|
)
|
161
202
|
|
162
|
-
if
|
203
|
+
if isinstance(terms, str):
|
163
204
|
print(f"No commands found - this was not the command you were looking for?! - {search_string} : {glossary_guid} ")
|
164
205
|
sys.exit(0)
|
165
206
|
sorted_terms = sorted(
|
166
|
-
terms, key=lambda k: k
|
207
|
+
terms, key=lambda k: (k.get("properties") or {}).get("displayName","---")
|
167
208
|
)
|
168
209
|
style = "bright_white on black"
|
169
210
|
if type(terms) is str:
|
@@ -221,6 +262,62 @@ def display_command_terms(
|
|
221
262
|
g_client.close_session()
|
222
263
|
return table
|
223
264
|
|
265
|
+
# Shared fetch for md modes
|
266
|
+
if mode in ("md", "md-html"):
|
267
|
+
try:
|
268
|
+
terms = g_client.find_glossary_terms(search_string, page_size=500)
|
269
|
+
except Exception:
|
270
|
+
terms = []
|
271
|
+
if isinstance(terms, str) and terms == "NO_TERMS_FOUND":
|
272
|
+
print(f"\n==> No commands found for search string '{search_string}'")
|
273
|
+
return
|
274
|
+
# Build outputs
|
275
|
+
out_dir = _get_outbox_dir()
|
276
|
+
os.makedirs(out_dir, exist_ok=True)
|
277
|
+
stamp = time.strftime('%Y-%m-%d-%H-%M-%S')
|
278
|
+
if mode == "md":
|
279
|
+
# Simple sections per term
|
280
|
+
lines: List[str] = []
|
281
|
+
lines.append(f"# Dr.Egeria Commands (search: `{search_string}`)")
|
282
|
+
lines.append("")
|
283
|
+
sorted_terms = sorted(terms, key=lambda t: (t.get("properties") or {}).get("displayName", "---"))
|
284
|
+
for term in sorted_terms:
|
285
|
+
props = term.get("properties") or {}
|
286
|
+
name = props.get("displayName", "---") or "---"
|
287
|
+
desc = props.get("description", "") or ""
|
288
|
+
usage = props.get("usage", "") or ""
|
289
|
+
lines.append(f"## {name}")
|
290
|
+
lines.append("")
|
291
|
+
lines.append("### Description\n")
|
292
|
+
lines.append(desc if desc.strip() else "_No description_")
|
293
|
+
lines.append("")
|
294
|
+
if usage.strip():
|
295
|
+
lines.append("### Usage\n")
|
296
|
+
lines.append(usage)
|
297
|
+
lines.append("")
|
298
|
+
lines.append("---\n")
|
299
|
+
content = "\n".join(lines)
|
300
|
+
file_name = f"Command-Help-{stamp}-md.md"
|
301
|
+
else:
|
302
|
+
# md-html nested tables
|
303
|
+
columns = ["Command", "Description", "Usage"]
|
304
|
+
rows: List[List[str]] = []
|
305
|
+
sorted_terms = sorted(terms, key=lambda t: (t.get("properties") or {}).get("displayName", "---"))
|
306
|
+
for term in sorted_terms:
|
307
|
+
props = term.get("properties") or {}
|
308
|
+
name = props.get("displayName", "---") or "---"
|
309
|
+
desc = props.get("description", "") or ""
|
310
|
+
usage_md = props.get("usage", "") or ""
|
311
|
+
usage_html = _md_to_html(usage_md).strip()
|
312
|
+
rows.append([name, desc, usage_html])
|
313
|
+
content = f"# Dr.Egeria Commands (search: `{search_string}`)\n\n" + _build_html_table(columns, rows) + "\n"
|
314
|
+
file_name = f"Command-Help-{stamp}-md-html.md"
|
315
|
+
full_file_path = os.path.join(out_dir, file_name)
|
316
|
+
with open(full_file_path, 'w', encoding='utf-8') as f:
|
317
|
+
f.write(content)
|
318
|
+
print(f"\n==> Help written to {full_file_path}")
|
319
|
+
return
|
320
|
+
|
224
321
|
try:
|
225
322
|
with console.pager(styles=True):
|
226
323
|
console.print(generate_table(search_string, glossary_guid))
|
@@ -241,6 +338,8 @@ def main():
|
|
241
338
|
parser.add_argument("--userid", help="User Id")
|
242
339
|
parser.add_argument("--password", help="User Password")
|
243
340
|
parser.add_argument("--guid", help="GUID of glossary to search")
|
341
|
+
parser.add_argument("--mode", choices=["terminal","md","md-html"], default="terminal", help="Output mode: terminal (default) prints Rich table; md writes Markdown; md-html writes Markdown with HTML tables.")
|
342
|
+
parser.add_argument("--search", help="Search string for commands", default=None)
|
244
343
|
|
245
344
|
args = parser.parse_args()
|
246
345
|
|
@@ -253,13 +352,17 @@ def main():
|
|
253
352
|
guid = args.guid if args.guid is not None else EGERIA_HOME_GLOSSARY_GUID
|
254
353
|
|
255
354
|
try:
|
256
|
-
|
355
|
+
search_default = args.search or "*"
|
356
|
+
search_string = args.search or Prompt.ask("Enter the command you are searching for:", default=search_default)
|
257
357
|
|
258
|
-
|
358
|
+
if args.mode == "terminal":
|
359
|
+
output_format = Prompt.ask("What output format do you want?", choices=["TABLE", "LIST", "REPORT"], default="TABLE")
|
360
|
+
else:
|
361
|
+
output_format = "TABLE"
|
259
362
|
|
260
363
|
display_command_terms(
|
261
|
-
|
262
|
-
userid, user_pass, output_format=
|
364
|
+
search_string, guid, 'Egeria-Markdown', server, url,
|
365
|
+
userid, user_pass, output_format=output_format, mode=args.mode
|
263
366
|
)
|
264
367
|
|
265
368
|
except KeyboardInterrupt:
|
md_processing/__init__.py
CHANGED
@@ -34,15 +34,10 @@ from md_processing.md_commands.data_designer_commands import (process_data_field
|
|
34
34
|
process_data_class_list_command,
|
35
35
|
process_data_structure_upsert_command)
|
36
36
|
|
37
|
-
from md_processing.md_commands.glossary_commands import (process_glossary_upsert_command,
|
38
|
-
process_glossary_structure_command,
|
39
|
-
process_category_upsert_command, update_category_parent,
|
40
|
-
process_category_list_command, update_term_categories,
|
37
|
+
from md_processing.md_commands.glossary_commands import (process_glossary_upsert_command,
|
41
38
|
process_term_upsert_command,
|
42
|
-
|
43
|
-
|
44
|
-
process_term_history_command,
|
45
|
-
process_term_revision_history_command)
|
39
|
+
process_link_term_term_relationship_command,
|
40
|
+
)
|
46
41
|
from md_processing.md_commands.project_commands import (process_project_upsert_command, process_link_project_dependency_command,
|
47
42
|
process_link_project_hierarchy_command)
|
48
43
|
# Re-export all functions from the original md_processing_utils.py to maintain backward compatibility
|
@@ -53,9 +48,9 @@ from md_processing.md_processing_utils.common_md_utils import (render_markdown,
|
|
53
48
|
is_present, find_key_with_value,
|
54
49
|
process_provenance_command, set_delete_request_body,
|
55
50
|
set_rel_request_body, set_filter_request_body,
|
56
|
-
set_update_body, set_peer_gov_def_request_body,
|
57
|
-
|
58
|
-
|
51
|
+
set_update_body, set_peer_gov_def_request_body, set_rel_prop_body,
|
52
|
+
set_gov_prop_body, set_element_prop_body, set_create_body,
|
53
|
+
GOVERNANCE_POLICIES, GOVERNANCE_CONTROLS, GOVERNANCE_DRIVERS
|
59
54
|
)
|
60
55
|
from md_processing.md_processing_utils.extraction_utils import (extract_command_plus, extract_command,
|
61
56
|
extract_attribute, process_simple_attribute,
|
md_processing/data/commands.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"Command Specifications": {
|
3
|
-
"exported": "
|
3
|
+
"exported": "Sep 1, 2025 at 7:09:27 AM",
|
4
4
|
"Create Governance Driver": {
|
5
5
|
"display_name": "Governance Driver",
|
6
6
|
"qn_prefix": "GovDriver",
|
@@ -24270,7 +24270,7 @@
|
|
24270
24270
|
"Create Collection": {
|
24271
24271
|
"display_name": "Collection",
|
24272
24272
|
"qn_prefix": "Collection",
|
24273
|
-
"alternate_names": "Create Root Collection;
|
24273
|
+
"alternate_names": "Create Root Collection;Create Folder",
|
24274
24274
|
"family": "Digital Product Manager",
|
24275
24275
|
"description": "Create or update a generic collection. While it can be used to create specific kinds of collections, you cannot set the collection-specific properties - so use the appropriate Dr.Egeria command to set all of the properties.",
|
24276
24276
|
"verb": "Create",
|
@@ -39945,10 +39945,10 @@
|
|
39945
39945
|
"Journal Entry": "",
|
39946
39946
|
"Attributes": [
|
39947
39947
|
{
|
39948
|
-
"Term
|
39948
|
+
"Term 1": {
|
39949
39949
|
"variable_name": "term_1",
|
39950
39950
|
"inUpdate": true,
|
39951
|
-
"attr_labels": "Term Name 1",
|
39951
|
+
"attr_labels": "Term Name 1; Term1",
|
39952
39952
|
"examples": "",
|
39953
39953
|
"default_value": "",
|
39954
39954
|
"valid_values": "",
|
@@ -39969,10 +39969,10 @@
|
|
39969
39969
|
}
|
39970
39970
|
},
|
39971
39971
|
{
|
39972
|
-
"Term
|
39972
|
+
"Term 2": {
|
39973
39973
|
"variable_name": "term_2",
|
39974
39974
|
"inUpdate": true,
|
39975
|
-
"attr_labels": "Term Name 2",
|
39975
|
+
"attr_labels": "Term Name 2; Term2",
|
39976
39976
|
"examples": "",
|
39977
39977
|
"default_value": "",
|
39978
39978
|
"valid_values": "",
|
@@ -40015,6 +40015,150 @@
|
|
40015
40015
|
"level": "Basic",
|
40016
40016
|
"Journal Entry": ""
|
40017
40017
|
}
|
40018
|
+
},
|
40019
|
+
{
|
40020
|
+
"Description": {
|
40021
|
+
"variable_name": "description",
|
40022
|
+
"inUpdate": true,
|
40023
|
+
"attr_labels": "",
|
40024
|
+
"examples": "",
|
40025
|
+
"default_value": "",
|
40026
|
+
"valid_values": "",
|
40027
|
+
"existing_element": "",
|
40028
|
+
"description": "A description of the Relationship.",
|
40029
|
+
"qualified_name_pattern": "",
|
40030
|
+
"generated": false,
|
40031
|
+
"style": "Simple",
|
40032
|
+
"user_specified": true,
|
40033
|
+
"unique": false,
|
40034
|
+
"input_required": false,
|
40035
|
+
"isParent": false,
|
40036
|
+
"isAnchor": false,
|
40037
|
+
"min_cardinality": 0,
|
40038
|
+
"max_cardinality": 1,
|
40039
|
+
"level": "Basic",
|
40040
|
+
"Journal Entry": ""
|
40041
|
+
}
|
40042
|
+
},
|
40043
|
+
{
|
40044
|
+
"Expression": {
|
40045
|
+
"variable_name": "expression",
|
40046
|
+
"inUpdate": true,
|
40047
|
+
"attr_labels": "",
|
40048
|
+
"examples": "",
|
40049
|
+
"default_value": "",
|
40050
|
+
"valid_values": "",
|
40051
|
+
"existing_element": "",
|
40052
|
+
"description": "An expression describing the relationship.",
|
40053
|
+
"qualified_name_pattern": "",
|
40054
|
+
"generated": false,
|
40055
|
+
"style": "Simple",
|
40056
|
+
"user_specified": true,
|
40057
|
+
"unique": false,
|
40058
|
+
"input_required": false,
|
40059
|
+
"isParent": false,
|
40060
|
+
"isAnchor": false,
|
40061
|
+
"min_cardinality": 1,
|
40062
|
+
"max_cardinality": 1,
|
40063
|
+
"level": "Advance",
|
40064
|
+
"Journal Entry": ""
|
40065
|
+
}
|
40066
|
+
},
|
40067
|
+
{
|
40068
|
+
"Confidence": {
|
40069
|
+
"variable_name": "confidence",
|
40070
|
+
"inUpdate": true,
|
40071
|
+
"attr_labels": "",
|
40072
|
+
"examples": "",
|
40073
|
+
"default_value": "",
|
40074
|
+
"valid_values": "",
|
40075
|
+
"existing_element": "",
|
40076
|
+
"description": "Percent confidence in the relationship.",
|
40077
|
+
"qualified_name_pattern": "",
|
40078
|
+
"generated": false,
|
40079
|
+
"style": "Simple Int",
|
40080
|
+
"user_specified": true,
|
40081
|
+
"unique": false,
|
40082
|
+
"input_required": false,
|
40083
|
+
"isParent": false,
|
40084
|
+
"isAnchor": false,
|
40085
|
+
"min_cardinality": 0,
|
40086
|
+
"max_cardinality": 1,
|
40087
|
+
"level": "Advanced",
|
40088
|
+
"Journal Entry": ""
|
40089
|
+
}
|
40090
|
+
},
|
40091
|
+
{
|
40092
|
+
"Status": {
|
40093
|
+
"variable_name": "",
|
40094
|
+
"inUpdate": true,
|
40095
|
+
"attr_labels": "",
|
40096
|
+
"examples": "",
|
40097
|
+
"default_value": "",
|
40098
|
+
"valid_values": "",
|
40099
|
+
"existing_element": "",
|
40100
|
+
"description": "",
|
40101
|
+
"qualified_name_pattern": "",
|
40102
|
+
"generated": false,
|
40103
|
+
"style": "Simple",
|
40104
|
+
"user_specified": true,
|
40105
|
+
"unique": false,
|
40106
|
+
"input_required": false,
|
40107
|
+
"isParent": false,
|
40108
|
+
"isAnchor": false,
|
40109
|
+
"min_cardinality": 1,
|
40110
|
+
"max_cardinality": 1,
|
40111
|
+
"level": "Basic",
|
40112
|
+
"Journal Entry": ""
|
40113
|
+
}
|
40114
|
+
},
|
40115
|
+
{
|
40116
|
+
"Steward": {
|
40117
|
+
"variable_name": "steward",
|
40118
|
+
"inUpdate": true,
|
40119
|
+
"attr_labels": "",
|
40120
|
+
"examples": "",
|
40121
|
+
"default_value": "",
|
40122
|
+
"valid_values": "",
|
40123
|
+
"existing_element": "",
|
40124
|
+
"description": "Steward responsible.",
|
40125
|
+
"qualified_name_pattern": "",
|
40126
|
+
"generated": false,
|
40127
|
+
"style": "Simple",
|
40128
|
+
"user_specified": true,
|
40129
|
+
"unique": false,
|
40130
|
+
"input_required": false,
|
40131
|
+
"isParent": false,
|
40132
|
+
"isAnchor": false,
|
40133
|
+
"min_cardinality": 0,
|
40134
|
+
"max_cardinality": 1,
|
40135
|
+
"level": "Advance",
|
40136
|
+
"Journal Entry": ""
|
40137
|
+
}
|
40138
|
+
},
|
40139
|
+
{
|
40140
|
+
"Source": {
|
40141
|
+
"variable_name": "source",
|
40142
|
+
"inUpdate": true,
|
40143
|
+
"attr_labels": "",
|
40144
|
+
"examples": "",
|
40145
|
+
"default_value": "",
|
40146
|
+
"valid_values": "",
|
40147
|
+
"existing_element": "",
|
40148
|
+
"description": "Source of the relationship",
|
40149
|
+
"qualified_name_pattern": "",
|
40150
|
+
"generated": false,
|
40151
|
+
"style": "Simple",
|
40152
|
+
"user_specified": true,
|
40153
|
+
"unique": false,
|
40154
|
+
"input_required": false,
|
40155
|
+
"isParent": false,
|
40156
|
+
"isAnchor": false,
|
40157
|
+
"min_cardinality": 0,
|
40158
|
+
"max_cardinality": 1,
|
40159
|
+
"level": "Advance",
|
40160
|
+
"Journal Entry": ""
|
40161
|
+
}
|
40018
40162
|
}
|
40019
40163
|
]
|
40020
40164
|
},
|
md_processing/dr_egeria.py
CHANGED
@@ -20,13 +20,11 @@ from rich import print
|
|
20
20
|
from rich.console import Console
|
21
21
|
|
22
22
|
from md_processing import (extract_command, process_glossary_upsert_command, process_term_upsert_command,
|
23
|
-
|
23
|
+
process_provenance_command, get_current_datetime_string,
|
24
24
|
process_project_upsert_command, command_list, process_blueprint_upsert_command,
|
25
25
|
process_solution_component_upsert_command, process_component_link_unlink_command,
|
26
|
-
|
27
|
-
|
28
|
-
process_glossary_structure_command, process_term_revision_history_command,
|
29
|
-
process_create_term_term_relationship_command, process_term_details_command,
|
26
|
+
|
27
|
+
process_link_term_term_relationship_command,
|
30
28
|
process_information_supply_chain_upsert_command,
|
31
29
|
process_information_supply_chain_link_unlink_command, process_sol_arch_list_command,
|
32
30
|
process_digital_product_upsert_command, process_agreement_upsert_command,
|
@@ -123,7 +121,7 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
|
|
123
121
|
elif potential_command in ["Create Term", "Update Term"]:
|
124
122
|
result = process_term_upsert_command(client, current_block, directive)
|
125
123
|
elif potential_command in ["Create Term-Term Relationship", "Update Term-Term Relationship"]:
|
126
|
-
result =
|
124
|
+
result = process_link_term_term_relationship_command(client, current_block, directive)
|
127
125
|
#
|
128
126
|
elif potential_command in LIST_COMMANDS:
|
129
127
|
result = process_output_command(client, current_block, directive)
|
@@ -132,6 +130,9 @@ def process_md_file(input_file: str, output_folder:str, directive: str, server:
|
|
132
130
|
elif potential_command in ["List Glossaries", "List Terms", "List Glossary Terms", "View Glossaries"
|
133
131
|
"View Terms", "View Glossary Terms"]:
|
134
132
|
result = process_output_command(client, current_block, directive)
|
133
|
+
elif potential_command in ["Link Termss", "Detach Terms",
|
134
|
+
"Link Term-Term Relationship", "Detach Term-Term Relationship"]:
|
135
|
+
result = process_link_term_term_relationship_command(client, current_block, directive)
|
135
136
|
elif potential_command in PROJECT_COMMANDS:
|
136
137
|
result = process_project_upsert_command(client, current_block, directive)
|
137
138
|
elif potential_command in ["Link Parent Project", "Attach Parent Project", "Detach Parent Project"]:
|
@@ -1,3 +1,18 @@
|
|
1
|
+
# Don't Link Term-Term Relationship
|
2
|
+
## Term 1
|
3
|
+
Term::Calico::2
|
4
|
+
|
5
|
+
## Term2
|
6
|
+
Term::Siamese::3
|
7
|
+
|
8
|
+
## Relationship
|
9
|
+
Synonym
|
10
|
+
|
11
|
+
## Description
|
12
|
+
I'm not sure why they are related
|
13
|
+
|
14
|
+
____
|
15
|
+
|
1
16
|
# Don't List Glossaries
|
2
17
|
## Output Format
|
3
18
|
LIST
|
@@ -22,7 +37,7 @@ True
|
|
22
37
|
____
|
23
38
|
|
24
39
|
|
25
|
-
# Create Glossary
|
40
|
+
# Don't Create Glossary
|
26
41
|
|
27
42
|
## Glossary Name
|
28
43
|
|
@@ -72,7 +87,7 @@ About Cats
|
|
72
87
|
Dr.Egeria Test
|
73
88
|
____
|
74
89
|
|
75
|
-
#
|
90
|
+
# Don't Update Term
|
76
91
|
|
77
92
|
## Glossary
|
78
93
|
|
@@ -120,7 +135,7 @@ Calico
|
|
120
135
|
About Cats
|
121
136
|
___
|
122
137
|
|
123
|
-
# Don't
|
138
|
+
# Don't Create Term
|
124
139
|
|
125
140
|
## Glossary Name
|
126
141
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
____
|
2
|
-
# Don't
|
2
|
+
# Don't Create Root Collection
|
3
3
|
## Name
|
4
4
|
GeoSpatial Root
|
5
5
|
|
@@ -13,7 +13,7 @@ GeoSpatial
|
|
13
13
|
|
14
14
|
____
|
15
15
|
|
16
|
-
#
|
16
|
+
# Don't Create Folder
|
17
17
|
## Name
|
18
18
|
Digital Products MarketPlace
|
19
19
|
|
@@ -82,7 +82,7 @@ GeoSpatial
|
|
82
82
|
|
83
83
|
____
|
84
84
|
|
85
|
-
#
|
85
|
+
# Don't Update Digital Product
|
86
86
|
## Name
|
87
87
|
Sentinel-2a
|
88
88
|
|
@@ -127,12 +127,12 @@ A folder for digital product subscriptions.
|
|
127
127
|
GeoSpatial
|
128
128
|
|
129
129
|
____
|
130
|
-
# Don't
|
130
|
+
# Don't Update Digital Subscription
|
131
131
|
## Name
|
132
132
|
GeoSpatial Data Products Subscription
|
133
133
|
|
134
134
|
# Qualified Name
|
135
|
-
Subscription::GeoSpatial
|
135
|
+
Subscription::GeoSpatial Data Products Subscription
|
136
136
|
|
137
137
|
## Description
|
138
138
|
A general subscription agreement for GeoSpatial Data Products
|
@@ -145,7 +145,7 @@ Best Effort
|
|
145
145
|
____
|
146
146
|
|
147
147
|
____
|
148
|
-
# Don't
|
148
|
+
# Don't Update Agreement
|
149
149
|
## Name
|
150
150
|
A test agreement
|
151
151
|
|
@@ -162,7 +162,7 @@ ____
|
|
162
162
|
|
163
163
|
# Don't Link Agreement->Item
|
164
164
|
## Agreement Name
|
165
|
-
|
165
|
+
GeoSpatial Data Products Subscription
|
166
166
|
|
167
167
|
## Item Name
|
168
168
|
DigitalProduct::Sentinel-2a
|
@@ -183,11 +183,11 @@ Sentinel-2a-Subscription
|
|
183
183
|
{ "Attribution" : "Required"}
|
184
184
|
____
|
185
185
|
|
186
|
-
#
|
186
|
+
# Link Subscriber->Subscription
|
187
187
|
## Subscription
|
188
|
-
Subscription::GeoSpatial
|
188
|
+
Subscription::GeoSpatial Data Products Subscription
|
189
189
|
|
190
|
-
## Subscriber
|
190
|
+
## Subscriber Id
|
191
191
|
Agreement::A-test-agreement
|
192
192
|
|
193
193
|
___
|
@@ -198,7 +198,7 @@ LIST
|
|
198
198
|
|
199
199
|
___
|
200
200
|
|
201
|
-
#
|
201
|
+
# Don't View Data Sharing Agreements
|
202
202
|
## Output Format
|
203
203
|
REPORT
|
204
204
|
___
|