synapse 2.210.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 CHANGED
@@ -1,5 +1,6 @@
1
1
  import gc
2
2
  import os
3
+ import sys
3
4
  import atexit
4
5
  import signal
5
6
  import asyncio
@@ -82,7 +83,7 @@ class Base:
82
83
  '''
83
84
  def __init__(self):
84
85
  self.anitted = False
85
- assert inspect.stack()[1].function == 'anit', 'Objects from Base must be constructed solely via "anit"'
86
+ assert sys._getframe(1).f_code.co_name == 'anit', 'Objects from Base must be constructed solely via "anit"'
86
87
 
87
88
  @classmethod
88
89
  async def anit(cls, *args, **kwargs):
@@ -129,7 +130,6 @@ class Base:
129
130
  self.isfini = False
130
131
  self.anitted = True # For assertion purposes
131
132
  self.finievt = asyncio.Event()
132
- self.entered = False
133
133
 
134
134
  # hold a weak ref to other bases we should fini if they
135
135
  # are still around when we go down...
@@ -205,7 +205,6 @@ class Base:
205
205
 
206
206
  async def __aenter__(self):
207
207
  assert asyncio.get_running_loop() == self.loop
208
- self.entered = True
209
208
  return self
210
209
 
211
210
  async def __aexit__(self, exc, cls, tb):
synapse/lib/node.py CHANGED
@@ -181,7 +181,7 @@ class Node:
181
181
 
182
182
  if prop.modl.form(prop.type.name) is not None:
183
183
  buid = s_common.buid((prop.type.name, valu))
184
- elif prop.type.name == 'ndef':
184
+ elif prop.type.name == 'ndef' or 'ndef' in prop.type.info.get('bases'):
185
185
  buid = s_common.buid(valu)
186
186
  else:
187
187
  return None
synapse/lib/schemas.py CHANGED
@@ -668,9 +668,18 @@ _reqValidPkgdefSchema = {
668
668
  'pattern': s_version.semverstr,
669
669
  },
670
670
  'build': {
671
- 'type' 'object'
671
+ 'type': 'object',
672
672
  'properties': {
673
673
  'time': {'type': 'number'},
674
+ 'synapse:version': {
675
+ 'type': 'string',
676
+ 'pattern': s_version.semverstr
677
+ },
678
+ 'synapse:commit': {
679
+ 'type': 'string',
680
+ # Note: This pattern allows empty string for dev environments
681
+ 'pattern': '^[0-9a-fA-F]*$'
682
+ },
674
683
  },
675
684
  'required': ['time'],
676
685
  },
synapse/lib/share.py CHANGED
@@ -16,9 +16,6 @@ class Share(s_base.Base):
16
16
 
17
17
  self.iden = s_common.guid()
18
18
 
19
- self.exited = False
20
- self.entered = False
21
-
22
19
  sess = link.get('sess')
23
20
 
24
21
  async def fini():
synapse/lib/snap.py CHANGED
@@ -303,6 +303,9 @@ class ProtoNode:
303
303
  self.tags[tagnode.valu] = valu
304
304
  return tagnode
305
305
 
306
+ elif valu == (None, None):
307
+ return tagnode
308
+
306
309
  valu = s_time.ival(*valu, *curv)
307
310
  self.tags[tagnode.valu] = valu
308
311
 
synapse/lib/stormtypes.py CHANGED
@@ -6210,9 +6210,9 @@ class NodeData(Prim):
6210
6210
  {'name': 'valu', 'type': 'prim', 'desc': 'The data to store.', },
6211
6211
  ),
6212
6212
  'returns': {'type': 'null', }}},
6213
- {'name': 'list', 'desc': 'Get a list of the Node data names on the Node.',
6213
+ {'name': 'list', 'desc': 'Get a list of the Node data on the Node as (name, value) tuples.',
6214
6214
  'type': {'type': 'function', '_funcname': '_listNodeData',
6215
- 'returns': {'type': 'list', 'desc': 'List of the names of values stored on the node.', }}},
6215
+ 'returns': {'type': 'list', 'desc': 'List of (name, value) tuples stored on the node.', }}},
6216
6216
  {'name': 'load',
6217
6217
  'desc': 'Load the Node data onto the Node so that the Node data is packed and returned by the runtime.',
6218
6218
  'type': {'type': 'function', '_funcname': '_loadNodeData',
synapse/lib/version.py CHANGED
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
223
223
  ##############################################################################
224
224
  # The following are touched during the release process by bumpversion.
225
225
  # Do not modify these directly.
226
- version = (2, 210, 0)
226
+ version = (2, 211, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = 'e43efa9d9c2257ff05fe47988a323e16896fdf50'
228
+ commit = '99beab651131ab996a967c6d0345c80b89de4a74'
synapse/models/inet.py CHANGED
@@ -1535,6 +1535,11 @@ class InetModule(s_module.CoreModule):
1535
1535
  ('inet:service:platform', ('guid', {}), {
1536
1536
  'doc': 'A network platform which provides services.'}),
1537
1537
 
1538
+ ('inet:service:app', ('guid', {}), {
1539
+ 'interfaces': ('inet:service:object',),
1540
+ 'template': {'service:base': 'application'},
1541
+ 'doc': 'A platform specific application.'}),
1542
+
1538
1543
  ('inet:service:instance', ('guid', {}), {
1539
1544
  'doc': 'An instance of the platform such as Slack or Discord instances.'}),
1540
1545
 
@@ -1626,6 +1631,10 @@ class InetModule(s_module.CoreModule):
1626
1631
  'template': {'service:base': 'emote'},
1627
1632
  'doc': 'An emote or reaction by an account.'}),
1628
1633
 
1634
+ ('inet:service:access:action:taxonomy', ('taxonomy', {}), {
1635
+ 'interfaces': ('meta:taxonomy',),
1636
+ 'doc': 'A hierarchical taxonomy of service actions.'}),
1637
+
1629
1638
  ('inet:service:access', ('guid', {}), {
1630
1639
  'interfaces': ('inet:service:action',),
1631
1640
  'doc': 'Represents a user access request to a service resource.'}),
@@ -1774,6 +1783,9 @@ class InetModule(s_module.CoreModule):
1774
1783
  'interfaces': ('inet:service:base',),
1775
1784
  'props': (
1776
1785
 
1786
+ ('app', ('inet:service:app', {}), {
1787
+ 'doc': 'The app which handled the action.'}),
1788
+
1777
1789
  ('time', ('time', {}), {
1778
1790
  'doc': 'The time that the account initiated the action.'}),
1779
1791
 
@@ -1807,6 +1819,9 @@ class InetModule(s_module.CoreModule):
1807
1819
  ('client:host', ('it:host', {}), {
1808
1820
  'doc': 'The client host which initiated the action.'}),
1809
1821
 
1822
+ ('client:app', ('inet:service:app', {}), {
1823
+ 'doc': 'The client service app which initiated the action.'}),
1824
+
1810
1825
  ('server', ('inet:server', {}), {
1811
1826
  'doc': 'The network address of the server which handled the action.'}),
1812
1827
 
@@ -3608,12 +3623,22 @@ class InetModule(s_module.CoreModule):
3608
3623
 
3609
3624
  ('url', ('inet:url', {}), {
3610
3625
  'ex': 'https://twitter.com',
3626
+ 'alts': ('urls',),
3611
3627
  'doc': 'The primary URL of the platform.'}),
3612
3628
 
3629
+ ('urls', ('array', {'type': 'inet:url', 'sorted': True, 'uniq': True}), {
3630
+ 'doc': 'An array of alternate URLs for the platform.'}),
3631
+
3613
3632
  ('name', ('str', {'onespace': True, 'lower': True}), {
3614
3633
  'ex': 'twitter',
3634
+ 'alts': ('names',),
3615
3635
  'doc': 'A friendly name for the platform.'}),
3616
3636
 
3637
+ ('names', ('array', {'type': 'str',
3638
+ 'typeopts': {'onespace': True, 'lower': True},
3639
+ 'sorted': True, 'uniq': True}), {
3640
+ 'doc': 'An array of alternate names for the platform.'}),
3641
+
3617
3642
  ('desc', ('str', {}), {
3618
3643
  'disp': {'hint': 'text'},
3619
3644
  'doc': 'A description of the service platform.'}),
@@ -3662,6 +3687,22 @@ class InetModule(s_module.CoreModule):
3662
3687
  'doc': 'The tenant which contains the instance.'}),
3663
3688
  )),
3664
3689
 
3690
+ ('inet:service:app', {}, (
3691
+
3692
+ ('name', ('str', {'lower': True, 'onespace': True}), {
3693
+ 'alts': ('names',),
3694
+ 'doc': 'The name of the platform specific application.'}),
3695
+
3696
+ ('names', ('array', {'type': 'str',
3697
+ 'typeopts': {'onespace': True, 'lower': True},
3698
+ 'sorted': True, 'uniq': True}), {
3699
+ 'doc': 'An array of alternate names for the application.'}),
3700
+
3701
+ ('desc', ('str', {}), {
3702
+ 'disp': {'hint': 'text'},
3703
+ 'doc': 'A description of the platform specific application.'}),
3704
+ )),
3705
+
3665
3706
  ('inet:service:account', {}, (
3666
3707
 
3667
3708
  ('user', ('inet:user', {}), {
@@ -3937,6 +3978,9 @@ class InetModule(s_module.CoreModule):
3937
3978
 
3938
3979
  ('inet:service:access', {}, (
3939
3980
 
3981
+ ('action', ('inet:service:access:action:taxonomy', {}), {
3982
+ 'doc': 'The platform specific action which this access records.'}),
3983
+
3940
3984
  ('resource', ('inet:service:resource', {}), {
3941
3985
  'doc': 'The resource which the account attempted to access.'}),
3942
3986
 
synapse/models/orgs.py CHANGED
@@ -1241,7 +1241,6 @@ class OuModule(s_module.CoreModule):
1241
1241
  )),
1242
1242
  ('ou:conference:event', {}, (
1243
1243
  ('conference', ('ou:conference', {}), {
1244
- 'ro': True,
1245
1244
  'doc': 'The conference to which the event is associated.',
1246
1245
  }),
1247
1246
  ('organizer', ('ps:contact', {}), {
@@ -86,6 +86,11 @@ class BaseTest(s_t_utils.SynTest):
86
86
  await Hehe.anit(-1)
87
87
  self.eq(cm.exception.get('mesg'), 'boom')
88
88
 
89
+ if __debug__:
90
+ with self.raises(AssertionError) as cm:
91
+ Hehe()
92
+ self.eq(str(cm.exception), 'Objects from Base must be constructed solely via "anit"')
93
+
89
94
  async def test_coro_fini(self):
90
95
 
91
96
  event = asyncio.Event()
@@ -2384,6 +2384,26 @@ class StormTest(s_t_utils.SynTest):
2384
2384
  self.eq('barvuln', embeds['vuln']['name'])
2385
2385
  self.eq('foohw', embeds['node']['name'])
2386
2386
 
2387
+ # embed through `econ:pay:instrument` type that extends from `ndef`
2388
+ await core.nodes('''
2389
+ [ econ:acct:payment=* :from:instrument={ [ econ:pay:card=(testcard,) :name=infime ] } ]
2390
+ ''')
2391
+
2392
+ opts = {
2393
+ 'embeds': {
2394
+ 'econ:acct:payment': {
2395
+ 'from:instrument': ['name'],
2396
+ }
2397
+ }
2398
+ }
2399
+ msgs = await core.stormlist('econ:acct:payment', opts=opts)
2400
+ node = [m[1] for m in msgs if m[0] == 'node'][0]
2401
+ self.eq('econ:acct:payment', node[0][0])
2402
+
2403
+ embeds = node[1]['embeds']
2404
+ self.eq('86caf7a47348d56b2f6bec3e767a9fc7eaaaf5a80d7bbaa235fab763c7dcc560', embeds['from:instrument']['*'])
2405
+ self.eq('infime', embeds['from:instrument']['name'])
2406
+
2387
2407
  async def test_storm_wget(self):
2388
2408
 
2389
2409
  async def _getRespFromSha(core, mesgs):
@@ -1291,35 +1291,33 @@ class StormTypesTest(s_test.SynTest):
1291
1291
  self.len(1, nodes)
1292
1292
  self.eq('visi@vertex.link', nodes[0].ndef[1])
1293
1293
 
1294
- nodes = await core.nodes('$s = woot [ test:int=$s.startswith(w) ]')
1295
- self.eq(1, nodes[0].ndef[1])
1294
+ self.true(await core.callStorm('$s = woot return($s.startswith(w))'))
1296
1295
 
1297
- nodes = await core.nodes('$s = woot [ test:int=$s.endswith(visi) ]')
1298
- self.eq(0, nodes[0].ndef[1])
1296
+ self.false(await core.callStorm('$s = woot return($s.endswith(visi))'))
1299
1297
 
1300
- nodes = await core.nodes('$s = woot [ test:str=$s.rjust(10) ]')
1301
- self.eq(' woot', nodes[0].ndef[1])
1298
+ valu = await core.callStorm('$s = woot return($s.rjust(10))')
1299
+ self.eq(' woot', valu)
1302
1300
 
1303
- nodes = await core.nodes('$s = woot [ test:str=$s.rjust(10, x) ]')
1304
- self.eq('xxxxxxwoot', nodes[0].ndef[1])
1301
+ valu = await core.callStorm('$s = woot return($s.rjust(10, x))')
1302
+ self.eq('xxxxxxwoot', valu)
1305
1303
 
1306
- nodes = await core.nodes('$s = woot [ test:str=$s.ljust(10) ]')
1307
- self.eq('woot ', nodes[0].ndef[1])
1304
+ valu = await core.callStorm('$s = woot return($s.ljust(10))')
1305
+ self.eq('woot ', valu)
1308
1306
 
1309
- nodes = await core.nodes('$s = woot [ test:str=$s.ljust(10, x) ]')
1310
- self.eq('wootxxxxxx', nodes[0].ndef[1])
1307
+ valu = await core.callStorm('$s = woot return($s.ljust(10, x))')
1308
+ self.eq('wootxxxxxx', valu)
1311
1309
 
1312
1310
  sobj = s_stormtypes.Str('beepbeep')
1313
1311
  self.len(8, sobj)
1314
1312
 
1315
- nodes = await core.nodes("$s = (foo, bar, baz) [ test:str=('.').join($s) ]")
1316
- self.eq('foo.bar.baz', nodes[0].ndef[1])
1313
+ valu = await core.callStorm('$s = (foo, bar, baz) return((".").join($s))')
1314
+ self.eq('foo.bar.baz', valu)
1317
1315
 
1318
- nodes = await core.nodes('$s = foo-bar-baz [ test:str=$s.replace("-", ".") ]')
1319
- self.eq('foo.bar.baz', nodes[0].ndef[1])
1316
+ valu = await core.callStorm('$s = foo-bar-baz return($s.replace("-", "."))')
1317
+ self.eq('foo.bar.baz', valu)
1320
1318
 
1321
- nodes = await core.nodes('$s = foo-bar-baz [ test:str=$s.replace("-", ".", 1) ]')
1322
- self.eq('foo.bar-baz', nodes[0].ndef[1])
1319
+ valu = await core.callStorm('$s = foo-bar-baz return($s.replace("-", ".", 1))')
1320
+ self.eq('foo.bar-baz', valu)
1323
1321
 
1324
1322
  q = '$foo=" foo " return ( $foo.strip() )'
1325
1323
  self.eq('foo', await core.callStorm(q))
@@ -332,6 +332,20 @@ class ViewTest(s_t_utils.SynTest):
332
332
  self.len(100, nodeedit[0][2])
333
333
  self.len(2, nodeedit[1][2])
334
334
 
335
+ await core.nodes('[ test:str=lowertag +#a.b=2020]')
336
+
337
+ vdef2 = await core.view.fork()
338
+ opts = {'view': vdef2['iden']}
339
+ await core.nodes('test:str=lowertag [ +#a.b.c ]', opts=opts)
340
+
341
+ retn = await core.callStorm('test:str=lowertag return($node.getStorNodes())', opts=opts)
342
+
343
+ # Only leaf tag is added in our top layer
344
+ self.isin('a.b.c', retn[0].get('tags'))
345
+ self.notin('a.b', retn[0].get('tags'))
346
+
347
+ self.isin('a.b', retn[1].get('tags'))
348
+
335
349
  async def test_view_merge_ival(self):
336
350
 
337
351
  async with self.getTestCore() as core:
@@ -2971,7 +2971,9 @@ class InetModelTest(s_t_utils.SynTest):
2971
2971
  q = '''
2972
2972
  [ inet:service:platform=(slack,)
2973
2973
  :url="https://slack.com"
2974
+ :urls=(https://slacker.com,)
2974
2975
  :name=Slack
2976
+ :names=("slack chat",)
2975
2977
  :provider={ ou:org:name=$provname }
2976
2978
  :provider:name=$provname
2977
2979
  ]
@@ -2980,11 +2982,19 @@ class InetModelTest(s_t_utils.SynTest):
2980
2982
  self.len(1, nodes)
2981
2983
  self.eq(nodes[0].ndef, ('inet:service:platform', s_common.guid(('slack',))))
2982
2984
  self.eq(nodes[0].get('url'), 'https://slack.com')
2985
+ self.eq(nodes[0].get('urls'), ('https://slacker.com',))
2983
2986
  self.eq(nodes[0].get('name'), 'slack')
2987
+ self.eq(nodes[0].get('names'), ('slack chat',))
2984
2988
  self.eq(nodes[0].get('provider'), provider.ndef[1])
2985
2989
  self.eq(nodes[0].get('provider:name'), provname.lower())
2986
2990
  platform = nodes[0]
2987
2991
 
2992
+ nodes = await core.nodes('[ inet:service:platform=({"name": "slack chat"}) ]')
2993
+ self.eq(nodes[0].ndef, platform.ndef)
2994
+
2995
+ nodes = await core.nodes('[ inet:service:platform=({"url": "https://slacker.com"}) ]')
2996
+ self.eq(nodes[0].ndef, platform.ndef)
2997
+
2988
2998
  q = '''
2989
2999
  [ inet:service:instance=(vertex, slack)
2990
3000
  :id='T2XK1223Y'
@@ -3383,12 +3393,15 @@ class InetModelTest(s_t_utils.SynTest):
3383
3393
 
3384
3394
  q = '''
3385
3395
  [ inet:service:access=(api, blackout, 1715856900000, vertex, slack)
3396
+ :action=foo.bar
3386
3397
  :account=$blckiden
3387
3398
  :instance=$instiden
3388
3399
  :platform=$platiden
3389
3400
  :resource=$rsrciden
3390
3401
  :success=$lib.true
3391
3402
  :time=(1715856900000)
3403
+ :app={[ inet:service:app=({"name": "slack web"}) ]}
3404
+ :client:app={[ inet:service:app=({"name": "slack web"}) :desc="The slack web application"]}
3392
3405
  ]
3393
3406
  '''
3394
3407
  opts = {'vars': {
@@ -3400,12 +3413,14 @@ class InetModelTest(s_t_utils.SynTest):
3400
3413
  }}
3401
3414
  nodes = await core.nodes(q, opts=opts)
3402
3415
  self.len(1, nodes)
3416
+ self.eq(nodes[0].get('action'), 'foo.bar.')
3403
3417
  self.eq(nodes[0].get('account'), blckacct.ndef[1])
3404
3418
  self.eq(nodes[0].get('instance'), platinst.ndef[1])
3405
3419
  self.eq(nodes[0].get('platform'), platform.ndef[1])
3406
3420
  self.eq(nodes[0].get('resource'), resource.ndef[1])
3407
3421
  self.true(nodes[0].get('success'))
3408
3422
  self.eq(nodes[0].get('time'), 1715856900000)
3423
+ self.eq(nodes[0].get('app'), nodes[0].get('client:app'))
3409
3424
 
3410
3425
  q = '''
3411
3426
  [ inet:service:message=(visi, says, relax)
@@ -455,8 +455,24 @@ class OuModelTest(s_t_utils.SynTest):
455
455
  'place': place0,
456
456
  'url': 'http://arrowcon.org/2018/dinner',
457
457
  }
458
- q = '''[(ou:conference:event=$valu :name=$p.name :desc=$p.desc :start=$p.start :end=$p.end
459
- :conference=$p.conference :contact=$p.contact :place=$p.place :url=$p.url)]'''
458
+ q = '''
459
+ [ ou:conference:event=$valu
460
+ :name=$p.name
461
+ :desc=$p.desc
462
+ :start=$p.start
463
+ :end=$p.end
464
+ :conference=$p.conference
465
+ :contact=$p.contact
466
+ :place=$p.place
467
+ :url=$p.url
468
+ ]
469
+
470
+ // :conference should not be RO
471
+ [ -:conference ]
472
+
473
+ // Put the value back
474
+ [ :conference=$p.conference ]
475
+ '''
460
476
  nodes = await core.nodes(q, opts={'vars': {'valu': c0, 'p': props}})
461
477
  self.len(1, nodes)
462
478
  node = nodes[0]
@@ -3,6 +3,9 @@ import stat
3
3
 
4
4
  import synapse.exc as s_exc
5
5
  import synapse.common as s_common
6
+
7
+ import synapse.lib.version as s_version
8
+
6
9
  import synapse.tests.utils as s_test
7
10
  import synapse.tests.files as s_files
8
11
 
@@ -159,6 +162,12 @@ class GenPkgTest(s_test.SynTest):
159
162
  wflow = pdef['optic']['workflows']['testpkg-baz']
160
163
  self.eq(wflow, {'name': 'real-baz', 'desc': 'this is the real baz desc'})
161
164
 
165
+ build = pdef.get('build')
166
+ self.nn(build)
167
+ self.nn(build.get('time'))
168
+ self.eq(build.get('synapse:version'), s_version.verstring)
169
+ self.eq(build.get('synapse:commit'), s_version.commit)
170
+
162
171
  # nodocs
163
172
  nodocspath = s_common.genpath(core.dirn, 'testpkg_nodocs.json')
164
173
  argv = ('--no-docs', '--save', nodocspath, ymlpath)
synapse/tools/autodoc.py CHANGED
@@ -12,6 +12,7 @@ import synapse.common as s_common
12
12
  import synapse.cortex as s_cortex
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.storm as s_storm
17
18
  import synapse.lib.config as s_config
@@ -1041,6 +1042,11 @@ def makeargparser():
1041
1042
 
1042
1043
  return pars
1043
1044
 
1044
- if __name__ == '__main__': # pragma: no cover
1045
+ async def _main(argv, outp=None): # pragma: no cover
1045
1046
  s_common.setlogging(logger, 'DEBUG')
1046
- asyncio.run(main(sys.argv[1:]))
1047
+ ret = await main(argv, outp=outp)
1048
+ await asyncio.wait_for(s_coro.await_bg_tasks(), timeout=60)
1049
+ return ret
1050
+
1051
+ if __name__ == '__main__': # pragma: no cover
1052
+ asyncio.run(_main(sys.argv[1:]))
synapse/tools/genpkg.py CHANGED
@@ -18,6 +18,7 @@ import synapse.lib.output as s_output
18
18
  import synapse.lib.certdir as s_certdir
19
19
  import synapse.lib.dyndeps as s_dyndeps
20
20
  import synapse.lib.schemas as s_schemas
21
+ import synapse.lib.version as s_version
21
22
 
22
23
  logger = logging.getLogger(__name__)
23
24
 
@@ -122,6 +123,12 @@ def loadPkgProto(path, opticdir=None, no_docs=False, readonly=False):
122
123
 
123
124
  genopts = pkgdef.pop('genopts', {})
124
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
+
125
132
  logodef = pkgdef.get('logo')
126
133
  if logodef is not None:
127
134
 
@@ -265,8 +272,6 @@ async def main(argv, outp=s_output.stdout):
265
272
  else:
266
273
  pkgdef = loadPkgProto(opts.pkgfile, opticdir=opts.optic, no_docs=opts.no_docs)
267
274
 
268
- pkgdef['build'] = {'time': s_common.now()}
269
-
270
275
  if opts.signas is not None:
271
276
 
272
277
  s_certdir.addCertPath(opts.certdir)
@@ -283,6 +288,8 @@ async def main(argv, outp=s_output.stdout):
283
288
  'sign': sign,
284
289
  }
285
290
 
291
+ s_schemas.reqValidPkgdef(pkgdef)
292
+
286
293
  if not opts.save and not opts.push:
287
294
  outp.printf('Neither --push nor --save provided. Nothing to do.')
288
295
  return 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
- if __name__ == '__main__':
36
+ async def _main(argv, outp=s_output.stdout): # pragma: no cover
36
37
  s_common.setlogging(logger)
37
- sys.exit(asyncio.run(main(sys.argv[1:])))
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:])))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: synapse
3
- Version: 2.210.0
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
@@ -89,7 +89,7 @@ synapse/lib/aha.py,sha256=ll03EXHmOV4ZmG_KmkgdmU6uaMnFR9uhiDvQJj_79T4,56234
89
89
  synapse/lib/ast.py,sha256=fLVJwGFTtRUZWdKcxzd2PPCErDHfzt47aLT1wALwUSI,166296
90
90
  synapse/lib/auth.py,sha256=B7-Ji3MzPlW6pvRNtb0ciJKDru54QC-_yvznGraZCJs,54400
91
91
  synapse/lib/autodoc.py,sha256=tM2OCPrV7yeth8Cx-wx-_VXBmBfzJS52vaubg_7BqCI,23217
92
- synapse/lib/base.py,sha256=m6gQB_PhSg-7-GJlNVgBQQJNseGEEBCwiZesk62l5Kg,23464
92
+ synapse/lib/base.py,sha256=yJVfv7SiZhnzAP9LWKHlFOsY_l6ztUDNtt2TDT22U4Q,23422
93
93
  synapse/lib/boss.py,sha256=UvYIbUS32B70rK-5pPOeCKEKg2cR8ymedhuTYo_31Ik,2248
94
94
  synapse/lib/cache.py,sha256=N8BoNFQXOaYQU33LLYQcVkdV6IYjSNaUoaKue55y7H0,6275
95
95
  synapse/lib/cell.py,sha256=no45zKA9hZIzoElYg298pUxcOY6kCEoR_Prq9wuq9TI,184737
@@ -125,7 +125,7 @@ synapse/lib/modules.py,sha256=xHNrGBWLOSTSqn7GMMnm6iiw3Df-Q11h5gOUw84Ax7E,1282
125
125
  synapse/lib/msgpack.py,sha256=IEYF1sv0UoYq1BpqfZUzf30bAlWveC6ZArXBeY68vuI,7895
126
126
  synapse/lib/multislabseqn.py,sha256=cxNN1UdQPD3TDvGnNJcITkssAk5Y3pBsbd89sVd8qJw,15221
127
127
  synapse/lib/nexus.py,sha256=CrdOco9bcAzV1-93h1DlvZeqLP_kCIJvZRvb1Rwxgfk,23687
128
- synapse/lib/node.py,sha256=C4oiRjaLAYEiv5eETOYAROwQGg-EqhhtJCAZUtRBkI0,31251
128
+ synapse/lib/node.py,sha256=LnZGrwjMlE-S5iQQtLUQrtm8q8NK-03mzpYcvmjfRJA,31292
129
129
  synapse/lib/oauth.py,sha256=xgJNXyt4uWymt5xaoXpCAeZmrSiJV7XVwl9h3Pm92zg,20367
130
130
  synapse/lib/output.py,sha256=MARscREHja4h8PQN7GZxHGvF36RoOkUyw3vfhmFzMTk,890
131
131
  synapse/lib/parser.py,sha256=Tjk1aYa5ucQLzGGUf14dmNFpxfLiKu00ZWj8SgAf324,29471
@@ -133,13 +133,13 @@ synapse/lib/queue.py,sha256=omMtqD4HWg2mLOhhtIe4pA_evz234lJ9uhlAhC_xbW4,3879
133
133
  synapse/lib/ratelimit.py,sha256=BIeFPZb9Bk5GFIVvhM43Uw1s0abY6z7NgTuBorVajz4,1124
134
134
  synapse/lib/reflect.py,sha256=j7Y522UzAwNswUehyfi9kHFNkTxuHXsFuEKY4ATXWTQ,2783
135
135
  synapse/lib/rstorm.py,sha256=z5RdqNI0EkjWuU1oWbGXZrgxcBF32mFJGPA-_sdd6EM,19895
136
- synapse/lib/schemas.py,sha256=L4NooZyVHjPgG0f40MOEe66k_EThiuEzIV12JAuWB5c,40736
136
+ synapse/lib/schemas.py,sha256=gmjiPlA-7jHudG1Dq-TROh18NDxRjdu4-oCCdBUtDn8,41106
137
137
  synapse/lib/scope.py,sha256=0CuSXLG_7pNleC1BcJ8_WbA50DswrX4DNjW5MyGGGNo,5496
138
138
  synapse/lib/scrape.py,sha256=-TLjUrerHCGiuCOeuGOGA6IpQdaFGW6LvwZtp1xOCnw,23785
139
- synapse/lib/share.py,sha256=HDQR7nb4IOleHB1kIFe6prZQVW7PjPAivSAkPuhNn5A,663
139
+ synapse/lib/share.py,sha256=wE0WE77QxJTbfcZmVLn_9hHbXMsptj6e2I4KbTho9_Q,605
140
140
  synapse/lib/slaboffs.py,sha256=Fd0RrIRBMjh159aQz5y1ONmzw0NvV040kVX_jZjQW6I,815
141
141
  synapse/lib/slabseqn.py,sha256=LJ2SZEsZlROBAD3mdS-3JxNVVPXXkBW8GIJXsW0OGG8,10287
142
- synapse/lib/snap.py,sha256=pO-_HKY9juB2ZtecnFIMx9aXTdDzsMfXVmW6uMZHucQ,63626
142
+ synapse/lib/snap.py,sha256=lEadx_uxi5EqmwLtay8jxNCmzYrG-86hGDmEqh_IX6c,63689
143
143
  synapse/lib/spooled.py,sha256=BQHIW-qZvEcvhEf8PpXhbDDGzq1go4TH63D6kn-1anM,6021
144
144
  synapse/lib/storm.lark,sha256=8RxsM4xYhBpJbGpS2Yfft74eQyvFvD0FbSbaSkLcL20,27412
145
145
  synapse/lib/storm.py,sha256=zda0wgsophZ52T9hgLbiORJHcZHiS2nU3opGoeL5F88,205526
@@ -147,7 +147,7 @@ synapse/lib/storm_format.py,sha256=9cE8WNPYTcqgRakIqkmIQzOr16Hqbj_sM1QabHug3i0,4
147
147
  synapse/lib/stormctrl.py,sha256=3UC2LOHClC17JwYNuo8NeyntuAvIXphjenXEzVP33mY,2523
148
148
  synapse/lib/stormhttp.py,sha256=3BdaZM6wC3iuYc4ryxtroyTdGhGhei40EoKiH4qSwIE,28877
149
149
  synapse/lib/stormsvc.py,sha256=FURIsQUVNJmY8Z5TmhTF1O__DGXPiVg5pUiOoPM8r3g,7573
150
- synapse/lib/stormtypes.py,sha256=dS7jv3aL8yt_tm4UNUX9rO_biF1OMsDyO30066bdiNw,402209
150
+ synapse/lib/stormtypes.py,sha256=R_kRMtJda1h0IPzMN7Rit9mP8Kk62jm1zx4I2ngxHPA,402228
151
151
  synapse/lib/stormwhois.py,sha256=w7N2oCyMljNvi_sRt_bZb5BJwWwYkVGcRd7H_0oHY8Q,2554
152
152
  synapse/lib/structlog.py,sha256=v5MK5jtJIRSF-E4y4fQuzEVKmbocu8ByFLDTY8Ybjpk,1336
153
153
  synapse/lib/task.py,sha256=82by24W-g_PhijFBN97AtvMLHMwlJIsP37fDS2f572Y,6235
@@ -158,7 +158,7 @@ synapse/lib/time.py,sha256=bk_1F6_MDuCWJ1ToPJ-XHkeTWVw5b4SE7cCixBqVxXo,9435
158
158
  synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
159
159
  synapse/lib/types.py,sha256=plPuYWNaJmCWjYIOWIkDhh8NhTONATZD6d85qf2NUfM,69740
160
160
  synapse/lib/urlhelp.py,sha256=ljhnF91z9ihyOLdZZ6OoQYCN1WYjOj1imukD45xiKU0,3320
161
- synapse/lib/version.py,sha256=3sugPlUtaYCItlaNd8dP2k4ygvYtkoPMi_FIC1PO6fI,7162
161
+ synapse/lib/version.py,sha256=hasJBA2RqBIZmv75WPAU0Pa_ihz-AROf_OoTHzHZSHU,7162
162
162
  synapse/lib/view.py,sha256=lidWNualB8Imtz1x6aWo70bntdv9Sf9tpG78cliDKjI,62682
163
163
  synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
164
  synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
@@ -239,13 +239,13 @@ synapse/models/entity.py,sha256=loHKByGwv2xyz6cYWWUpwk12mxWNzC06BKgDgWfX6ek,1617
239
239
  synapse/models/files.py,sha256=4nA0LGK2gKEjErzTnFfIX7kxNn8c_C7xWAfiwWFz5zY,34396
240
240
  synapse/models/geopol.py,sha256=1DGxLJ60QlnSIe3WxxViYQ3KFSwm89vvGc534bbSNBo,11304
241
241
  synapse/models/geospace.py,sha256=Ix54xGdGRZNqLI0r6r9OA1t6vqB3XM1lkoy86Vjt5XA,21155
242
- synapse/models/inet.py,sha256=XE_fILzEiG0KrlWAH9DA6HrliXLr030ve9OPsBjywVk,175471
242
+ synapse/models/inet.py,sha256=N5BWOh7A8lNGo3J6T5jJLouHe3rL-9E4tKhJOW7tJig,177839
243
243
  synapse/models/infotech.py,sha256=Hrv51zXxXGRLiitgbByM7BK_Y_mX18uL5mizZXn2lZA,153163
244
244
  synapse/models/language.py,sha256=hBVVIf5kc_FSIV7HZhWnberoc9ssxuqeff4fqC9iz4o,3640
245
245
  synapse/models/material.py,sha256=UvmnBEkbhBbdbnvWtTlgGJAJlKDrx9E-YSQ3K49ws5M,5405
246
246
  synapse/models/math.py,sha256=5zDLSwGbOcWI6T5-KspPL20sR8Bcs59pnRK2nEELzss,1775
247
247
  synapse/models/media.py,sha256=wdXNzLrHb4YYRZ3NlGombNwZsphwfH20oZQQ9ICq7ZQ,3604
248
- synapse/models/orgs.py,sha256=1zAIdOA0mf5O-6RGMcf5oDmLM7kkIjWxZN3voThOAnc,71526
248
+ synapse/models/orgs.py,sha256=0q7TDvDIDUvPzu-a2ZX1w7G6vUMLgbR2_-0MKIJfU6k,71490
249
249
  synapse/models/person.py,sha256=HiZy_zT0Q1AoeXbpogEJWuJe436bOo_Ai4kkmA9c2ZU,28568
250
250
  synapse/models/planning.py,sha256=vmrY4d3WRxizrNU1YBe36NGZTuuu4lhGS8KI5lCZ5yQ,7302
251
251
  synapse/models/proj.py,sha256=vl-2uZouiWSey8t4lTNA4BxUKhX94rqm3SuLrodQUP8,9904
@@ -286,7 +286,7 @@ synapse/tests/test_lib_aha.py,sha256=gpO-B6C-w_YtrqZlsaKsnpsDIEtAYSJZ3un25rAHTmU
286
286
  synapse/tests/test_lib_ast.py,sha256=_HA-7HozurJHmSFlamEYCWt3iiqd9Zs8fzW8MxtJNd4,192475
287
287
  synapse/tests/test_lib_auth.py,sha256=yuuOnBje8At7EN_DVEkqE_jsYirZYTIOaGa2VcKrckk,45011
288
288
  synapse/tests/test_lib_autodoc.py,sha256=Iz-VuUhwxvQ3ojK-cemSo7CdCUAyFVJ8MfJ2KbFDcjQ,8354
289
- synapse/tests/test_lib_base.py,sha256=dG6KZTXA_CjcqIiUTI5d_Xl_1iqI78hKodB7h3YgY1g,14555
289
+ synapse/tests/test_lib_base.py,sha256=F9tq0G-KgJluob0Np3fBdByOlHxizciAoqAhrGGwe2U,14751
290
290
  synapse/tests/test_lib_boss.py,sha256=xLmfoFFS8-dreIegA_vTJ5_c4-S9UHp48MWLH6_8P0M,1917
291
291
  synapse/tests/test_lib_cache.py,sha256=oQgEBhm8pZFCEvMfcD3znTDQgl8Gv91fEOB-3eb2IIg,8594
292
292
  synapse/tests/test_lib_cell.py,sha256=FbeM8WiKx-jXUZsPvESfLO1GvOZ4xGz7kGWgZlLL5pQ,157097
@@ -334,7 +334,7 @@ synapse/tests/test_lib_slaboffs.py,sha256=FHQ8mGZ27dGqVwGk6q2UJ4gkPRZN22eIVzS8hM
334
334
  synapse/tests/test_lib_slabseqn.py,sha256=74V6jU7DRTsy_hqUFDuT4C6dPlJ6ObNnjmI9qhbbyVc,5230
335
335
  synapse/tests/test_lib_snap.py,sha256=OviJtj9N5LhBV-56TySkWvRly7f8VH9d-VBcNFLAtmg,27805
336
336
  synapse/tests/test_lib_spooled.py,sha256=Ki9UnzTPUtw7devwN_M0a8uwOst81fGQtGSVqSSh1u8,4002
337
- synapse/tests/test_lib_storm.py,sha256=hWKLtjyZQAI5BYTcVfWkyleU-DVM8jL1KYvjp6sjfDk,244001
337
+ synapse/tests/test_lib_storm.py,sha256=fNe7fog-bLNgARHk5OVduRyjLwl-FY-05uagfz8_Szg,244847
338
338
  synapse/tests/test_lib_storm_format.py,sha256=tEZgQMmKAeG8FQZE5HUjOT7bnKawVTpNaVQh_3Wa630,277
339
339
  synapse/tests/test_lib_stormctrl.py,sha256=1vY7PGjgmz3AibgSiGcp_G4NSYl9YNifWdjPB0CDf1g,2877
340
340
  synapse/tests/test_lib_stormhttp.py,sha256=l0MsH5zKFMThASs4XGyryOhJNql1yL8hcxlfaqGSYpE,45940
@@ -379,7 +379,7 @@ synapse/tests/test_lib_stormlib_vault.py,sha256=pE_nDisXiyb-4Zm1hOrfsuEz3bjYwR8c
379
379
  synapse/tests/test_lib_stormlib_xml.py,sha256=asF-Y1LVpLoqHRK71_LWy727XJvsTNpf8qRSK-CynMM,3659
380
380
  synapse/tests/test_lib_stormlib_yaml.py,sha256=egTVXk8wW31V2msF__9WxP3THcqfysG1mYhc7hQG8rw,1358
381
381
  synapse/tests/test_lib_stormsvc.py,sha256=zeaC4De4_osl5uA2OgEp5M2CIQlW8d6PogMzFqEhfqg,43970
382
- synapse/tests/test_lib_stormtypes.py,sha256=7wQTvSFWzryDrUvfefS9Qz8O8z3t0DAJfAm6dLSigIM,321819
382
+ synapse/tests/test_lib_stormtypes.py,sha256=YnrqZaAjxQmaeIfmZ7qFT-Yf05Uv88VDvTQ5pNz5g-c,321644
383
383
  synapse/tests/test_lib_stormwhois.py,sha256=AWMUYEgZ5yqvDfPC_rM4evmhgfOA_Fv5aoTjmKmN1_0,4818
384
384
  synapse/tests/test_lib_structlog.py,sha256=BxglFqOsJFPE2RsZ8dQyTBCEe1frQrHWWXmUBO2fPJs,3898
385
385
  synapse/tests/test_lib_task.py,sha256=UQi14LdQ0rxDRCSy4TAxyq2OXDOXPQqnvp-nCK_aoBE,2454
@@ -389,7 +389,7 @@ synapse/tests/test_lib_trigger.py,sha256=IxKkVxfQLrCz6Qy6yIrLw5-57KmTmuE6rqKztcj
389
389
  synapse/tests/test_lib_types.py,sha256=4hC-NmKh_8oG-vrV7dxg62yN1sGrV7g3uV6P0VF2H38,78350
390
390
  synapse/tests/test_lib_urlhelp.py,sha256=7H_IY0dNQPVV17iuL9KK7Q128A3_J4sRzJ573D5RpQc,3747
391
391
  synapse/tests/test_lib_version.py,sha256=yDczjNi60hXXNZ-pYVntDblGNcekFZU6DdDsjUTkGtM,8164
392
- synapse/tests/test_lib_view.py,sha256=T1oUzJ0y6o9HAHU5pXp_9bWVbZpFqw90yF42ihcj9Pk,41192
392
+ synapse/tests/test_lib_view.py,sha256=jljS79RvgD2owpPotIXvuG_9IwwmLt3t8g2MkbIsBco,41728
393
393
  synapse/tests/test_lookup_iso3166.py,sha256=Xd2K0r0P5s-Towx_3qjDbJRd16Gr-ItMTIkYn0OU-Rk,375
394
394
  synapse/tests/test_lookup_phonenum.py,sha256=t9lWLGtalmDYVH5C0JMC1E8QdtO4AGW4F8l4jekSJeE,290
395
395
  synapse/tests/test_mindmeld.py,sha256=TiijGH7wX2zdXIFSBUlN40CPOvYaFlw6Wxi66XZuB_M,26
@@ -408,13 +408,13 @@ synapse/tests/test_model_geospace.py,sha256=8ATsx662mrcKzurMpQGbshnQPYOWqO7wxOWp
408
408
  synapse/tests/test_model_gov_cn.py,sha256=FnfKNM_wnvmScLm4cYFSQXZ21kVaTPPDusiCD79awBA,675
409
409
  synapse/tests/test_model_gov_intl.py,sha256=mHYK056C2R0aDH-5-TnUxtH0ZlKnEOoSd9ODIMasmow,780
410
410
  synapse/tests/test_model_gov_us.py,sha256=kvZ9DudBrbKtZmqGm8X-b_IOw4oJ7XZMnvTgiDkzsrY,1525
411
- synapse/tests/test_model_inet.py,sha256=qgLatbaWdxQpRmSiXmOf31tNRZsPILOq7sQ4ErD_uE0,156348
411
+ synapse/tests/test_model_inet.py,sha256=S18mRmVZPuKDtlvCZW5CT10PqjTxDZbR23SyruL9qpI,157185
412
412
  synapse/tests/test_model_infotech.py,sha256=utLzSeQc7ZOcC0HrXPkMh8pUmustP_Kb6u19EkUjHr8,114072
413
413
  synapse/tests/test_model_language.py,sha256=49stF1B8_EwWJB67Xa5VXCG563Zfbr6S85iKN9Iom48,3046
414
414
  synapse/tests/test_model_material.py,sha256=Hkd8BJh6FdQE0RuFMV2NO6fGqw9kOCb5AeIuTYtwCEM,2723
415
415
  synapse/tests/test_model_math.py,sha256=x-rHBfm-59ueZdHXXzSi53eshldvVURoJeLeexWTL2U,826
416
416
  synapse/tests/test_model_media.py,sha256=OhMb3OwmZ7hXfoQYGeUBlnsqIk0sAohSodCLML2_yVk,2655
417
- synapse/tests/test_model_orgs.py,sha256=DTCjdRi8lyHLIaEcK8X-F-sBPp2vbUllJBBWInE5cew,47402
417
+ synapse/tests/test_model_orgs.py,sha256=UKx0CBScjAir2R1L1Ev5MFNp1Wutc8Nv0D5xlafF2uw,47699
418
418
  synapse/tests/test_model_person.py,sha256=CKfOtp7iCPAHQEfjlduDxPXLbFbi2LdVqExRyVwoxAc,19170
419
419
  synapse/tests/test_model_planning.py,sha256=U2kkE0uBO6CqtTfy7wlnhEIu_NFdSri4I_I5b-mRjBE,5615
420
420
  synapse/tests/test_model_proj.py,sha256=hCuM-CTyCAvqVPy7klP6NXOEtgJ61OyyT0x8mcJsjns,23238
@@ -442,7 +442,7 @@ synapse/tests/test_tools_csvtool.py,sha256=mZWZgHYD7S7eQ_SlBczS3UufuAgdOFE0ccq4I
442
442
  synapse/tests/test_tools_docker_validate.py,sha256=iFkbJE98au96a3u9NTCukvebXfbh1WsacuuvtgVNLTU,3667
443
443
  synapse/tests/test_tools_easycert.py,sha256=K3Sf8E5mDdL19uMFi55OYyzH_hvP3R3Z1XqCJlMxQLw,8854
444
444
  synapse/tests/test_tools_feed.py,sha256=a-kR3UvaitKzMSH_cXQZnbbfz_39Evpf1SmOlj6Me4c,6082
445
- synapse/tests/test_tools_genpkg.py,sha256=BZ_3WLtEKbclANzHrbKIwiEPTW8VH9MsIFent4BfcF8,12898
445
+ synapse/tests/test_tools_genpkg.py,sha256=u68vdSzmzZDzniA_7uXOT_dsTyFWFp1SNvKE6pd8-4o,13183
446
446
  synapse/tests/test_tools_guid.py,sha256=9NgdtIDMta9qwM8vsU5Gckv0llBibNXaEv0zpUrBPX8,314
447
447
  synapse/tests/test_tools_healthcheck.py,sha256=VdOoDUG1XtsOH3jyV-2Z2DbEeWKs6o2rty5Gy67aCX4,3543
448
448
  synapse/tests/test_tools_hiveload.py,sha256=d-2cCVNOFGpUcW2aO6gY_HcVgL9M0rTxlc8HfCkcZCI,3992
@@ -529,7 +529,7 @@ synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml,sha256=zoN8HxrO1QNumYZJy
529
529
  synapse/tests/files/testcore/cell.yaml,sha256=fBUjBfX1L-0nGQD-VhLMy_IjrDepI9zRzbmgsVFJSYY,46
530
530
  synapse/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
531
531
  synapse/tools/apikey.py,sha256=K9EbxMXGVU3oQ45vS_-CuMCUbdyTzsO4C1P7XIp4f6U,3624
532
- synapse/tools/autodoc.py,sha256=-lH4TtIS3LCfSaxZrTuiANZZSRWkPFgXQN-XP8UVKas,35581
532
+ synapse/tools/autodoc.py,sha256=pQoNrOIDim1p-lxqDfmE8211fLqQIXKaMp1qJtMiemg,35788
533
533
  synapse/tools/axon2axon.py,sha256=lM3AOxKGdGwQ3XsEj-pyUjZ04s2rj0qSu6MlHCHhCWw,1872
534
534
  synapse/tools/backup.py,sha256=Cz3OSaYMRND7gE55FdyjrBr3C1_qd68yJ23O4-mukCM,5969
535
535
  synapse/tools/cellauth.py,sha256=-i6Fq2P9e-cXf69SWGnVc2TwGoW-vHED3D3oNEgTSog,12239
@@ -538,7 +538,7 @@ synapse/tools/cmdr.py,sha256=xnW_EAzQ7fnpWZ0SpNvthDBCcTn2ahMXxveBd4AuSd4,1789
538
538
  synapse/tools/csvtool.py,sha256=mqCXRR2JLI4Xz9ScPR6sYkRAKfhTP2yWQFBWAk7vg24,7631
539
539
  synapse/tools/easycert.py,sha256=naoYnWfg0m6NrBraKUVk3FK5OW53yVBZH8rv6RrXRH8,4531
540
540
  synapse/tools/feed.py,sha256=ohqhWAPaLCTj7oVl1_Lom8xvYvExQnFs3EkuzEbQfgk,6063
541
- synapse/tools/genpkg.py,sha256=Gs1Y1ft_A6smHRyYwtl5qz0wBVsXthBAhtICGs3r-SM,10185
541
+ synapse/tools/genpkg.py,sha256=PjbCtkIEgjTr0HQPUBYMA5CsRfo5lBI9RN9k7E5wxNg,10511
542
542
  synapse/tools/guid.py,sha256=UCBFqUSBdXt5WJYcoP0Vme_oOUXU040DZJEpay4uZHk,300
543
543
  synapse/tools/healthcheck.py,sha256=KfZDyU-VPzUhg1F4VLl5o7qUbmwMG2Ubu4sWoXlD0wk,3532
544
544
  synapse/tools/json2mpk.py,sha256=Q8RtWw4xav6WiCg5ty8ctTm-O1oDbsybFuXRacjrN28,1384
@@ -549,7 +549,7 @@ synapse/tools/promote.py,sha256=x_pB4PqFtDsn-oTZ637OMyijo0XuXTsOiOPXk-0H-Pc,1854
549
549
  synapse/tools/pullfile.py,sha256=JdealCDQetOdgB_MuhnhZ2OeaaVqva3LsJKx6nLScT4,2259
550
550
  synapse/tools/pushfile.py,sha256=D3r0zQsVzAGLqKoe-6LQuQkmAGiRzwwrgbMTFHnmK9o,4420
551
551
  synapse/tools/reload.py,sha256=QayPeftB4JEyVEKKp5ijeveRx0DuGUuNzu8fTvZKR-o,2895
552
- synapse/tools/rstorm.py,sha256=E6ggQYlsD7j4VqwunrVBVRfsLJpVcTBCigZfu3PWJqA,1057
552
+ synapse/tools/rstorm.py,sha256=AqW2qQ3bI5ZZCBVq2IZlpyAN-pn6gXurXDGXEtc-8RA,1275
553
553
  synapse/tools/snapshot.py,sha256=ZoP-VRr9CAAorbGevrHObIx-FjwhjUiuMZw26b2Er2s,2372
554
554
  synapse/tools/storm.py,sha256=i8Y13Ovhf9ksCrSLjpe6sPMODY50lMC03rni7PmMrAk,20967
555
555
  synapse/tools/aha/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -619,8 +619,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
619
619
  synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
620
620
  synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
621
621
  synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
622
- synapse-2.210.0.dist-info/licenses/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
623
- synapse-2.210.0.dist-info/METADATA,sha256=zyTIVaDdYthQGkHbjLg3cLI41iQK5b8abepOeGBqor4,4623
624
- synapse-2.210.0.dist-info/WHEEL,sha256=0C6Q6ZHEVcP8W8MQkRg-CTqf9ao0-GRLLM0uaK5MIlg,93
625
- synapse-2.210.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
626
- synapse-2.210.0.dist-info/RECORD,,
622
+ synapse-2.211.0.dist-info/licenses/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
623
+ synapse-2.211.0.dist-info/METADATA,sha256=qkp2q8_H3C6unocY3-qfZ3pMjILiE2SDGKRsW88jpiA,4623
624
+ synapse-2.211.0.dist-info/WHEEL,sha256=iD2i6mzht9bK_yPJG_uTWJqikxMnkavAqpkSXwQgUD0,93
625
+ synapse-2.211.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
626
+ synapse-2.211.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.4.0)
2
+ Generator: setuptools (80.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py311-none-any
5
5