synapse 2.212.0__py311-none-any.whl → 2.213.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/cell.py +6 -3
- synapse/lib/scrape.py +3 -1
- synapse/lib/snap.py +13 -15
- synapse/lib/stormlib/spooled.py +3 -0
- synapse/lib/stormtypes.py +18 -0
- synapse/lib/types.py +36 -8
- synapse/lib/version.py +2 -2
- synapse/telepath.py +4 -2
- synapse/tests/test_lib_cell.py +15 -3
- synapse/tests/test_lib_scrape.py +6 -0
- synapse/tests/test_lib_storm.py +2 -0
- synapse/tests/test_lib_stormlib_spooled.py +11 -0
- synapse/tests/test_lib_stormtypes.py +11 -0
- synapse/tests/test_lib_types.py +136 -44
- synapse/tests/test_model_crypto.py +8 -0
- synapse/tests/test_telepath.py +18 -0
- {synapse-2.212.0.dist-info → synapse-2.213.0.dist-info}/METADATA +1 -1
- {synapse-2.212.0.dist-info → synapse-2.213.0.dist-info}/RECORD +21 -21
- {synapse-2.212.0.dist-info → synapse-2.213.0.dist-info}/WHEEL +0 -0
- {synapse-2.212.0.dist-info → synapse-2.213.0.dist-info}/licenses/LICENSE +0 -0
- {synapse-2.212.0.dist-info → synapse-2.213.0.dist-info}/top_level.txt +0 -0
synapse/lib/cell.py
CHANGED
|
@@ -3495,13 +3495,16 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
3495
3495
|
await user.addRule(rule)
|
|
3496
3496
|
|
|
3497
3497
|
@contextlib.asynccontextmanager
|
|
3498
|
-
async def getLocalProxy(self, share=
|
|
3498
|
+
async def getLocalProxy(self, share=None, user='root'):
|
|
3499
3499
|
url = self.getLocalUrl(share=share, user=user)
|
|
3500
3500
|
prox = await s_telepath.openurl(url)
|
|
3501
3501
|
yield prox
|
|
3502
3502
|
|
|
3503
|
-
def getLocalUrl(self, share=
|
|
3504
|
-
|
|
3503
|
+
def getLocalUrl(self, share=None, user='root'):
|
|
3504
|
+
url = f'cell://{user}@{self.dirn}'
|
|
3505
|
+
if share is not None:
|
|
3506
|
+
url = f'{url}:{share}'
|
|
3507
|
+
return url
|
|
3505
3508
|
|
|
3506
3509
|
def _initCellConf(self, conf):
|
|
3507
3510
|
'''
|
synapse/lib/scrape.py
CHANGED
|
@@ -65,6 +65,8 @@ inverse_prefixs = {
|
|
|
65
65
|
'<': '>',
|
|
66
66
|
'{': '}',
|
|
67
67
|
'(': ')',
|
|
68
|
+
'\u2018': '\u2019', # Unicode Left Single Quotation Mark and Right Single Quotation Mark
|
|
69
|
+
'\u201c': '\u201d', # Unicode Left Double Quotation Mark and Right Double Quotation Mark
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
cve_dashes = ''.join(('-',) + s_chop.unicode_dashes)
|
|
@@ -287,7 +289,7 @@ def url_scheme_check(match: regex.Match):
|
|
|
287
289
|
scrape_types = [ # type: ignore
|
|
288
290
|
('file:path', linux_path_regex, {'callback': linux_path_check, 'flags': regex.VERBOSE}),
|
|
289
291
|
('file:path', windows_path_regex, {'callback': windows_path_check, 'flags': regex.VERBOSE}),
|
|
290
|
-
('inet:url', r'(?P<prefix>[
|
|
292
|
+
('inet:url', r'(?P<prefix>[‘“\\{<\(\[]?)(?P<valu>[a-zA-Z][a-zA-Z0-9]*://(?(?=[,.]+[ \'\"\t\n\r\f\v])|[^ \'\"\t\n\r\f\v])+)',
|
|
291
293
|
{'callback': url_scheme_check}),
|
|
292
294
|
('inet:url', r'(["\'])?(?P<valu>\\[^\n]+?)(?(1)\1|\s)', {'callback': unc_path_check}),
|
|
293
295
|
('inet:email', r'(?=(?:[^a-z0-9_.+-]|^)(?P<valu>[a-z0-9_\.\-+]{1,256}@(?:[a-z0-9_-]{1,63}\.){1,10}(?:%s))(?:[^a-z0-9_.-]|[.\s]|$))' % tldcat, {}),
|
synapse/lib/snap.py
CHANGED
|
@@ -1325,13 +1325,13 @@ class Snap(s_base.Base):
|
|
|
1325
1325
|
|
|
1326
1326
|
if etyp == s_layer.EDIT_NODE_ADD:
|
|
1327
1327
|
node.bylayer['ndef'] = wlyr.iden
|
|
1328
|
-
callbacks.append((node.form.wasAdded, (node,)
|
|
1329
|
-
callbacks.append((self.view.runNodeAdd, (node,)
|
|
1328
|
+
callbacks.append((node.form.wasAdded, (node,)))
|
|
1329
|
+
callbacks.append((self.view.runNodeAdd, (node,)))
|
|
1330
1330
|
continue
|
|
1331
1331
|
|
|
1332
1332
|
if etyp == s_layer.EDIT_NODE_DEL:
|
|
1333
|
-
callbacks.append((node.form.wasDeleted, (node,)
|
|
1334
|
-
callbacks.append((self.view.runNodeDel, (node,)
|
|
1333
|
+
callbacks.append((node.form.wasDeleted, (node,)))
|
|
1334
|
+
callbacks.append((self.view.runNodeDel, (node,)))
|
|
1335
1335
|
continue
|
|
1336
1336
|
|
|
1337
1337
|
if etyp == s_layer.EDIT_PROP_SET:
|
|
@@ -1346,8 +1346,8 @@ class Snap(s_base.Base):
|
|
|
1346
1346
|
node.props[name] = valu
|
|
1347
1347
|
node.bylayer['props'][name] = wlyr.iden
|
|
1348
1348
|
|
|
1349
|
-
callbacks.append((prop.wasSet, (node, oldv)
|
|
1350
|
-
callbacks.append((self.view.runPropSet, (node, prop, oldv)
|
|
1349
|
+
callbacks.append((prop.wasSet, (node, oldv)))
|
|
1350
|
+
callbacks.append((self.view.runPropSet, (node, prop, oldv)))
|
|
1351
1351
|
continue
|
|
1352
1352
|
|
|
1353
1353
|
if etyp == s_layer.EDIT_PROP_DEL:
|
|
@@ -1362,8 +1362,8 @@ class Snap(s_base.Base):
|
|
|
1362
1362
|
node.props.pop(name, None)
|
|
1363
1363
|
node.bylayer['props'].pop(name, None)
|
|
1364
1364
|
|
|
1365
|
-
callbacks.append((prop.wasDel, (node, oldv)
|
|
1366
|
-
callbacks.append((self.view.runPropSet, (node, prop, oldv)
|
|
1365
|
+
callbacks.append((prop.wasDel, (node, oldv)))
|
|
1366
|
+
callbacks.append((self.view.runPropSet, (node, prop, oldv)))
|
|
1367
1367
|
continue
|
|
1368
1368
|
|
|
1369
1369
|
if etyp == s_layer.EDIT_TAG_SET:
|
|
@@ -1373,8 +1373,7 @@ class Snap(s_base.Base):
|
|
|
1373
1373
|
node.tags[tag] = valu
|
|
1374
1374
|
node.bylayer['tags'][tag] = wlyr.iden
|
|
1375
1375
|
|
|
1376
|
-
callbacks.append((self.view.runTagAdd, (node, tag, valu)
|
|
1377
|
-
callbacks.append((self.wlyr.fire, ('tag:add', ), {'tag': tag, 'node': node.iden()}))
|
|
1376
|
+
callbacks.append((self.view.runTagAdd, (node, tag, valu)))
|
|
1378
1377
|
continue
|
|
1379
1378
|
|
|
1380
1379
|
if etyp == s_layer.EDIT_TAG_DEL:
|
|
@@ -1384,8 +1383,7 @@ class Snap(s_base.Base):
|
|
|
1384
1383
|
node.tags.pop(tag, None)
|
|
1385
1384
|
node.bylayer['tags'].pop(tag, None)
|
|
1386
1385
|
|
|
1387
|
-
callbacks.append((self.view.runTagDel, (node, tag, oldv)
|
|
1388
|
-
callbacks.append((self.wlyr.fire, ('tag:del', ), {'tag': tag, 'node': node.iden()}))
|
|
1386
|
+
callbacks.append((self.view.runTagDel, (node, tag, oldv)))
|
|
1389
1387
|
continue
|
|
1390
1388
|
|
|
1391
1389
|
if etyp == s_layer.EDIT_TAGPROP_SET:
|
|
@@ -1420,14 +1418,14 @@ class Snap(s_base.Base):
|
|
|
1420
1418
|
if etyp == s_layer.EDIT_EDGE_ADD:
|
|
1421
1419
|
verb, n2iden = parms
|
|
1422
1420
|
n2 = await self.getNodeByBuid(s_common.uhex(n2iden))
|
|
1423
|
-
callbacks.append((self.view.runEdgeAdd, (node, verb, n2)
|
|
1421
|
+
callbacks.append((self.view.runEdgeAdd, (node, verb, n2)))
|
|
1424
1422
|
|
|
1425
1423
|
if etyp == s_layer.EDIT_EDGE_DEL:
|
|
1426
1424
|
verb, n2iden = parms
|
|
1427
1425
|
n2 = await self.getNodeByBuid(s_common.uhex(n2iden))
|
|
1428
|
-
callbacks.append((self.view.runEdgeDel, (node, verb, n2)
|
|
1426
|
+
callbacks.append((self.view.runEdgeDel, (node, verb, n2)))
|
|
1429
1427
|
|
|
1430
|
-
[await func(*args
|
|
1428
|
+
[await func(*args) for (func, args) in callbacks]
|
|
1431
1429
|
|
|
1432
1430
|
if actualedits:
|
|
1433
1431
|
await self.fire('node:edits', edits=actualedits)
|
synapse/lib/stormlib/spooled.py
CHANGED
synapse/lib/stormtypes.py
CHANGED
|
@@ -4731,6 +4731,9 @@ class Str(Prim):
|
|
|
4731
4731
|
return str(self) == str(othr)
|
|
4732
4732
|
return False
|
|
4733
4733
|
|
|
4734
|
+
async def bool(self):
|
|
4735
|
+
return bool(self.valu)
|
|
4736
|
+
|
|
4734
4737
|
@stormfunc(readonly=True)
|
|
4735
4738
|
async def _methStrFind(self, valu):
|
|
4736
4739
|
text = await tostr(valu)
|
|
@@ -4970,6 +4973,9 @@ class Bytes(Prim):
|
|
|
4970
4973
|
return self.valu == othr.valu
|
|
4971
4974
|
return False
|
|
4972
4975
|
|
|
4976
|
+
async def bool(self):
|
|
4977
|
+
return bool(self.valu)
|
|
4978
|
+
|
|
4973
4979
|
async def _storm_copy(self):
|
|
4974
4980
|
item = await s_coro.ornot(self.value)
|
|
4975
4981
|
return s_msgpack.deepcopy(item, use_list=True)
|
|
@@ -5042,6 +5048,9 @@ class Dict(Prim):
|
|
|
5042
5048
|
def __len__(self):
|
|
5043
5049
|
return len(self.valu)
|
|
5044
5050
|
|
|
5051
|
+
async def bool(self):
|
|
5052
|
+
return bool(self.valu)
|
|
5053
|
+
|
|
5045
5054
|
async def _storm_copy(self):
|
|
5046
5055
|
item = await s_coro.ornot(self.value)
|
|
5047
5056
|
return s_msgpack.deepcopy(item, use_list=True)
|
|
@@ -5194,6 +5203,9 @@ class Set(Prim):
|
|
|
5194
5203
|
def __len__(self):
|
|
5195
5204
|
return len(self.valu)
|
|
5196
5205
|
|
|
5206
|
+
async def bool(self):
|
|
5207
|
+
return bool(self.valu)
|
|
5208
|
+
|
|
5197
5209
|
async def _methSetSize(self):
|
|
5198
5210
|
return len(self)
|
|
5199
5211
|
|
|
@@ -5384,6 +5396,9 @@ class List(Prim):
|
|
|
5384
5396
|
def __len__(self):
|
|
5385
5397
|
return len(self.valu)
|
|
5386
5398
|
|
|
5399
|
+
async def bool(self):
|
|
5400
|
+
return bool(self.valu)
|
|
5401
|
+
|
|
5387
5402
|
@stormfunc(readonly=True)
|
|
5388
5403
|
async def _methListHas(self, valu):
|
|
5389
5404
|
if valu in self.valu:
|
|
@@ -5519,6 +5534,9 @@ class Bool(Prim):
|
|
|
5519
5534
|
def __hash__(self):
|
|
5520
5535
|
return hash((self._storm_typename, self.value()))
|
|
5521
5536
|
|
|
5537
|
+
async def bool(self):
|
|
5538
|
+
return bool(self.valu)
|
|
5539
|
+
|
|
5522
5540
|
@registry.registerType
|
|
5523
5541
|
class Number(Prim):
|
|
5524
5542
|
'''
|
synapse/lib/types.py
CHANGED
|
@@ -651,9 +651,10 @@ class Hex(Type):
|
|
|
651
651
|
|
|
652
652
|
def postTypeInit(self):
|
|
653
653
|
self._size = self.opts.get('size')
|
|
654
|
+
self._zeropad = self.opts.get('zeropad')
|
|
654
655
|
|
|
655
656
|
# This is for backward compat with v2.142.x where zeropad was a bool
|
|
656
|
-
|
|
657
|
+
# TODO: Remove this compat check in 3xx
|
|
657
658
|
if isinstance(self._zeropad, bool):
|
|
658
659
|
if self._zeropad:
|
|
659
660
|
self._zeropad = self._size
|
|
@@ -678,6 +679,7 @@ class Hex(Type):
|
|
|
678
679
|
if self._size:
|
|
679
680
|
self._zeropad = min(self._zeropad, self._size)
|
|
680
681
|
|
|
682
|
+
self.setNormFunc(int, self._normPyInt)
|
|
681
683
|
self.setNormFunc(str, self._normPyStr)
|
|
682
684
|
self.setNormFunc(bytes, self._normPyBytes)
|
|
683
685
|
self.storlifts.update({
|
|
@@ -703,21 +705,47 @@ class Hex(Type):
|
|
|
703
705
|
return self._storLiftNorm(cmpr, valu)
|
|
704
706
|
|
|
705
707
|
def _storLiftPref(self, cmpr, valu):
|
|
708
|
+
if not isinstance(valu, str):
|
|
709
|
+
vtyp = type(valu).__name__
|
|
710
|
+
mesg = f'Hex prefix lift values must be str, not {vtyp}.'
|
|
711
|
+
raise s_exc.BadTypeValu(mesg=mesg, type=vtyp, name=self.name)
|
|
712
|
+
|
|
706
713
|
valu = self._preNormHex(valu)
|
|
707
714
|
return (
|
|
708
715
|
('^=', valu, self.stortype),
|
|
709
716
|
)
|
|
710
717
|
|
|
718
|
+
def _normPyInt(self, valu):
|
|
719
|
+
extra = 7
|
|
720
|
+
if valu < 0:
|
|
721
|
+
# Negative values need a little more space to store the sign
|
|
722
|
+
extra = 8
|
|
723
|
+
|
|
724
|
+
bytelen = max((valu.bit_length() + extra) // 8, self._zeropad // 2)
|
|
725
|
+
|
|
726
|
+
try:
|
|
727
|
+
byts = valu.to_bytes(bytelen, 'big', signed=(valu < 0))
|
|
728
|
+
hexval = s_common.ehex(byts)
|
|
729
|
+
|
|
730
|
+
except OverflowError as e: # pragma: no cover
|
|
731
|
+
mesg = f'Invalid width for {valu}.'
|
|
732
|
+
raise s_exc.BadTypeValu(mesg=mesg, name=self.name)
|
|
733
|
+
|
|
734
|
+
if self._size and len(hexval) != self._size:
|
|
735
|
+
raise s_exc.BadTypeValu(valu=valu, reqwidth=self._size, name=self.name,
|
|
736
|
+
mesg='Invalid width.')
|
|
737
|
+
|
|
738
|
+
return hexval, {}
|
|
739
|
+
|
|
711
740
|
def _normPyStr(self, valu):
|
|
712
|
-
valu =
|
|
713
|
-
if valu.startswith('0x'):
|
|
714
|
-
valu = valu[2:]
|
|
741
|
+
valu = self._preNormHex(valu)
|
|
715
742
|
|
|
716
|
-
valu
|
|
743
|
+
if len(valu) % 2 != 0:
|
|
744
|
+
valu = f'0{valu}'
|
|
717
745
|
|
|
718
746
|
if not valu:
|
|
719
|
-
raise s_exc.BadTypeValu(valu=valu, name=
|
|
720
|
-
mesg='No string left after stripping')
|
|
747
|
+
raise s_exc.BadTypeValu(valu=valu, name=self.name,
|
|
748
|
+
mesg='No string left after stripping.')
|
|
721
749
|
|
|
722
750
|
if self._zeropad and len(valu) < self._zeropad:
|
|
723
751
|
padlen = self._zeropad - len(valu)
|
|
@@ -732,7 +760,7 @@ class Hex(Type):
|
|
|
732
760
|
|
|
733
761
|
if self._size and len(valu) != self._size:
|
|
734
762
|
raise s_exc.BadTypeValu(valu=valu, reqwidth=self._size, name=self.name,
|
|
735
|
-
mesg='
|
|
763
|
+
mesg='Invalid width.')
|
|
736
764
|
return valu, {}
|
|
737
765
|
|
|
738
766
|
def _normPyBytes(self, valu):
|
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,
|
|
226
|
+
version = (2, 213, 0)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = 'e3d843a470b137e9d2094b69a7878101afb4f8b1'
|
synapse/telepath.py
CHANGED
|
@@ -1605,8 +1605,6 @@ async def openinfo(info):
|
|
|
1605
1605
|
# cell://rel/path/to/celldir:share
|
|
1606
1606
|
path = info.get('path')
|
|
1607
1607
|
|
|
1608
|
-
name = info.get('name', '*')
|
|
1609
|
-
|
|
1610
1608
|
# support cell://<relpath>/<to>/<cell>
|
|
1611
1609
|
# by detecting host...
|
|
1612
1610
|
host = info.get('host')
|
|
@@ -1614,9 +1612,12 @@ async def openinfo(info):
|
|
|
1614
1612
|
path = path.strip('/')
|
|
1615
1613
|
path = os.path.join(host, path)
|
|
1616
1614
|
|
|
1615
|
+
name = '*'
|
|
1617
1616
|
if ':' in path:
|
|
1618
1617
|
path, name = path.split(':')
|
|
1619
1618
|
|
|
1619
|
+
name = info.get('name', name)
|
|
1620
|
+
|
|
1620
1621
|
full = os.path.join(path, 'sock')
|
|
1621
1622
|
link = await s_link.unixconnect(full)
|
|
1622
1623
|
|
|
@@ -1626,6 +1627,7 @@ async def openinfo(info):
|
|
|
1626
1627
|
path = info.get('path')
|
|
1627
1628
|
if ':' in path:
|
|
1628
1629
|
path, name = path.split(':')
|
|
1630
|
+
name = info.get('name', name)
|
|
1629
1631
|
link = await s_link.unixconnect(path)
|
|
1630
1632
|
|
|
1631
1633
|
elif scheme in ('tcp', 'ssl'):
|
synapse/tests/test_lib_cell.py
CHANGED
|
@@ -194,6 +194,18 @@ testDataSchema_v1 = {
|
|
|
194
194
|
|
|
195
195
|
class CellTest(s_t_utils.SynTest):
|
|
196
196
|
|
|
197
|
+
async def test_cell_getLocalUrl(self):
|
|
198
|
+
with self.getTestDir() as dirn:
|
|
199
|
+
async with self.getTestCell(dirn=dirn) as cell:
|
|
200
|
+
url = cell.getLocalUrl()
|
|
201
|
+
self.eq(url, f'cell://root@{dirn}')
|
|
202
|
+
|
|
203
|
+
url = cell.getLocalUrl(share='*/layer')
|
|
204
|
+
self.eq(url, f'cell://root@{dirn}:*/layer')
|
|
205
|
+
|
|
206
|
+
url = cell.getLocalUrl(user='lowuser', share='*/view')
|
|
207
|
+
self.eq(url, f'cell://lowuser@{dirn}:*/view')
|
|
208
|
+
|
|
197
209
|
async def test_cell_drive(self):
|
|
198
210
|
|
|
199
211
|
with self.getTestDir() as dirn:
|
|
@@ -2580,10 +2592,10 @@ class CellTest(s_t_utils.SynTest):
|
|
|
2580
2592
|
viewiden = view.get('iden')
|
|
2581
2593
|
|
|
2582
2594
|
opts = {'view': viewiden}
|
|
2583
|
-
with self.
|
|
2595
|
+
with self.getAsyncLoggerStream('synapse.lib.lmdbslab',
|
|
2584
2596
|
'Error during slab resize callback - foo') as stream:
|
|
2585
|
-
|
|
2586
|
-
self.true(stream.wait(
|
|
2597
|
+
msgs = await core.stormlist('for $x in $lib.range(200) {[test:int=$x]}', opts=opts)
|
|
2598
|
+
self.true(await stream.wait(timeout=30))
|
|
2587
2599
|
|
|
2588
2600
|
async with self.getTestCore() as core:
|
|
2589
2601
|
|
synapse/tests/test_lib_scrape.py
CHANGED
|
@@ -203,6 +203,10 @@ A bunch of prefixed urls
|
|
|
203
203
|
|
|
204
204
|
https://c2server.com/evil/malware/doesnot[care+]aboutstandards{at-all}
|
|
205
205
|
|
|
206
|
+
beep “https://unicode.doublequote.org/test.php” boop
|
|
207
|
+
|
|
208
|
+
x ‘https://unicode.singlequote.org/test.php’ z
|
|
209
|
+
|
|
206
210
|
'''
|
|
207
211
|
|
|
208
212
|
data3 = '''
|
|
@@ -725,6 +729,8 @@ class ScrapeTest(s_t_utils.SynTest):
|
|
|
725
729
|
nodes.remove(('inet:url', 'https://www.thingspace.com/blog/giggles.html'))
|
|
726
730
|
nodes.remove(('inet:url', 'https://testme.org/test.php'))
|
|
727
731
|
nodes.remove(('inet:url', 'https://c2server.com/evil/malware/doesnot[care+]aboutstandards{at-all}'))
|
|
732
|
+
nodes.remove(('inet:url', 'https://unicode.doublequote.org/test.php'))
|
|
733
|
+
nodes.remove(('inet:url', 'https://unicode.singlequote.org/test.php'))
|
|
728
734
|
|
|
729
735
|
nodes = list(s_scrape.scrape(btc_addresses))
|
|
730
736
|
self.len(11, nodes)
|
synapse/tests/test_lib_storm.py
CHANGED
|
@@ -1736,6 +1736,8 @@ class StormTest(s_t_utils.SynTest):
|
|
|
1736
1736
|
self.stormHasNoErr(await core.stormlist('merge --diff', opts=altview))
|
|
1737
1737
|
|
|
1738
1738
|
oldn = await core.nodes('[ ou:name=readonly ]', opts=altview)
|
|
1739
|
+
# need to pause a moment so the created times differ
|
|
1740
|
+
await asyncio.sleep(0.01)
|
|
1739
1741
|
newn = await core.nodes('[ ou:name=readonly ]')
|
|
1740
1742
|
self.ne(oldn[0].props['.created'], newn[0].props['.created'])
|
|
1741
1743
|
|
|
@@ -124,6 +124,17 @@ class StormlibSpooledTest(s_test.SynTest):
|
|
|
124
124
|
msgs = await core.stormlist(q, opts={'vars': {'items': [True, 'neato', False, 9001]}})
|
|
125
125
|
self.stormIsInPrint("The set is {'neato'}", msgs)
|
|
126
126
|
|
|
127
|
+
q = '''
|
|
128
|
+
$set = $lib.spooled.set()
|
|
129
|
+
for $v in $lib.range($n) {
|
|
130
|
+
$set.add($v)
|
|
131
|
+
}
|
|
132
|
+
if $set { return ( (true) ) }
|
|
133
|
+
else { return ( (false) ) }
|
|
134
|
+
'''
|
|
135
|
+
self.false(await core.callStorm(q, opts={'vars': {'n': 0}}))
|
|
136
|
+
self.true(await core.callStorm(q, opts={'vars': {'n': 1}}))
|
|
137
|
+
|
|
127
138
|
# force a fallback
|
|
128
139
|
q = '''
|
|
129
140
|
$set = $lib.spooled.set()
|
|
@@ -1902,6 +1902,17 @@ class StormTypesTest(s_test.SynTest):
|
|
|
1902
1902
|
self.len(1, nodes)
|
|
1903
1903
|
self.eq(nodes[0].ndef, ('test:str', 'asdf'))
|
|
1904
1904
|
|
|
1905
|
+
q = '''
|
|
1906
|
+
$set = $lib.set()
|
|
1907
|
+
for $v in $lib.range($n) {
|
|
1908
|
+
$set.add($v)
|
|
1909
|
+
}
|
|
1910
|
+
if $set { return ( (true) ) }
|
|
1911
|
+
else { return ( (false) ) }
|
|
1912
|
+
'''
|
|
1913
|
+
self.false(await core.callStorm(q, opts={'vars': {'n': 0}}))
|
|
1914
|
+
self.true(await core.callStorm(q, opts={'vars': {'n': 1}}))
|
|
1915
|
+
|
|
1905
1916
|
# test that some of the more complex objects we've got uniq down properly
|
|
1906
1917
|
# Bool
|
|
1907
1918
|
q = '''
|
synapse/tests/test_lib_types.py
CHANGED
|
@@ -338,42 +338,80 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
338
338
|
t = core.model.type('test:hexa')
|
|
339
339
|
# Test norming to index values
|
|
340
340
|
testvectors = [
|
|
341
|
-
(
|
|
342
|
-
(
|
|
343
|
-
('
|
|
344
|
-
('
|
|
345
|
-
(
|
|
341
|
+
(0xc, '0c'),
|
|
342
|
+
(-0xc, 'f4'),
|
|
343
|
+
('c', '0c'),
|
|
344
|
+
('0c', '0c'),
|
|
345
|
+
('-0c', (s_exc.BadTypeValu, 'Non-hexadecimal digit found')),
|
|
346
|
+
('0x0c', '0c'),
|
|
347
|
+
('-0x0c', (s_exc.BadTypeValu, 'Non-hexadecimal digit found')),
|
|
348
|
+
(b'\x0c', '0c'),
|
|
349
|
+
|
|
350
|
+
(0x10001, '010001'),
|
|
351
|
+
('10001', '010001'),
|
|
352
|
+
('0x10001', '010001'),
|
|
353
|
+
('010001', '010001'),
|
|
354
|
+
('0x010001', '010001'),
|
|
355
|
+
(b'\x01\x00\x01', '010001'),
|
|
356
|
+
|
|
357
|
+
(0xFfF, '0fff'),
|
|
358
|
+
('FfF', '0fff'),
|
|
359
|
+
('0FfF', '0fff'),
|
|
360
|
+
('0x0FfF', '0fff'),
|
|
361
|
+
(b'\x0F\xfF', '0fff'),
|
|
362
|
+
|
|
346
363
|
(b'\xd4\x1d\x8c\xd9\x8f\x00\xb2\x04\xe9\x80\t\x98\xec\xf8B~',
|
|
347
|
-
|
|
348
|
-
|
|
364
|
+
'd41d8cd98f00b204e9800998ecf8427e'),
|
|
365
|
+
|
|
366
|
+
('01\udcfe0101', (s_exc.BadTypeValu, 'string argument should contain only ASCII characters')),
|
|
349
367
|
]
|
|
350
368
|
|
|
351
|
-
for
|
|
352
|
-
if isinstance(
|
|
353
|
-
|
|
354
|
-
self.isinstance(
|
|
369
|
+
for valu, expected in testvectors:
|
|
370
|
+
if isinstance(expected, str):
|
|
371
|
+
norm, subs = t.norm(valu)
|
|
372
|
+
self.isinstance(norm, str)
|
|
355
373
|
self.eq(subs, {})
|
|
374
|
+
self.eq(norm, expected)
|
|
356
375
|
else:
|
|
357
|
-
|
|
376
|
+
etype, mesg = expected
|
|
377
|
+
with self.raises(etype) as exc:
|
|
378
|
+
t.norm(valu)
|
|
379
|
+
self.eq(exc.exception.get('mesg'), mesg, f'{valu=}')
|
|
358
380
|
|
|
359
|
-
#
|
|
381
|
+
# size = 4
|
|
360
382
|
testvectors4 = [
|
|
361
|
-
(
|
|
362
|
-
(
|
|
363
|
-
('
|
|
364
|
-
('
|
|
365
|
-
(b'\
|
|
366
|
-
|
|
367
|
-
('
|
|
383
|
+
(0xc, (s_exc.BadTypeValu, 'Invalid width.')),
|
|
384
|
+
(-0xc, (s_exc.BadTypeValu, 'Invalid width.')),
|
|
385
|
+
('0c', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
386
|
+
('0x0c', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
387
|
+
(b'\x0c', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
388
|
+
|
|
389
|
+
(0xd41d, 'd41d'),
|
|
390
|
+
('d41d', 'd41d'),
|
|
391
|
+
('0xd41d', 'd41d'),
|
|
392
|
+
(b'\xd4\x1d', 'd41d'),
|
|
393
|
+
|
|
394
|
+
(0x10001, (s_exc.BadTypeValu, 'Invalid width.')),
|
|
395
|
+
('10001', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
396
|
+
('0x10001', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
397
|
+
('010001', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
398
|
+
('0x010001', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
399
|
+
(b'\x01\x00\x01', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
400
|
+
|
|
401
|
+
('01\udcfe0101', (s_exc.BadTypeValu, 'string argument should contain only ASCII characters')),
|
|
368
402
|
]
|
|
369
403
|
t = core.model.type('test:hex4')
|
|
370
|
-
for
|
|
371
|
-
if isinstance(
|
|
372
|
-
|
|
373
|
-
self.isinstance(
|
|
404
|
+
for valu, expected in testvectors4:
|
|
405
|
+
if isinstance(expected, str):
|
|
406
|
+
norm, subs = t.norm(valu)
|
|
407
|
+
self.isinstance(norm, str)
|
|
374
408
|
self.eq(subs, {})
|
|
409
|
+
self.eq(norm, expected)
|
|
375
410
|
else:
|
|
376
|
-
|
|
411
|
+
etype, mesg = expected
|
|
412
|
+
with self.raises(etype) as exc:
|
|
413
|
+
t.norm(valu)
|
|
414
|
+
self.eq(exc.exception.get('mesg'), mesg, f'{valu=}')
|
|
377
415
|
|
|
378
416
|
# size = 8, zeropad = True
|
|
379
417
|
testvectors = [
|
|
@@ -384,29 +422,45 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
384
422
|
('0X12345678', '12345678'),
|
|
385
423
|
('56:78', '00005678'),
|
|
386
424
|
('12:34:56:78', '12345678'),
|
|
387
|
-
('
|
|
388
|
-
('
|
|
389
|
-
('
|
|
390
|
-
('
|
|
391
|
-
(
|
|
425
|
+
(-1, 'ffffffff'),
|
|
426
|
+
(-0xff, 'ffffff01'),
|
|
427
|
+
(1234, '000004d2'),
|
|
428
|
+
(0x12345678, '12345678'),
|
|
429
|
+
(0x123456789a, (s_exc.BadTypeValu, 'Invalid width.')),
|
|
430
|
+
('::', (s_exc.BadTypeValu, 'No string left after stripping.')),
|
|
431
|
+
('0x::', (s_exc.BadTypeValu, 'No string left after stripping.')),
|
|
432
|
+
('0x1234qwer', (s_exc.BadTypeValu, 'Non-hexadecimal digit found')),
|
|
433
|
+
('0x123456789a', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
392
434
|
(b'\x12', '00000012'),
|
|
393
435
|
(b'\x12\x34', '00001234'),
|
|
394
436
|
(b'\x12\x34\x56', '00123456'),
|
|
395
437
|
(b'\x12\x34\x56\x78', '12345678'),
|
|
396
|
-
(b'\x12\x34\x56\x78\x9a', s_exc.BadTypeValu),
|
|
438
|
+
(b'\x12\x34\x56\x78\x9a', (s_exc.BadTypeValu, 'Invalid width.')),
|
|
397
439
|
]
|
|
398
440
|
t = core.model.type('test:hexpad')
|
|
399
|
-
for
|
|
400
|
-
if isinstance(
|
|
401
|
-
|
|
402
|
-
self.isinstance(
|
|
441
|
+
for valu, expected in testvectors:
|
|
442
|
+
if isinstance(expected, str):
|
|
443
|
+
norm, subs = t.norm(valu)
|
|
444
|
+
self.isinstance(norm, str)
|
|
403
445
|
self.eq(subs, {})
|
|
404
|
-
self.eq(
|
|
446
|
+
self.eq(norm, expected)
|
|
405
447
|
else:
|
|
406
|
-
|
|
448
|
+
etype, mesg = expected
|
|
449
|
+
with self.raises(etype) as exc:
|
|
450
|
+
t.norm(valu)
|
|
451
|
+
self.eq(exc.exception.get('mesg'), mesg, f'{valu=}')
|
|
407
452
|
|
|
408
453
|
# zeropad = 20
|
|
409
454
|
testvectors = [
|
|
455
|
+
(-1, 'ffffffffffffffffffff'),
|
|
456
|
+
(-0xff, 'ffffffffffffffffff01'),
|
|
457
|
+
(0x12, '00000000000000000012'),
|
|
458
|
+
(0x123, '00000000000000000123'),
|
|
459
|
+
(0x1234, '00000000000000001234'),
|
|
460
|
+
(0x123456, '00000000000000123456'),
|
|
461
|
+
(0x12345678, '00000000000012345678'),
|
|
462
|
+
(0x123456789abcdef123456789abcdef, '123456789abcdef123456789abcdef'),
|
|
463
|
+
(-0x123456789abcdef123456789abcdef, 'edcba9876543210edcba9876543211'),
|
|
410
464
|
('0x12', '00000000000000000012'),
|
|
411
465
|
('0x123', '00000000000000000123'),
|
|
412
466
|
('0x1234', '00000000000000001234'),
|
|
@@ -421,14 +475,17 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
421
475
|
(b'\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef', '123456789abcdef123456789abcdef'),
|
|
422
476
|
]
|
|
423
477
|
t = core.model.type('test:zeropad')
|
|
424
|
-
for
|
|
425
|
-
if isinstance(
|
|
426
|
-
|
|
427
|
-
self.isinstance(
|
|
478
|
+
for valu, expected in testvectors:
|
|
479
|
+
if isinstance(expected, str):
|
|
480
|
+
norm, subs = t.norm(valu)
|
|
481
|
+
self.isinstance(norm, str)
|
|
428
482
|
self.eq(subs, {})
|
|
429
|
-
self.eq(
|
|
483
|
+
self.eq(norm, expected)
|
|
430
484
|
else:
|
|
431
|
-
|
|
485
|
+
etype, mesg = expected
|
|
486
|
+
with self.raises(etype) as exc:
|
|
487
|
+
t.norm(valu)
|
|
488
|
+
self.eq(exc.exception.get('mesg'), mesg, f'{valu=}')
|
|
432
489
|
|
|
433
490
|
# Do some node creation and lifting
|
|
434
491
|
nodes = await core.nodes('[test:hexa="01:00 01"]')
|
|
@@ -436,8 +493,19 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
436
493
|
node = nodes[0]
|
|
437
494
|
self.eq(node.ndef, ('test:hexa', '010001'))
|
|
438
495
|
self.len(1, await core.nodes('test:hexa=010001'))
|
|
496
|
+
self.len(1, await core.nodes('test:hexa=(0x10001)'))
|
|
439
497
|
self.len(1, await core.nodes('test:hexa=$byts', opts={'vars': {'byts': b'\x01\x00\x01'}}))
|
|
440
498
|
|
|
499
|
+
nodes = await core.nodes('[test:hexa=(-10)]')
|
|
500
|
+
self.len(1, nodes)
|
|
501
|
+
self.eq(nodes[0].repr(), 'f6')
|
|
502
|
+
|
|
503
|
+
self.len(1, await core.nodes('test:hexa=(-10)'))
|
|
504
|
+
|
|
505
|
+
with self.raises(s_exc.BadTypeValu) as exc:
|
|
506
|
+
await core.callStorm('test:hexa^=(-10)')
|
|
507
|
+
self.eq(exc.exception.get('mesg'), 'Hex prefix lift values must be str, not int.')
|
|
508
|
+
|
|
441
509
|
# Do some fancy prefix searches for test:hexa
|
|
442
510
|
valus = ['deadb33f',
|
|
443
511
|
'deadb33fb33f',
|
|
@@ -467,9 +535,25 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
467
535
|
self.len(1, await core.nodes('[test:hexa=0xf00fb33b00000000]'))
|
|
468
536
|
self.len(1, await core.nodes('test:hexa=0xf00fb33b00000000'))
|
|
469
537
|
self.len(1, await core.nodes('test:hexa^=0xf00fb33b'))
|
|
538
|
+
self.len(1, await core.nodes('test:hexa^=0xf00fb33'))
|
|
539
|
+
|
|
540
|
+
with self.raises(s_exc.BadTypeValu):
|
|
541
|
+
await core.nodes('test:hexa^=(0xf00fb33b)')
|
|
542
|
+
|
|
543
|
+
with self.raises(s_exc.BadTypeValu):
|
|
544
|
+
await core.nodes('test:hexa^=(0xf00fb33)')
|
|
470
545
|
|
|
471
546
|
# Check creating and lifting zeropadded hex types
|
|
472
|
-
|
|
547
|
+
q = '''
|
|
548
|
+
[
|
|
549
|
+
test:zeropad=11
|
|
550
|
+
test:zeropad=0x22
|
|
551
|
+
test:zeropad=111
|
|
552
|
+
test:zeropad=(0x33)
|
|
553
|
+
test:zeropad=(0x444)
|
|
554
|
+
]
|
|
555
|
+
'''
|
|
556
|
+
self.len(5, await core.nodes(q))
|
|
473
557
|
self.len(1, await core.nodes('test:zeropad=0x11'))
|
|
474
558
|
self.len(1, await core.nodes('test:zeropad=0x111'))
|
|
475
559
|
self.len(1, await core.nodes('test:zeropad=000000000011'))
|
|
@@ -479,6 +563,14 @@ class TypesTest(s_t_utils.SynTest):
|
|
|
479
563
|
self.len(1, await core.nodes('test:zeropad=000000000022'))
|
|
480
564
|
self.len(1, await core.nodes('test:zeropad=00000000000000000022')) # len=20
|
|
481
565
|
self.len(0, await core.nodes('test:zeropad=0000000000000000000022')) # len=22
|
|
566
|
+
self.len(1, await core.nodes('test:zeropad=(0x33)'))
|
|
567
|
+
self.len(1, await core.nodes('test:zeropad=000000000033'))
|
|
568
|
+
self.len(1, await core.nodes('test:zeropad=00000000000000000033')) # len=20
|
|
569
|
+
self.len(0, await core.nodes('test:zeropad=0000000000000000000033')) # len=22
|
|
570
|
+
self.len(1, await core.nodes('test:zeropad=(0x444)'))
|
|
571
|
+
self.len(1, await core.nodes('test:zeropad=000000000444'))
|
|
572
|
+
self.len(1, await core.nodes('test:zeropad=00000000000000000444')) # len=20
|
|
573
|
+
self.len(0, await core.nodes('test:zeropad=0000000000000000000444')) # len=22
|
|
482
574
|
|
|
483
575
|
def test_int(self):
|
|
484
576
|
|
|
@@ -545,6 +545,14 @@ class CryptoModelTest(s_t_utils.SynTest):
|
|
|
545
545
|
self.eq(nodes[0].get('identities:ipv4s'), (0x01020304, 0x05050505))
|
|
546
546
|
self.eq(nodes[0].get('identities:ipv6s'), ('ff::11', 'ff::aa'))
|
|
547
547
|
|
|
548
|
+
nodes = await core.nodes('[ crypto:x509:cert=* :serial=(1234) ]')
|
|
549
|
+
self.len(1, nodes)
|
|
550
|
+
self.eq(nodes[0].get('serial'), '00000000000000000000000000000000000004d2')
|
|
551
|
+
|
|
552
|
+
nodes = await core.nodes('[ crypto:x509:cert=* :serial=(-1234) ]')
|
|
553
|
+
self.len(1, nodes)
|
|
554
|
+
self.eq(nodes[0].get('serial'), 'fffffffffffffffffffffffffffffffffffffb2e')
|
|
555
|
+
|
|
548
556
|
nodes = await core.nodes('''
|
|
549
557
|
[
|
|
550
558
|
crypto:x509:crl=$crl
|
synapse/tests/test_telepath.py
CHANGED
|
@@ -316,6 +316,24 @@ class TeleTest(s_t_utils.SynTest):
|
|
|
316
316
|
self.true(prox.isfini)
|
|
317
317
|
await self.asyncraises(s_exc.IsFini, prox.bar((10, 20)))
|
|
318
318
|
|
|
319
|
+
async def test_telepath_openinfo_cell(self):
|
|
320
|
+
with self.getTestDir() as dirn:
|
|
321
|
+
async with self.getTestCore(dirn=dirn) as core:
|
|
322
|
+
|
|
323
|
+
layr00 = core.getView().layers[0]
|
|
324
|
+
|
|
325
|
+
async with await s_telepath.openurl(f'cell://root@{dirn}:*', name=f'*/layer/{layr00.iden}') as layer:
|
|
326
|
+
self.eq(layr00.iden, await layer.getIden())
|
|
327
|
+
|
|
328
|
+
async def test_telepath_openinfo_unix(self):
|
|
329
|
+
with self.getTestDir() as dirn:
|
|
330
|
+
async with self.getTestCore(dirn=dirn) as core:
|
|
331
|
+
|
|
332
|
+
layr00 = core.getView().layers[0]
|
|
333
|
+
|
|
334
|
+
async with await s_telepath.openurl(f'unix://root@{dirn}/sock:*', name=f'*/layer/{layr00.iden}') as layer:
|
|
335
|
+
self.eq(layr00.iden, await layer.getIden())
|
|
336
|
+
|
|
319
337
|
async def test_telepath_sync_genr(self):
|
|
320
338
|
|
|
321
339
|
foo = Foo()
|
|
@@ -9,7 +9,7 @@ synapse/datamodel.py,sha256=Lc8PF4tapY6leXv35M1UZHNQ3nDLxEWbfwS4crGNTV0,40347
|
|
|
9
9
|
synapse/exc.py,sha256=JpxmJdYrbihGf7zShC5M1q0kI2JQ6QaMaa89Rjx4SvY,9627
|
|
10
10
|
synapse/glob.py,sha256=tb6NPtK6Jp6YES9sB1AQi26HP6f-BcEiHrZz2yEyZ90,3210
|
|
11
11
|
synapse/mindmeld.py,sha256=TiijGH7wX2zdXIFSBUlN40CPOvYaFlw6Wxi66XZuB_M,26
|
|
12
|
-
synapse/telepath.py,sha256=
|
|
12
|
+
synapse/telepath.py,sha256=DbhAr2Mq5sXqhYXlR7aI0SP84uLnoocwQB-qL6HOHC4,46972
|
|
13
13
|
synapse/cmds/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
synapse/cmds/boss.py,sha256=anEKo72bmMV6xTQ1XM-Dz9HFYkNKUX7Ee6Q6jKtkml4,2920
|
|
15
15
|
synapse/cmds/cortex.py,sha256=dWXrQr99oVM5IkdhVQPnY0xaI3rdtXvw9B6drtEY8hs,15383
|
|
@@ -92,7 +92,7 @@ synapse/lib/autodoc.py,sha256=tM2OCPrV7yeth8Cx-wx-_VXBmBfzJS52vaubg_7BqCI,23217
|
|
|
92
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
|
-
synapse/lib/cell.py,sha256=
|
|
95
|
+
synapse/lib/cell.py,sha256=2ZaQevXdg1m5hZ9trYYSUaC6EY_w0RpAOY0jq8pot2w,184814
|
|
96
96
|
synapse/lib/certdir.py,sha256=laGLxgx0gVxXvoaLKKemBQv71OZr9mDaqlAatdESV1A,56176
|
|
97
97
|
synapse/lib/chop.py,sha256=F0RRLlJ6NlpLW7sBWPNZV9Xw4w6HVbQbxPZPE6VhwVQ,9404
|
|
98
98
|
synapse/lib/cli.py,sha256=GuyOgj2LkpJCQhtndroTMGG5uL0xQ-CK5lh69_Sg8Mk,15091
|
|
@@ -135,11 +135,11 @@ synapse/lib/reflect.py,sha256=j7Y522UzAwNswUehyfi9kHFNkTxuHXsFuEKY4ATXWTQ,2783
|
|
|
135
135
|
synapse/lib/rstorm.py,sha256=z5RdqNI0EkjWuU1oWbGXZrgxcBF32mFJGPA-_sdd6EM,19895
|
|
136
136
|
synapse/lib/schemas.py,sha256=gmjiPlA-7jHudG1Dq-TROh18NDxRjdu4-oCCdBUtDn8,41106
|
|
137
137
|
synapse/lib/scope.py,sha256=0CuSXLG_7pNleC1BcJ8_WbA50DswrX4DNjW5MyGGGNo,5496
|
|
138
|
-
synapse/lib/scrape.py,sha256
|
|
138
|
+
synapse/lib/scrape.py,sha256=ppUUkobkITN7n2gFov0nfzV3sVKpyPNrZKPtt1zwjjU,23979
|
|
139
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=
|
|
142
|
+
synapse/lib/snap.py,sha256=ebu_nftl8tCTvo329lS6N1CwQzHeL1iSjn_V5y91afQ,63433
|
|
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=
|
|
150
|
+
synapse/lib/stormtypes.py,sha256=JbWu1iVjFI7WtFfbzr9j0tybUcWCN2ddsIDZUORbFuc,402576
|
|
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
|
|
@@ -156,9 +156,9 @@ synapse/lib/thisplat.py,sha256=kQhj9Iy97zKHCnaxFSBoSnKabfza9vjpg9m6V7w-Xt4,417
|
|
|
156
156
|
synapse/lib/threads.py,sha256=TSsC7ryXm_CbM0LQMsvk1vYV4iyvarzWzH59TrUzKuo,164
|
|
157
157
|
synapse/lib/time.py,sha256=bk_1F6_MDuCWJ1ToPJ-XHkeTWVw5b4SE7cCixBqVxXo,9435
|
|
158
158
|
synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
|
|
159
|
-
synapse/lib/types.py,sha256=
|
|
159
|
+
synapse/lib/types.py,sha256=u59x8-Dnr3WbnRTZ_iCuRaexwKsyQKiIc_wrVrpdRQ8,70767
|
|
160
160
|
synapse/lib/urlhelp.py,sha256=ljhnF91z9ihyOLdZZ6OoQYCN1WYjOj1imukD45xiKU0,3320
|
|
161
|
-
synapse/lib/version.py,sha256=
|
|
161
|
+
synapse/lib/version.py,sha256=vPlIrnScQmi8c0YgtPyqMBhsHBlmJF4HdmHXMrHvKTE,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
|
|
@@ -208,7 +208,7 @@ synapse/lib/stormlib/project.py,sha256=EWigF9lWRMifl408qs3a78JEr_-QtCicCj8x6h220
|
|
|
208
208
|
synapse/lib/stormlib/random.py,sha256=tDhp3dCUf6uvIFC-pDIHN0BwKK-uur1zwosc3xPtDBE,4456
|
|
209
209
|
synapse/lib/stormlib/scrape.py,sha256=Mh3AAPUjSHivaarKUPsGEcZEnJx2GgBlYxLJw9xhnug,6694
|
|
210
210
|
synapse/lib/stormlib/smtp.py,sha256=xlyLUu3DxXx5RBu_XDltEwmvjeLbsBHNkzpS7lReLDM,7737
|
|
211
|
-
synapse/lib/stormlib/spooled.py,sha256=
|
|
211
|
+
synapse/lib/stormlib/spooled.py,sha256=vO_VmZnfx4zC8AQZf6NEwK8Qlyuj0BUpuNW_4kAuoI8,4169
|
|
212
212
|
synapse/lib/stormlib/stats.py,sha256=pH-pgxn9YUfJ7hw6To8_0aEvfpGWG6pDCs396qGMtr0,8771
|
|
213
213
|
synapse/lib/stormlib/stix.py,sha256=Grz8RXBR__3PbN9Ef2W1UYq4mtTdTjS8HX7mlE5E_Hw,53548
|
|
214
214
|
synapse/lib/stormlib/storm.py,sha256=dnPwH6p3DaOaKXfagqu-9szqr1wNzmCySDyzGJ77n74,6246
|
|
@@ -289,7 +289,7 @@ synapse/tests/test_lib_autodoc.py,sha256=Iz-VuUhwxvQ3ojK-cemSo7CdCUAyFVJ8MfJ2KbF
|
|
|
289
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
|
-
synapse/tests/test_lib_cell.py,sha256=
|
|
292
|
+
synapse/tests/test_lib_cell.py,sha256=vQNaHHOUMon5BLHB2OKl9PmxYDOyJL4qRHqISIRe1ic,157603
|
|
293
293
|
synapse/tests/test_lib_certdir.py,sha256=d5X1lvp0DnBRigXYLbofZAXakZp440-bjaMH30PlGsI,42728
|
|
294
294
|
synapse/tests/test_lib_chop.py,sha256=LkrM_pQU_KS88aVRPD4DI97qSdhxmw6EUA_jb-UJpww,6238
|
|
295
295
|
synapse/tests/test_lib_cli.py,sha256=B8qGx9KtTWp31RlCMtfFMzhJ0TzaaO9ph7RCK2jHtx4,9283
|
|
@@ -329,12 +329,12 @@ synapse/tests/test_lib_ratelimit.py,sha256=2aH3KodVGOEkxbe0hZ1RAQ4p6waF1tueSZP9h
|
|
|
329
329
|
synapse/tests/test_lib_reflect.py,sha256=C2GMXUPm705p2ySLRpICWZUNB-oo4NiluT6XU_gY_jA,3104
|
|
330
330
|
synapse/tests/test_lib_rstorm.py,sha256=ufT5i5ekblVoMblnfH3mMJhATpXKZuqzroV8_eS1XoM,20066
|
|
331
331
|
synapse/tests/test_lib_scope.py,sha256=0uh6B1mB68kqTsFAL0oPbhDe64mtIAVblfAWNTxo6FQ,6217
|
|
332
|
-
synapse/tests/test_lib_scrape.py,sha256=
|
|
332
|
+
synapse/tests/test_lib_scrape.py,sha256=Mojpt7f9IfFe-nMcCAzzdMb-Qsn1Tg0EPNGfreWXLno,48424
|
|
333
333
|
synapse/tests/test_lib_slaboffs.py,sha256=FHQ8mGZ27dGqVwGk6q2UJ4gkPRZN22eIVzS8hMPkD9c,756
|
|
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=
|
|
337
|
+
synapse/tests/test_lib_storm.py,sha256=rOt73iQ9stbRW_jFiVu7ywlVh9n39FTTsHi9vkwkb5Y,245413
|
|
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=rhZ9xLTIzLm4GlJUFDieFqAcrhE0EFTDi2erGltPm0I,46056
|
|
@@ -369,7 +369,7 @@ synapse/tests/test_lib_stormlib_pack.py,sha256=YSb4dErPM3CeU0piqvhIQF_F1m3YjApo3
|
|
|
369
369
|
synapse/tests/test_lib_stormlib_random.py,sha256=8bncEY6Unwry7h29CFqIUaAk9lkiNy7Qq9UNINeqpXE,4656
|
|
370
370
|
synapse/tests/test_lib_stormlib_scrape.py,sha256=Pk29JiuapVs9J-wrs0CbPimKsLAJvkqwNEP_o0B085g,8720
|
|
371
371
|
synapse/tests/test_lib_stormlib_smtp.py,sha256=cQY3HReNZlRJL9lfAbHfYDoTQZvtSikbkFQhwPnPWKc,4365
|
|
372
|
-
synapse/tests/test_lib_stormlib_spooled.py,sha256=
|
|
372
|
+
synapse/tests/test_lib_stormlib_spooled.py,sha256=5XftgeNIjy66OJ0kHd3OEzlGudQXHhpNHGvXJuA7Lcc,6983
|
|
373
373
|
synapse/tests/test_lib_stormlib_stats.py,sha256=aiCAzuvCXPve8kna3sapSt9h0OVW4-ByaSBkj14dnqw,9712
|
|
374
374
|
synapse/tests/test_lib_stormlib_stix.py,sha256=iY03k9lFwr-SfQLwJ16cdPp7vf3jmTeB0tzjmHhzeG4,25121
|
|
375
375
|
synapse/tests/test_lib_stormlib_storm.py,sha256=Cxaeh43Bg_37AgIYW4t8mUUER1NlkIC3JfNayXkTK30,7721
|
|
@@ -379,14 +379,14 @@ 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=
|
|
382
|
+
synapse/tests/test_lib_stormtypes.py,sha256=gms_GggL5QwDGZBILkJ5RvjAoBQf-FMx9_s4L-1DPbA,322020
|
|
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
|
|
386
386
|
synapse/tests/test_lib_thishost.py,sha256=O6QCENStRuMjWS7qV9rqwW3bSZwzEUn9NcttKnDqXw8,366
|
|
387
387
|
synapse/tests/test_lib_time.py,sha256=d1mPkN9P3GHNnZ_mhjyOv64tJGQ0yI_ifUjK3x-kmDg,8891
|
|
388
388
|
synapse/tests/test_lib_trigger.py,sha256=IxKkVxfQLrCz6Qy6yIrLw5-57KmTmuE6rqKztcjGmYw,42626
|
|
389
|
-
synapse/tests/test_lib_types.py,sha256=
|
|
389
|
+
synapse/tests/test_lib_types.py,sha256=EOuymS20fbbfNXXJpJ6K6Ay7nD9oX42GZLLnWwKN_n0,82830
|
|
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
392
|
synapse/tests/test_lib_view.py,sha256=jljS79RvgD2owpPotIXvuG_9IwwmLt3t8g2MkbIsBco,41728
|
|
@@ -397,7 +397,7 @@ synapse/tests/test_model_auth.py,sha256=AOg85IHsr4fSD3L1ex4vLwG24oicSzEOvcThdqME
|
|
|
397
397
|
synapse/tests/test_model_base.py,sha256=HH4_n318MwlRSyqsa7iZ9n3JqpRHThXE7ktm1MnaJaA,20562
|
|
398
398
|
synapse/tests/test_model_belief.py,sha256=X75PyP_JI4KvN00njr7JmefGXIhBvR83TOZ1uXdCjSE,1644
|
|
399
399
|
synapse/tests/test_model_biz.py,sha256=73NRxQlu3MqZSH5-nXOhBR0CLpt7Nm2jjl-VwINxJoY,10128
|
|
400
|
-
synapse/tests/test_model_crypto.py,sha256=
|
|
400
|
+
synapse/tests/test_model_crypto.py,sha256=JnhXjTflBe60ff9NYToWjf8120LtLec39lrgU-GPWGI,28617
|
|
401
401
|
synapse/tests/test_model_dns.py,sha256=vIplDlxrFoKYkt4vR9EgqPFGD-az0AA0SJ45MTLw6Ro,18976
|
|
402
402
|
synapse/tests/test_model_doc.py,sha256=29YGIuXgAllvx7v8pHlPofDRMbLg1lAu32icMW_m8Es,3764
|
|
403
403
|
synapse/tests/test_model_economic.py,sha256=KwSttYgwHaZ_4Qhf6rKO6W9xXxgLV0gMj20ag3iu0Z0,16398
|
|
@@ -428,7 +428,7 @@ synapse/tests/test_servers_cortex.py,sha256=2td41cPfC5-hJ1C6sH5NsN-ixjfXPCpnPllP
|
|
|
428
428
|
synapse/tests/test_servers_cryotank.py,sha256=vDxTcF4mUP5QQyf3xD-PKXRsYD0EvLknlkr9S3H2RKc,1185
|
|
429
429
|
synapse/tests/test_servers_stemcell.py,sha256=TJabX5aQVLbGNLffiVd3B7Uj5dH12Y-0KqAW56GM0G8,2320
|
|
430
430
|
synapse/tests/test_servers_univ.py,sha256=eXesifJL05IA91f5od-9bjuIDVhNWMdo8qWzaHEr22s,2704
|
|
431
|
-
synapse/tests/test_telepath.py,sha256=
|
|
431
|
+
synapse/tests/test_telepath.py,sha256=QeUbrN1sHQz85CwMSC0VB9F6GVHrLshRut19eDg0Za0,48245
|
|
432
432
|
synapse/tests/test_tools_aha.py,sha256=dWvXn8SJohZSjo2oFlXMH9cX9GynAb7USSBVv7K19Sg,16788
|
|
433
433
|
synapse/tests/test_tools_apikey.py,sha256=pAjOSAhZiflKksZMHmICWRi0nIO5hS9P5VcT8qUubn0,8909
|
|
434
434
|
synapse/tests/test_tools_autodoc.py,sha256=1SXQcRwB40VZG3YX8T7vGh2YRnDjnSv5AKMz8fj4V1k,9027
|
|
@@ -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.
|
|
623
|
-
synapse-2.
|
|
624
|
-
synapse-2.
|
|
625
|
-
synapse-2.
|
|
626
|
-
synapse-2.
|
|
622
|
+
synapse-2.213.0.dist-info/licenses/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
|
|
623
|
+
synapse-2.213.0.dist-info/METADATA,sha256=4ufoDlBK-i-ytrFBlz1C47hrq7pyOqvCJcsWgyjXu_g,4623
|
|
624
|
+
synapse-2.213.0.dist-info/WHEEL,sha256=cRWFNt_CJSuf6BnJKAdKunDXUJxjAbWvbt_kstDCs1I,93
|
|
625
|
+
synapse-2.213.0.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
|
|
626
|
+
synapse-2.213.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|