-
Notifications
You must be signed in to change notification settings - Fork 1
/
id_to_cyto.py
109 lines (90 loc) · 2.85 KB
/
id_to_cyto.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import json
from if_dpp import er_before, get_dpp, convert_bedpp
from cyto_data import main_no_files
from if_groups import find_procgrp
ENDPOINT = 'https://zenflows-debug.interfacer.dyne.org/api'
CYTO_FILE = 'dpp.cyto.json'
USERS_DATA = {
"designer2": {
"username": "designer2_username",
"keyring": {
"eddsa": "9YjzDCUU6yKMv4UrLQJZtuUkzQmqpJ7EnY6RJkK5urHf"
}
}
}
def main(id, do_users, do_server, add_groups, compact, endpoint):
print(f"Resource to be traced: {id}")
visited = set()
if do_server:
a_dpp = get_dpp(id, USERS_DATA['designer2'], endpoint=endpoint)
a_dpp = a_dpp[0]
tot_dpp = convert_bedpp(a_dpp)
else:
a_dpp = []
er_before(id, USERS_DATA['designer2'], dpp_children=a_dpp,
depth=0, visited=visited, endpoint=endpoint)
tot_dpp = a_dpp[0]
processgrp_data = {}
if add_groups:
find_procgrp(tot_dpp, processgrp_data,
USERS_DATA['designer2'], endpoint=endpoint)
# breakpoint()
cito_graph = main_no_files(
tot_dpp, processgrp_data, do_users=do_users, compact=compact)
with open(CYTO_FILE, 'w') as f:
f.write(json.dumps(cito_graph, indent=2))
print(f'{CYTO_FILE} written.')
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(
description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter,
)
parser.add_argument(
'-a', '--add_groups',
dest='add_groups',
action='store_true',
default=False,
help='specifies whether to add groups to the graph',
)
parser.add_argument(
'-c', '--compact',
dest='compact',
action='store_true',
default=False,
help='specifies whether to compact the nodes',
)
parser.add_argument(
'-e', '--endpoint',
dest='endpoint',
action='store',
default=ENDPOINT,
help='specifies the endpoint we are talking to',
)
parser.add_argument(
'-i', '--id',
dest='id',
action='store',
required=True,
help='specifies the name of the id to generate the DPP for',
)
parser.add_argument(
'-s', '--server_trace',
dest='do_server',
action='store_true',
default=False,
help='specifies whether to use the server trace algo (otherwise the front-end algo)',
)
parser.add_argument(
'-u', '--users',
dest='users',
action='store_true',
default=False,
help='specifies whether to include users as nodes',
)
args, unknown = parser.parse_known_args()
if len(unknown) > 0:
print(f'Unknown options {unknown}')
parser.print_help()
exit(-1)
main(args.id, args.users, args.do_server, args.add_groups, args.compact, args.endpoint)