synapse 2.209.0__py311-none-any.whl → 2.211.0__py311-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 synapse might be problematic. Click here for more details.
- synapse/lib/base.py +2 -3
- synapse/lib/cell.py +14 -4
- synapse/lib/coro.py +5 -0
- synapse/lib/json.py +48 -22
- synapse/lib/nexus.py +6 -0
- synapse/lib/node.py +1 -1
- synapse/lib/schemas.py +10 -1
- synapse/lib/share.py +0 -3
- synapse/lib/snap.py +3 -0
- synapse/lib/storm.py +10 -2
- synapse/lib/stormlib/auth.py +6 -0
- synapse/lib/stormlib/notifications.py +12 -2
- synapse/lib/stormtypes.py +2 -2
- synapse/lib/version.py +2 -2
- synapse/models/entity.py +26 -0
- synapse/models/inet.py +55 -0
- synapse/models/orgs.py +0 -1
- synapse/models/person.py +9 -2
- synapse/tests/test_cortex.py +3 -3
- synapse/tests/test_lib_aha.py +1 -1
- synapse/tests/test_lib_base.py +5 -0
- synapse/tests/test_lib_cell.py +28 -8
- synapse/tests/test_lib_coro.py +23 -0
- synapse/tests/test_lib_json.py +41 -16
- synapse/tests/test_lib_storm.py +20 -0
- synapse/tests/test_lib_stormtypes.py +16 -18
- synapse/tests/test_lib_view.py +14 -0
- synapse/tests/test_model_entity.py +21 -0
- synapse/tests/test_model_gov_intl.py +2 -2
- synapse/tests/test_model_inet.py +30 -0
- synapse/tests/test_model_media.py +1 -0
- synapse/tests/test_model_orgs.py +18 -2
- synapse/tests/test_model_person.py +12 -0
- synapse/tests/test_telepath.py +52 -41
- synapse/tests/test_tools_aha.py +7 -8
- synapse/tests/test_tools_genpkg.py +9 -0
- synapse/tests/utils.py +1 -1
- synapse/tools/aha/clone.py +7 -1
- synapse/tools/aha/easycert.py +37 -42
- synapse/tools/aha/enroll.py +7 -1
- synapse/tools/aha/list.py +60 -65
- synapse/tools/aha/mirror.py +7 -1
- synapse/tools/aha/provision/service.py +7 -1
- synapse/tools/aha/provision/user.py +7 -1
- synapse/tools/apikey.py +8 -1
- synapse/tools/autodoc.py +8 -2
- synapse/tools/axon2axon.py +7 -1
- synapse/tools/cellauth.py +6 -5
- synapse/tools/cmdr.py +2 -1
- synapse/tools/csvtool.py +7 -2
- synapse/tools/feed.py +8 -2
- synapse/tools/genpkg.py +16 -3
- synapse/tools/healthcheck.py +7 -1
- synapse/tools/livebackup.py +7 -3
- synapse/tools/modrole.py +7 -1
- synapse/tools/moduser.py +7 -2
- synapse/tools/promote.py +7 -3
- synapse/tools/pullfile.py +6 -1
- synapse/tools/pushfile.py +7 -1
- synapse/tools/reload.py +7 -4
- synapse/tools/rstorm.py +8 -2
- synapse/tools/snapshot.py +7 -1
- synapse/tools/storm.py +7 -1
- {synapse-2.209.0.dist-info → synapse-2.211.0.dist-info}/METADATA +2 -2
- {synapse-2.209.0.dist-info → synapse-2.211.0.dist-info}/RECORD +68 -67
- {synapse-2.209.0.dist-info → synapse-2.211.0.dist-info}/WHEEL +1 -1
- {synapse-2.209.0.dist-info → synapse-2.211.0.dist-info}/licenses/LICENSE +0 -0
- {synapse-2.209.0.dist-info → synapse-2.211.0.dist-info}/top_level.txt +0 -0
synapse/tools/cmdr.py
CHANGED
|
@@ -9,6 +9,7 @@ import synapse.common as s_common
|
|
|
9
9
|
import synapse.telepath as s_telepath
|
|
10
10
|
|
|
11
11
|
import synapse.lib.cmdr as s_cmdr
|
|
12
|
+
import synapse.lib.coro as s_coro
|
|
12
13
|
import synapse.lib.version as s_version
|
|
13
14
|
|
|
14
15
|
logger = logging.getLogger(__name__)
|
|
@@ -51,7 +52,7 @@ async def main(argv): # pragma: no cover
|
|
|
51
52
|
|
|
52
53
|
async with s_telepath.withTeleEnv():
|
|
53
54
|
await _main(argv)
|
|
54
|
-
|
|
55
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
55
56
|
return 0
|
|
56
57
|
|
|
57
58
|
if __name__ == '__main__': # pragma: no cover
|
synapse/tools/csvtool.py
CHANGED
|
@@ -9,8 +9,8 @@ import synapse.common as s_common
|
|
|
9
9
|
import synapse.telepath as s_telepath
|
|
10
10
|
|
|
11
11
|
import synapse.lib.cmd as s_cmd
|
|
12
|
-
import synapse.lib.base as s_base
|
|
13
12
|
import synapse.lib.cmdr as s_cmdr
|
|
13
|
+
import synapse.lib.coro as s_coro
|
|
14
14
|
import synapse.lib.json as s_json
|
|
15
15
|
import synapse.lib.output as s_output
|
|
16
16
|
import synapse.lib.version as s_version
|
|
@@ -235,5 +235,10 @@ def makeargparser(outp):
|
|
|
235
235
|
pars.add_argument('csvfiles', nargs='+', help='CSV files to load.')
|
|
236
236
|
return pars
|
|
237
237
|
|
|
238
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
239
|
+
ret = await main(argv, outp=outp)
|
|
240
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
241
|
+
return ret
|
|
242
|
+
|
|
238
243
|
if __name__ == '__main__': # pragma: no cover
|
|
239
|
-
sys.exit(asyncio.run(
|
|
244
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/feed.py
CHANGED
|
@@ -11,6 +11,7 @@ import synapse.cortex as s_cortex
|
|
|
11
11
|
import synapse.telepath as s_telepath
|
|
12
12
|
|
|
13
13
|
import synapse.lib.cmdr as s_cmdr
|
|
14
|
+
import synapse.lib.coro as s_coro
|
|
14
15
|
import synapse.lib.json as s_json
|
|
15
16
|
import synapse.lib.output as s_output
|
|
16
17
|
import synapse.lib.msgpack as s_msgpack
|
|
@@ -149,6 +150,11 @@ def makeargparser():
|
|
|
149
150
|
|
|
150
151
|
return pars
|
|
151
152
|
|
|
152
|
-
|
|
153
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
153
154
|
s_common.setlogging(logger, 'DEBUG')
|
|
154
|
-
|
|
155
|
+
ret = await main(argv, outp=outp)
|
|
156
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
157
|
+
return ret
|
|
158
|
+
|
|
159
|
+
if __name__ == '__main__': # pragma: no cover
|
|
160
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/genpkg.py
CHANGED
|
@@ -12,11 +12,13 @@ import synapse.exc as s_exc
|
|
|
12
12
|
import synapse.common as s_common
|
|
13
13
|
import synapse.telepath as s_telepath
|
|
14
14
|
|
|
15
|
+
import synapse.lib.coro as s_coro
|
|
15
16
|
import synapse.lib.json as s_json
|
|
16
17
|
import synapse.lib.output as s_output
|
|
17
18
|
import synapse.lib.certdir as s_certdir
|
|
18
19
|
import synapse.lib.dyndeps as s_dyndeps
|
|
19
20
|
import synapse.lib.schemas as s_schemas
|
|
21
|
+
import synapse.lib.version as s_version
|
|
20
22
|
|
|
21
23
|
logger = logging.getLogger(__name__)
|
|
22
24
|
|
|
@@ -121,6 +123,12 @@ def loadPkgProto(path, opticdir=None, no_docs=False, readonly=False):
|
|
|
121
123
|
|
|
122
124
|
genopts = pkgdef.pop('genopts', {})
|
|
123
125
|
|
|
126
|
+
# Stamp build info into the pkgdef if it doesn't already exist
|
|
127
|
+
pkgdef.setdefault('build', {})
|
|
128
|
+
pkgdef['build'].setdefault('time', s_common.now())
|
|
129
|
+
pkgdef['build'].setdefault('synapse:version', s_version.verstring)
|
|
130
|
+
pkgdef['build'].setdefault('synapse:commit', s_version.commit)
|
|
131
|
+
|
|
124
132
|
logodef = pkgdef.get('logo')
|
|
125
133
|
if logodef is not None:
|
|
126
134
|
|
|
@@ -264,8 +272,6 @@ async def main(argv, outp=s_output.stdout):
|
|
|
264
272
|
else:
|
|
265
273
|
pkgdef = loadPkgProto(opts.pkgfile, opticdir=opts.optic, no_docs=opts.no_docs)
|
|
266
274
|
|
|
267
|
-
pkgdef['build'] = {'time': s_common.now()}
|
|
268
|
-
|
|
269
275
|
if opts.signas is not None:
|
|
270
276
|
|
|
271
277
|
s_certdir.addCertPath(opts.certdir)
|
|
@@ -282,6 +288,8 @@ async def main(argv, outp=s_output.stdout):
|
|
|
282
288
|
'sign': sign,
|
|
283
289
|
}
|
|
284
290
|
|
|
291
|
+
s_schemas.reqValidPkgdef(pkgdef)
|
|
292
|
+
|
|
285
293
|
if not opts.save and not opts.push:
|
|
286
294
|
outp.printf('Neither --push nor --save provided. Nothing to do.')
|
|
287
295
|
return 1
|
|
@@ -298,5 +306,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
298
306
|
|
|
299
307
|
return 0
|
|
300
308
|
|
|
309
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
310
|
+
ret = await main(argv, outp=outp)
|
|
311
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
312
|
+
return ret
|
|
313
|
+
|
|
301
314
|
if __name__ == '__main__': # pragma: no cover
|
|
302
|
-
sys.exit(asyncio.run(
|
|
315
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/healthcheck.py
CHANGED
|
@@ -7,6 +7,7 @@ import synapse.common as s_common
|
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
9
|
import synapse.lib.cmd as s_cmd
|
|
10
|
+
import synapse.lib.coro as s_coro
|
|
10
11
|
import synapse.lib.json as s_json
|
|
11
12
|
import synapse.lib.output as s_output
|
|
12
13
|
import synapse.lib.health as s_health
|
|
@@ -106,5 +107,10 @@ def makeargparser():
|
|
|
106
107
|
help='Connection and call timeout')
|
|
107
108
|
return pars
|
|
108
109
|
|
|
110
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
111
|
+
ret = await main(argv, outp=outp)
|
|
112
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
113
|
+
return ret
|
|
114
|
+
|
|
109
115
|
if __name__ == '__main__': # pragma: no cover
|
|
110
|
-
sys.exit(asyncio.run(
|
|
116
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/livebackup.py
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import yaml
|
|
3
2
|
import asyncio
|
|
4
3
|
import argparse
|
|
5
4
|
|
|
6
|
-
import synapse.exc as s_exc
|
|
7
5
|
import synapse.telepath as s_telepath
|
|
8
6
|
|
|
7
|
+
import synapse.lib.coro as s_coro
|
|
9
8
|
import synapse.lib.output as s_output
|
|
10
9
|
|
|
11
10
|
descr = '''
|
|
@@ -36,5 +35,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
36
35
|
outp.printf(f'...backup created: {name}')
|
|
37
36
|
return 0
|
|
38
37
|
|
|
38
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
39
|
+
ret = await main(argv, outp=outp)
|
|
40
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
41
|
+
return ret
|
|
42
|
+
|
|
39
43
|
if __name__ == '__main__': # pragma: no cover
|
|
40
|
-
sys.exit(asyncio.run(
|
|
44
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/modrole.py
CHANGED
|
@@ -5,6 +5,7 @@ import argparse
|
|
|
5
5
|
import synapse.common as s_common
|
|
6
6
|
import synapse.telepath as s_telepath
|
|
7
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
8
9
|
import synapse.lib.output as s_output
|
|
9
10
|
|
|
10
11
|
descr = '''
|
|
@@ -115,5 +116,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
115
116
|
await cell.addRoleRule(roleiden, (False, perm), indx=0, gateiden=opts.gate)
|
|
116
117
|
return 0
|
|
117
118
|
|
|
119
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
120
|
+
ret = await main(argv, outp=outp)
|
|
121
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
122
|
+
return ret
|
|
123
|
+
|
|
118
124
|
if __name__ == '__main__': # pragma: no cover
|
|
119
|
-
sys.exit(asyncio.run(
|
|
125
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/moduser.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import yaml
|
|
3
2
|
import asyncio
|
|
4
3
|
import argparse
|
|
5
4
|
|
|
6
5
|
import synapse.common as s_common
|
|
7
6
|
import synapse.telepath as s_telepath
|
|
8
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
9
9
|
import synapse.lib.output as s_output
|
|
10
10
|
|
|
11
11
|
descr = '''
|
|
@@ -187,5 +187,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
187
187
|
await cell.addUserRule(useriden, (False, perm), indx=0, gateiden=opts.gate)
|
|
188
188
|
return 0
|
|
189
189
|
|
|
190
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
191
|
+
ret = await main(argv, outp=outp)
|
|
192
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
193
|
+
return ret
|
|
194
|
+
|
|
190
195
|
if __name__ == '__main__': # pragma: no cover
|
|
191
|
-
sys.exit(asyncio.run(
|
|
196
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/promote.py
CHANGED
|
@@ -6,6 +6,7 @@ import synapse.exc as s_exc
|
|
|
6
6
|
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
import synapse.lib.urlhelp as s_urlhelp
|
|
11
12
|
|
|
@@ -27,8 +28,6 @@ async def main(argv, outp=s_output.stdout):
|
|
|
27
28
|
pars.add_argument('--failure', default=False, action='store_true',
|
|
28
29
|
help='Promotion is due to leader being offline. Graceful handoff is not possible.')
|
|
29
30
|
|
|
30
|
-
# TODO pars.add_argument('--timeout', type=float, default=30.0, help='The maximum timeout to wait for the mirror to catch up.')
|
|
31
|
-
|
|
32
31
|
opts = pars.parse_args(argv)
|
|
33
32
|
|
|
34
33
|
async with s_telepath.withTeleEnv():
|
|
@@ -50,5 +49,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
50
49
|
|
|
51
50
|
return 0
|
|
52
51
|
|
|
52
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
53
|
+
ret = await main(argv, outp=outp)
|
|
54
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
55
|
+
return ret
|
|
56
|
+
|
|
53
57
|
if __name__ == '__main__': # pragma: no cover
|
|
54
|
-
sys.exit(asyncio.run(
|
|
58
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/pullfile.py
CHANGED
|
@@ -6,6 +6,7 @@ import argparse
|
|
|
6
6
|
import synapse.common as s_common
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
|
|
11
12
|
|
|
@@ -66,6 +67,10 @@ def setup():
|
|
|
66
67
|
|
|
67
68
|
return pars
|
|
68
69
|
|
|
70
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
71
|
+
ret = await main(argv, outp=outp)
|
|
72
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
73
|
+
return ret
|
|
69
74
|
|
|
70
75
|
if __name__ == '__main__': # pragma: no cover
|
|
71
|
-
sys.exit(asyncio.run(
|
|
76
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/pushfile.py
CHANGED
|
@@ -9,6 +9,7 @@ import synapse.exc as s_exc
|
|
|
9
9
|
import synapse.common as s_common
|
|
10
10
|
import synapse.telepath as s_telepath
|
|
11
11
|
|
|
12
|
+
import synapse.lib.coro as s_coro
|
|
12
13
|
import synapse.lib.output as s_output
|
|
13
14
|
import synapse.lib.hashset as s_hashset
|
|
14
15
|
|
|
@@ -124,5 +125,10 @@ def makeargparser():
|
|
|
124
125
|
pars.add_argument('-t', '--tags', help='comma separated list of tags to add to the nodes')
|
|
125
126
|
return pars
|
|
126
127
|
|
|
128
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
129
|
+
ret = await main(argv, outp=outp)
|
|
130
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
131
|
+
return ret
|
|
132
|
+
|
|
127
133
|
if __name__ == '__main__': # pragma: no cover
|
|
128
|
-
sys.exit(asyncio.run(
|
|
134
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/reload.py
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import yaml
|
|
3
2
|
import asyncio
|
|
4
3
|
import argparse
|
|
5
4
|
|
|
6
|
-
import synapse.common as s_common
|
|
7
5
|
import synapse.telepath as s_telepath
|
|
8
6
|
|
|
9
|
-
|
|
7
|
+
import synapse.lib.coro as s_coro
|
|
10
8
|
import synapse.lib.output as s_output
|
|
11
9
|
import synapse.lib.urlhelp as s_urlhelp
|
|
12
10
|
|
|
@@ -70,5 +68,10 @@ def getArgParser():
|
|
|
70
68
|
|
|
71
69
|
return pars
|
|
72
70
|
|
|
71
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
72
|
+
ret = await main(argv, outp=outp)
|
|
73
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
74
|
+
return ret
|
|
75
|
+
|
|
73
76
|
if __name__ == '__main__': # pragma: no cover
|
|
74
|
-
sys.exit(asyncio.run(
|
|
77
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/rstorm.py
CHANGED
|
@@ -5,6 +5,7 @@ import argparse
|
|
|
5
5
|
|
|
6
6
|
import synapse.common as s_common
|
|
7
7
|
|
|
8
|
+
import synapse.lib.coro as s_coro
|
|
8
9
|
import synapse.lib.output as s_output
|
|
9
10
|
import synapse.lib.rstorm as s_rstorm
|
|
10
11
|
|
|
@@ -32,6 +33,11 @@ async def main(argv, outp=s_output.stdout):
|
|
|
32
33
|
for line in lines:
|
|
33
34
|
outp.printf(line, addnl=False)
|
|
34
35
|
|
|
35
|
-
|
|
36
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
36
37
|
s_common.setlogging(logger)
|
|
37
|
-
|
|
38
|
+
ret = await main(argv, outp=outp)
|
|
39
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
40
|
+
return ret
|
|
41
|
+
|
|
42
|
+
if __name__ == '__main__':
|
|
43
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/snapshot.py
CHANGED
|
@@ -6,6 +6,7 @@ import argparse
|
|
|
6
6
|
import synapse.exc as s_exc
|
|
7
7
|
import synapse.telepath as s_telepath
|
|
8
8
|
|
|
9
|
+
import synapse.lib.coro as s_coro
|
|
9
10
|
import synapse.lib.output as s_output
|
|
10
11
|
|
|
11
12
|
logger = logging.getLogger(__name__)
|
|
@@ -65,5 +66,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
65
66
|
outp.printf(f'ERROR {e.__class__.__name__}: {mesg}')
|
|
66
67
|
return 1
|
|
67
68
|
|
|
69
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
70
|
+
ret = await main(argv, outp=outp)
|
|
71
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
72
|
+
return ret
|
|
73
|
+
|
|
68
74
|
if __name__ == '__main__': # pragma: no cover
|
|
69
|
-
sys.exit(asyncio.run(
|
|
75
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
synapse/tools/storm.py
CHANGED
|
@@ -14,6 +14,7 @@ import synapse.telepath as s_telepath
|
|
|
14
14
|
|
|
15
15
|
import synapse.lib.cli as s_cli
|
|
16
16
|
import synapse.lib.cmd as s_cmd
|
|
17
|
+
import synapse.lib.coro as s_coro
|
|
17
18
|
import synapse.lib.node as s_node
|
|
18
19
|
import synapse.lib.output as s_output
|
|
19
20
|
import synapse.lib.parser as s_parser
|
|
@@ -648,5 +649,10 @@ async def main(argv, outp=s_output.stdout):
|
|
|
648
649
|
await cli.addSignalHandlers()
|
|
649
650
|
await cli.runCmdLoop()
|
|
650
651
|
|
|
652
|
+
async def _main(argv, outp=s_output.stdout): # pragma: no cover
|
|
653
|
+
ret = await main(argv, outp=outp)
|
|
654
|
+
await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
|
|
655
|
+
return ret
|
|
656
|
+
|
|
651
657
|
if __name__ == '__main__': # pragma: no cover
|
|
652
|
-
sys.exit(asyncio.run(
|
|
658
|
+
sys.exit(asyncio.run(_main(sys.argv[1:])))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.211.0
|
|
4
4
|
Summary: Synapse Intelligence Analysis Framework
|
|
5
5
|
Author-email: The Vertex Project LLC <root@vertex.link>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -49,7 +49,7 @@ Requires-Dist: idna<3.11,>=3.6
|
|
|
49
49
|
Requires-Dist: python-dateutil<3.0,>=2.8
|
|
50
50
|
Requires-Dist: pytz<2025.3,>=2023.3
|
|
51
51
|
Requires-Dist: beautifulsoup4[html5lib]<5.0,>=4.11.1
|
|
52
|
-
Requires-Dist:
|
|
52
|
+
Requires-Dist: vtx-yyjson<5.0.0,>=4.3.0
|
|
53
53
|
Provides-Extra: dev
|
|
54
54
|
Requires-Dist: pytest<8.0.0,>=7.2.0; extra == "dev"
|
|
55
55
|
Requires-Dist: autopep8<3.0.0,>=2.0.4; extra == "dev"
|