synapse 2.187.0__py311-none-any.whl → 2.187.1__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/lmdbslab.py +2 -0
- synapse/lib/modelrev.py +30 -7
- synapse/lib/spooled.py +2 -1
- synapse/lib/stormlib/model.py +1 -1
- synapse/lib/version.py +2 -2
- synapse/tests/test_lib_lmdbslab.py +30 -0
- synapse/tests/test_lib_modelrev.py +7 -7
- synapse/tests/test_lib_spooled.py +2 -0
- synapse/tests/test_utils_getrefs.py +36 -29
- synapse/utils/getrefs.py +18 -5
- {synapse-2.187.0.dist-info → synapse-2.187.1.dist-info}/METADATA +4 -3
- {synapse-2.187.0.dist-info → synapse-2.187.1.dist-info}/RECORD +15 -15
- {synapse-2.187.0.dist-info → synapse-2.187.1.dist-info}/WHEEL +1 -1
- {synapse-2.187.0.dist-info → synapse-2.187.1.dist-info/licenses}/LICENSE +0 -0
- {synapse-2.187.0.dist-info → synapse-2.187.1.dist-info}/top_level.txt +0 -0
synapse/lib/lmdbslab.py
CHANGED
synapse/lib/modelrev.py
CHANGED
|
@@ -1446,7 +1446,7 @@ class ModelMigration_0_2_31:
|
|
|
1446
1446
|
|
|
1447
1447
|
# Pick up and classify all bad CPE nodes
|
|
1448
1448
|
for idx, layer in enumerate(self.layers):
|
|
1449
|
-
logger.debug(
|
|
1449
|
+
logger.debug('Classifying nodes in layer %s %s', idx, layer.iden)
|
|
1450
1450
|
|
|
1451
1451
|
async for buid, sode in layer.getStorNodesByForm('it:sec:cpe'):
|
|
1452
1452
|
|
|
@@ -1457,6 +1457,7 @@ class ModelMigration_0_2_31:
|
|
|
1457
1457
|
if (v2_2 := props.get('v2_2')) is not None:
|
|
1458
1458
|
propvalu, stortype = v2_2
|
|
1459
1459
|
if not s_infotech.isValidCpe22(propvalu):
|
|
1460
|
+
logger.debug(f'Queueing invalid v2_2 value for deletion iden={s_common.ehex(buid)} valu={propvalu}')
|
|
1460
1461
|
await self._queueEdit(
|
|
1461
1462
|
layer.iden,
|
|
1462
1463
|
(buid, 'it:sec:cpe', (
|
|
@@ -1490,7 +1491,7 @@ class ModelMigration_0_2_31:
|
|
|
1490
1491
|
|
|
1491
1492
|
# Pick up all related CPE node info. The majority of the work happens in this loop
|
|
1492
1493
|
for idx, layer in enumerate(self.layers):
|
|
1493
|
-
logger.debug(
|
|
1494
|
+
logger.debug('Processing nodes in layer %s %s', idx, layer.iden)
|
|
1494
1495
|
|
|
1495
1496
|
for buid, node in self.nodes.items():
|
|
1496
1497
|
await self._loadNode(layer, buid, node=node)
|
|
@@ -1532,7 +1533,7 @@ class ModelMigration_0_2_31:
|
|
|
1532
1533
|
await self.todos.clear()
|
|
1533
1534
|
|
|
1534
1535
|
for idx, layer in enumerate(self.layers):
|
|
1535
|
-
logger.debug(
|
|
1536
|
+
logger.debug('Processing references in layer %s %s', idx, layer.iden)
|
|
1536
1537
|
|
|
1537
1538
|
async for entry in todotmp:
|
|
1538
1539
|
match entry:
|
|
@@ -1613,10 +1614,25 @@ class ModelMigration_0_2_31:
|
|
|
1613
1614
|
if propvalu is not None:
|
|
1614
1615
|
break
|
|
1615
1616
|
|
|
1616
|
-
|
|
1617
|
-
|
|
1617
|
+
if propvalu is None:
|
|
1618
|
+
# We didn't find a v2_2 value so remove this node
|
|
1619
|
+
await self.removeNode(buid)
|
|
1620
|
+
removed += 1
|
|
1621
|
+
|
|
1622
|
+
else:
|
|
1623
|
+
# We did find a v2_2 value so try to norm it and use that new value to move the node. If this fails,
|
|
1624
|
+
# remove the node.
|
|
1625
|
+
try:
|
|
1626
|
+
newvalu, _ = form.type.norm(propvalu)
|
|
1618
1627
|
|
|
1619
|
-
|
|
1628
|
+
except s_exc.BadTypeValu:
|
|
1629
|
+
logger.debug('Unexpectedly encountered invalid v2_2 prop: iden=%s valu=%s', s_common.ehex(buid), propvalu)
|
|
1630
|
+
await self.removeNode(buid)
|
|
1631
|
+
removed += 1
|
|
1632
|
+
|
|
1633
|
+
else:
|
|
1634
|
+
await self.moveNode(buid, newvalu)
|
|
1635
|
+
migrated += 1
|
|
1620
1636
|
|
|
1621
1637
|
elif action == 'remove':
|
|
1622
1638
|
newvalu = None
|
|
@@ -1627,10 +1643,17 @@ class ModelMigration_0_2_31:
|
|
|
1627
1643
|
if propvalu is None:
|
|
1628
1644
|
continue
|
|
1629
1645
|
|
|
1630
|
-
newvalu, _ = form.type.norm(propvalu)
|
|
1631
1646
|
# This prop is going to be the new primary value so delete the secondary prop
|
|
1632
1647
|
await self.editPropDel(layriden, buid, 'it:sec:cpe', 'v2_2', propvalu, stortype)
|
|
1633
1648
|
|
|
1649
|
+
# We did find a v2_2 value so try to norm it and use that new value to move the node. If this fails,
|
|
1650
|
+
# remove the node.
|
|
1651
|
+
try:
|
|
1652
|
+
newvalu, _ = form.type.norm(propvalu)
|
|
1653
|
+
except s_exc.BadTypeValu:
|
|
1654
|
+
logger.debug('Unexpectedly encountered invalid v2_2 prop: iden=%s valu=%s', s_common.ehex(buid), propvalu)
|
|
1655
|
+
continue
|
|
1656
|
+
|
|
1634
1657
|
# Oh yeah! Migrate the node instead of removing it
|
|
1635
1658
|
await self.moveNode(buid, newvalu)
|
|
1636
1659
|
|
synapse/lib/spooled.py
CHANGED
|
@@ -8,6 +8,7 @@ import synapse.lib.msgpack as s_msgpack
|
|
|
8
8
|
import synapse.lib.lmdbslab as s_lmdbslab
|
|
9
9
|
|
|
10
10
|
MAX_SPOOL_SIZE = 10000
|
|
11
|
+
DEFAULT_MAPSIZE = s_const.mebibyte * 32
|
|
11
12
|
|
|
12
13
|
class Spooled(s_base.Base):
|
|
13
14
|
'''
|
|
@@ -48,7 +49,7 @@ class Spooled(s_base.Base):
|
|
|
48
49
|
|
|
49
50
|
slabpath = tempfile.mkdtemp(dir=dirn, prefix='spooled_', suffix='.lmdb')
|
|
50
51
|
|
|
51
|
-
self.slab = await s_lmdbslab.Slab.anit(slabpath, map_size=
|
|
52
|
+
self.slab = await s_lmdbslab.Slab.anit(slabpath, map_size=DEFAULT_MAPSIZE)
|
|
52
53
|
if self.cell is not None:
|
|
53
54
|
self.slab.addResizeCallback(self.cell.checkFreeSpace)
|
|
54
55
|
|
synapse/lib/stormlib/model.py
CHANGED
|
@@ -1144,7 +1144,7 @@ class LibModelMigrations_0_2_31(s_stormtypes.Lib):
|
|
|
1144
1144
|
await self.runt.printf(f' layer: {layriden}')
|
|
1145
1145
|
for iden, refinfo in reflist:
|
|
1146
1146
|
form, prop, *_ = refinfo
|
|
1147
|
-
await self.runt.printf(f' - {form}:{prop} (iden: {iden}')
|
|
1147
|
+
await self.runt.printf(f' - {form}:{prop} (iden: {iden})')
|
|
1148
1148
|
|
|
1149
1149
|
n1edges = node['n1edges']
|
|
1150
1150
|
n2edges = node['n2edges']
|
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, 187,
|
|
226
|
+
version = (2, 187, 1)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = 'a75f7b990f6350f9d631f1f92ea5063542458aad'
|
|
@@ -11,6 +11,7 @@ from unittest.mock import patch
|
|
|
11
11
|
|
|
12
12
|
import synapse.lib.base as s_base
|
|
13
13
|
import synapse.lib.const as s_const
|
|
14
|
+
import synapse.lib.msgpack as s_msgpack
|
|
14
15
|
import synapse.lib.lmdbslab as s_lmdbslab
|
|
15
16
|
import synapse.lib.thisplat as s_thisplat
|
|
16
17
|
|
|
@@ -1597,6 +1598,35 @@ class LmdbSlabTest(s_t_utils.SynTest):
|
|
|
1597
1598
|
subkv2 = subkv1.getSubKeyVal('pref2')
|
|
1598
1599
|
self.eq(list(subkv2.keys()), ['wow'])
|
|
1599
1600
|
|
|
1601
|
+
async def test_lmdbslab_scan_grow(self):
|
|
1602
|
+
with self.getTestDir() as dirn:
|
|
1603
|
+
|
|
1604
|
+
path = os.path.join(dirn, 'test.lmdb')
|
|
1605
|
+
|
|
1606
|
+
mapsize = s_const.kibibyte * 32
|
|
1607
|
+
async with await s_lmdbslab.Slab.anit(path, map_size=mapsize) as slab:
|
|
1608
|
+
|
|
1609
|
+
self.eq(slab.mapsize, mapsize)
|
|
1610
|
+
|
|
1611
|
+
def slabset(key, valu):
|
|
1612
|
+
slab.replace(s_msgpack.en(key), s_msgpack.en(valu))
|
|
1613
|
+
|
|
1614
|
+
def slabitems():
|
|
1615
|
+
for lkey, lval in slab.scanByFull():
|
|
1616
|
+
yield s_msgpack.un(lkey), s_msgpack.un(lval)
|
|
1617
|
+
|
|
1618
|
+
slabset('one', [1, 2, 3])
|
|
1619
|
+
slabset('two', [2, 3, 4])
|
|
1620
|
+
|
|
1621
|
+
seen = set()
|
|
1622
|
+
for key, valu in slabitems():
|
|
1623
|
+
self.notin(key, seen)
|
|
1624
|
+
seen.add(key)
|
|
1625
|
+
|
|
1626
|
+
valu += ('A' * mapsize,)
|
|
1627
|
+
slabset(key, valu)
|
|
1628
|
+
|
|
1629
|
+
self.gt(slab.mapsize, mapsize)
|
|
1600
1630
|
|
|
1601
1631
|
class LmdbSlabMemLockTest(s_t_utils.SynTest):
|
|
1602
1632
|
|
|
@@ -1630,14 +1630,14 @@ class ModelRevTest(s_tests.SynTest):
|
|
|
1630
1630
|
sources: ['008af0047a8350287cde7abe31a7c706', 'a7a4739e0a52674df0fa3a8226de0c3f']
|
|
1631
1631
|
refs:
|
|
1632
1632
|
layer: {fork01layr}
|
|
1633
|
-
- it:prod:soft:cpe (iden: 9742664e24fe1a3a37d871b1f62af27453c2945b98f421d753db8436e9a44cc9
|
|
1634
|
-
- _ext:model:form:cpe (iden: 16e3289346a258c3e3073affad490c1d6ebf1d01295aacc489cdb24658ebc6e7
|
|
1635
|
-
- inet:flow:dst:cpes (iden: 7d4c31f1364aaf0b4cfaf4b57bb60157f2e86248391ce8ec75d6b7e3cd5f35b7
|
|
1636
|
-
- inet:flow:src:cpes (iden: 7d4c31f1364aaf0b4cfaf4b57bb60157f2e86248391ce8ec75d6b7e3cd5f35b7
|
|
1637
|
-
- meta:seen:node (iden: 81973208bc0f5b99250e4cda7889c66e0573c0573bc2a279083d23426ba3c74d
|
|
1638
|
-
- meta:seen:node (iden: 85bfc442d87a64a8e75d4ff2831281fb156317767612eef9b75c271ff162c4d9
|
|
1633
|
+
- it:prod:soft:cpe (iden: 9742664e24fe1a3a37d871b1f62af27453c2945b98f421d753db8436e9a44cc9)
|
|
1634
|
+
- _ext:model:form:cpe (iden: 16e3289346a258c3e3073affad490c1d6ebf1d01295aacc489cdb24658ebc6e7)
|
|
1635
|
+
- inet:flow:dst:cpes (iden: 7d4c31f1364aaf0b4cfaf4b57bb60157f2e86248391ce8ec75d6b7e3cd5f35b7)
|
|
1636
|
+
- inet:flow:src:cpes (iden: 7d4c31f1364aaf0b4cfaf4b57bb60157f2e86248391ce8ec75d6b7e3cd5f35b7)
|
|
1637
|
+
- meta:seen:node (iden: 81973208bc0f5b99250e4cda7889c66e0573c0573bc2a279083d23426ba3c74d)
|
|
1638
|
+
- meta:seen:node (iden: 85bfc442d87a64a8e75d4ff2831281fb156317767612eef9b75c271ff162c4d9)
|
|
1639
1639
|
layer: {fork00layr}
|
|
1640
|
-
- risk:vulnerable:node (iden: 5fddf1b5fa06aa8a39a1eb297712cecf9ca146764c4d6e5c79296b9e9978d2c3
|
|
1640
|
+
- risk:vulnerable:node (iden: 5fddf1b5fa06aa8a39a1eb297712cecf9ca146764c4d6e5c79296b9e9978d2c3)
|
|
1641
1641
|
edges:
|
|
1642
1642
|
-(refs)> f0315900f365f45f2e027edc66ed8477d8661dad501d51f3ac8067c36565f07c
|
|
1643
1643
|
<(seen)- 051d93252abe655e43265b89149b6a2d5a8f5f2df33b56c986ab8671c081e394
|
|
@@ -125,6 +125,8 @@ class SpooledTest(s_test.SynTest):
|
|
|
125
125
|
|
|
126
126
|
async with await s_spooled.Dict.anit(size=2) as sd0:
|
|
127
127
|
await runtest(sd0)
|
|
128
|
+
self.true(sd0.fallback)
|
|
128
129
|
|
|
129
130
|
async with await s_spooled.Dict.anit(size=1000) as sd1:
|
|
130
131
|
await runtest(sd1)
|
|
132
|
+
self.false(sd1.fallback)
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import os
|
|
1
|
+
import os
|
|
2
2
|
import pathlib
|
|
3
3
|
|
|
4
4
|
import vcr
|
|
5
5
|
|
|
6
|
+
from unittest import mock
|
|
7
|
+
|
|
6
8
|
import synapse.exc as s_exc
|
|
7
9
|
import synapse.data as s_data
|
|
10
|
+
import synapse.common as s_common
|
|
8
11
|
|
|
9
12
|
import synapse.lib.config as s_config
|
|
10
13
|
|
|
@@ -24,7 +27,7 @@ class TestUtilsGetrefs(s_utils.SynTest):
|
|
|
24
27
|
cm = myvcr.use_cassette(fp)
|
|
25
28
|
return cm
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
def test_basics(self):
|
|
28
31
|
|
|
29
32
|
args = s_getrefs.parse_args([
|
|
30
33
|
s_data.path('attack-flow', 'attack-flow-schema-2.0.0.json')
|
|
@@ -45,30 +48,34 @@ class TestUtilsGetrefs(s_utils.SynTest):
|
|
|
45
48
|
with self.raises(s_exc.BadArg):
|
|
46
49
|
s_getrefs.download_refs_handler('http://raw.githubusercontent.com/../../attack-flow/attack-flow-schema-2.0.0.json')
|
|
47
50
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
51
|
+
with self.getTestDir(copyfrom=s_getrefs.BASEDIR) as dirn:
|
|
52
|
+
|
|
53
|
+
filename = pathlib.Path(s_common.genpath(
|
|
54
|
+
dirn,
|
|
55
|
+
'raw.githubusercontent.com',
|
|
56
|
+
'oasis-open',
|
|
57
|
+
'cti-stix2-json-schemas',
|
|
58
|
+
'stix2.1',
|
|
59
|
+
'schemas',
|
|
60
|
+
'common',
|
|
61
|
+
'core.json'
|
|
62
|
+
))
|
|
63
|
+
|
|
64
|
+
self.true(filename.exists())
|
|
65
|
+
filename.unlink()
|
|
66
|
+
self.false(filename.exists())
|
|
67
|
+
|
|
68
|
+
# Clear the cached validator funcs so the ref handlers in s_getrefs get called
|
|
69
|
+
s_config._JsValidators = {}
|
|
70
|
+
|
|
71
|
+
with self.getLoggerStream('synapse.utils.getrefs') as stream:
|
|
72
|
+
with mock.patch('synapse.utils.getrefs.BASEDIR', dirn):
|
|
73
|
+
with self.getVcr():
|
|
74
|
+
s_getrefs.main(args)
|
|
75
|
+
|
|
76
|
+
stream.seek(0)
|
|
77
|
+
mesgs = stream.read()
|
|
78
|
+
mesg = f'Downloading schema from {CORE_URL}.'
|
|
79
|
+
self.true(filename.exists())
|
|
80
|
+
self.isin(mesg, mesgs)
|
|
81
|
+
self.notin(f'Schema {CORE_URL} already exists in local cache, skipping.', mesgs)
|
synapse/utils/getrefs.py
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
import json
|
|
3
3
|
import urllib
|
|
4
|
+
import asyncio
|
|
4
5
|
import logging
|
|
5
6
|
import pathlib
|
|
6
7
|
import argparse
|
|
7
8
|
|
|
8
|
-
import
|
|
9
|
+
import aiohttp
|
|
9
10
|
|
|
10
11
|
import synapse.exc as s_exc
|
|
11
12
|
import synapse.data as s_data
|
|
@@ -15,23 +16,31 @@ import synapse.lib.config as s_config
|
|
|
15
16
|
|
|
16
17
|
logger = logging.getLogger(__name__)
|
|
17
18
|
|
|
19
|
+
BASEDIR = s_data.path('jsonschemas')
|
|
20
|
+
|
|
18
21
|
def download_refs_handler(uri):
|
|
19
22
|
'''
|
|
20
23
|
This function downloads the JSON schema at the given URI, parses the given
|
|
21
24
|
URI to get the path component, and then saves the referenced schema to the
|
|
22
25
|
'jsonschemas' directory of synapse.data.
|
|
26
|
+
|
|
27
|
+
This function runs its own asyncio loop for each URI being requested.
|
|
23
28
|
'''
|
|
29
|
+
ret = asyncio.run(_download_refs_handler(uri))
|
|
30
|
+
return ret
|
|
31
|
+
|
|
32
|
+
async def _download_refs_handler(uri):
|
|
24
33
|
|
|
25
34
|
try:
|
|
26
35
|
parts = urllib.parse.urlparse(uri)
|
|
27
36
|
except ValueError:
|
|
28
37
|
raise s_exc.BadUrl(mesg=f'Malformed URI: {uri}.') from None
|
|
29
38
|
|
|
30
|
-
filename = s_data.path(
|
|
39
|
+
filename = s_data.path(BASEDIR, parts.hostname, *parts.path.split('/'))
|
|
31
40
|
filepath = pathlib.Path(filename)
|
|
32
41
|
|
|
33
42
|
# Check for path traversal. Unlikely, but still check
|
|
34
|
-
if not str(filepath.absolute()).startswith(
|
|
43
|
+
if not str(filepath.absolute()).startswith(BASEDIR):
|
|
35
44
|
raise s_exc.BadArg(mesg=f'Path traversal in schema URL: {uri} ?')
|
|
36
45
|
|
|
37
46
|
# If we already have the file, return it
|
|
@@ -45,8 +54,12 @@ def download_refs_handler(uri):
|
|
|
45
54
|
|
|
46
55
|
# Get the data from the interwebs
|
|
47
56
|
logger.info(f'Downloading schema from {uri}.')
|
|
48
|
-
|
|
49
|
-
|
|
57
|
+
async with aiohttp.ClientSession() as session:
|
|
58
|
+
async with session.get(uri) as resp:
|
|
59
|
+
resp.raise_for_status()
|
|
60
|
+
buf = await resp.read()
|
|
61
|
+
|
|
62
|
+
data = json.loads(buf.decode())
|
|
50
63
|
|
|
51
64
|
# Save the json schema to disk
|
|
52
65
|
with filepath.open('w') as fp:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 2.187.
|
|
3
|
+
Version: 2.187.1
|
|
4
4
|
Summary: Synapse Intelligence Analysis Framework
|
|
5
5
|
Author-email: The Vertex Project LLC <root@vertex.link>
|
|
6
6
|
License: Apache License 2.0
|
|
@@ -19,7 +19,7 @@ Classifier: Operating System :: POSIX :: Linux
|
|
|
19
19
|
Requires-Python: >=3.11
|
|
20
20
|
Description-Content-Type: text/x-rst
|
|
21
21
|
License-File: LICENSE
|
|
22
|
-
Requires-Dist: pyOpenSSL<
|
|
22
|
+
Requires-Dist: pyOpenSSL<24.3.0,>=24.0.0
|
|
23
23
|
Requires-Dist: cryptography<44.0.0,>=43.0.1
|
|
24
24
|
Requires-Dist: msgpack<1.1.0,>=1.0.5
|
|
25
25
|
Requires-Dist: xxhash<3.6.0,>=1.4.4
|
|
@@ -63,6 +63,7 @@ Requires-Dist: sphinx<9.0.0,>=8.0.0; extra == "docs"
|
|
|
63
63
|
Requires-Dist: sphinx-rtd-theme<4.0.0,>=3.0.0; extra == "docs"
|
|
64
64
|
Requires-Dist: sphinx-notfound-page<2.0.0,>=1.0.4; extra == "docs"
|
|
65
65
|
Requires-Dist: jinja2<4.0.0,>=3.1.4; extra == "docs"
|
|
66
|
+
Dynamic: license-file
|
|
66
67
|
|
|
67
68
|
Synapse
|
|
68
69
|
=======
|
|
@@ -117,8 +117,8 @@ synapse/lib/interval.py,sha256=PqpEhMGG6LD9mJxEms0oQWC-NB01H6gwsmLSc5LrDFk,1175
|
|
|
117
117
|
synapse/lib/jsonstor.py,sha256=QQVf7Kl90sI_v97UZZAoa6stizDeMyy0ykR3RsHpmi8,19359
|
|
118
118
|
synapse/lib/layer.py,sha256=9QriT6ikYTQJrpQUw2AGZS887Ndstv61P4UGKK5y1Zo,154151
|
|
119
119
|
synapse/lib/link.py,sha256=DdCmaJzCqYWSJSxv2CQQiMKmW5q12nm34MYyrzCsL-Y,10216
|
|
120
|
-
synapse/lib/lmdbslab.py,sha256=
|
|
121
|
-
synapse/lib/modelrev.py,sha256=
|
|
120
|
+
synapse/lib/lmdbslab.py,sha256=BG-iO5z4syzVePhezpWWdBDCtAtRtTWxqWgvngqiJRk,61064
|
|
121
|
+
synapse/lib/modelrev.py,sha256=IqYFEx_uz8JBpwK7bxQi-DFD-TWrmyQel4SHzj8qe-8,72099
|
|
122
122
|
synapse/lib/module.py,sha256=0XLFLzuZVmEqulKmdT0uah0oi1t8_f_ghakhqvoKtKI,4686
|
|
123
123
|
synapse/lib/modules.py,sha256=xHNrGBWLOSTSqn7GMMnm6iiw3Df-Q11h5gOUw84Ax7E,1282
|
|
124
124
|
synapse/lib/msgpack.py,sha256=I2dc4Py9m5ohGkcsb2Ariqfon6nkam5hC0leEoqADhs,7835
|
|
@@ -139,7 +139,7 @@ synapse/lib/share.py,sha256=HDQR7nb4IOleHB1kIFe6prZQVW7PjPAivSAkPuhNn5A,663
|
|
|
139
139
|
synapse/lib/slaboffs.py,sha256=Fd0RrIRBMjh159aQz5y1ONmzw0NvV040kVX_jZjQW6I,815
|
|
140
140
|
synapse/lib/slabseqn.py,sha256=LJ2SZEsZlROBAD3mdS-3JxNVVPXXkBW8GIJXsW0OGG8,10287
|
|
141
141
|
synapse/lib/snap.py,sha256=QfNtFHV_76ABrm7Zf7WR5kVBB-MvuZmdmDfy0n1Whlo,59880
|
|
142
|
-
synapse/lib/spooled.py,sha256=
|
|
142
|
+
synapse/lib/spooled.py,sha256=BQHIW-qZvEcvhEf8PpXhbDDGzq1go4TH63D6kn-1anM,6021
|
|
143
143
|
synapse/lib/storm.lark,sha256=ItEIPItfrCT5VmaoS1vm8FWD8Wv7b7B6ZWucCJCdO6s,26517
|
|
144
144
|
synapse/lib/storm.py,sha256=DDUNmM4c9sB_qPpzgOFpI1r6r3G2xEuARzXeTDvCPI0,215144
|
|
145
145
|
synapse/lib/storm_format.py,sha256=Q8mf9QWzPljwp70BC4dYv0MGWB_YUJi3Ul4T7ReqjlQ,4818
|
|
@@ -157,7 +157,7 @@ synapse/lib/time.py,sha256=FKTYwpdvpuAj8p8sSodRjOxoA7Vu67CIbbXz55gtghk,9231
|
|
|
157
157
|
synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
|
|
158
158
|
synapse/lib/types.py,sha256=u89ukW38oDziRzeA6IWrPwwPD0Ds75u-gwJSXsQ4loY,69708
|
|
159
159
|
synapse/lib/urlhelp.py,sha256=j-DvWGi-xH0TcO0NbCuwG7guUuiV8wxIxfMyJOzDygo,2523
|
|
160
|
-
synapse/lib/version.py,sha256=
|
|
160
|
+
synapse/lib/version.py,sha256=3aG_oI2Fc9D0IefysRWnuiqCuGAPi6BozKk6hWwDYYc,7162
|
|
161
161
|
synapse/lib/view.py,sha256=bP1lMl8Wm0yaMIlc4cfwobm5ojNzMsWguPFnPUkKhoM,60567
|
|
162
162
|
synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
163
|
synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
|
|
@@ -197,7 +197,7 @@ synapse/lib/stormlib/log.py,sha256=wdV-lqzQMM0C3GXNJKJKvkSKjk0CBsUfjd-Cl06LOtE,7
|
|
|
197
197
|
synapse/lib/stormlib/macro.py,sha256=7iQ18mCaNZcslmfXGQvOmGQ71HxD7JeDp0HDmu5-EKM,8807
|
|
198
198
|
synapse/lib/stormlib/math.py,sha256=3RKHj40GkYFiJSINa2AZZOAA-GqqeEP98bWw2JNity8,1149
|
|
199
199
|
synapse/lib/stormlib/mime.py,sha256=WMDAcUiF8RkABKL8EUOScrO77pwi5EHPTko7hI2FPIE,1095
|
|
200
|
-
synapse/lib/stormlib/model.py,sha256=
|
|
200
|
+
synapse/lib/stormlib/model.py,sha256=3SY7jwBXsoKFQ8bVxq8AJb041QPknPHyvjbmeMAR9Bw,53386
|
|
201
201
|
synapse/lib/stormlib/modelext.py,sha256=h_uGVK-OjsFXOC--W-2WwTKVWIhDnWatSa2CRAHo4ZE,13073
|
|
202
202
|
synapse/lib/stormlib/notifications.py,sha256=6y1YuMavQs34WwnW5D_KrLPZ0DQlQKg5VFU56sounSA,3305
|
|
203
203
|
synapse/lib/stormlib/oauth.py,sha256=hgfjI--w8vbvgNbGvZlzINTOEdQv68nk5mB27CkC93M,13011
|
|
@@ -311,8 +311,8 @@ synapse/tests/test_lib_interval.py,sha256=PNEU24XXEGdlW7WkiYJGbhGljwBJpAWen9yTOq
|
|
|
311
311
|
synapse/tests/test_lib_jsonstor.py,sha256=1AebkkDAqFhd_mUyjpGviAUq_n0XFUzeuBxPevOu1vc,5866
|
|
312
312
|
synapse/tests/test_lib_layer.py,sha256=duZUqyqwgRk8RSvVsnV1GCEBOlRl6y84-usWXZdP-Wk,94557
|
|
313
313
|
synapse/tests/test_lib_link.py,sha256=sTRctDa6s9cmQ6ODoV4ifC3eQhEyXOhX2AkHMQHFHls,10204
|
|
314
|
-
synapse/tests/test_lib_lmdbslab.py,sha256=
|
|
315
|
-
synapse/tests/test_lib_modelrev.py,sha256=
|
|
314
|
+
synapse/tests/test_lib_lmdbslab.py,sha256=KQ8SnDz0bwiMUrDsWwNIVMrCndf09PYMy3QU5iZOlDQ,66662
|
|
315
|
+
synapse/tests/test_lib_modelrev.py,sha256=E4vNIXjjl-rn3i8CU2_YFm5GB6YJH-QcGFA479t6DWQ,80487
|
|
316
316
|
synapse/tests/test_lib_module.py,sha256=h2OyCW4HW-ZFiJBNQtZ-sPLjsnrlLdTFHQPaXpA8cds,3923
|
|
317
317
|
synapse/tests/test_lib_msgpack.py,sha256=_cS-Kzap6InQstBH0nCgFj9HoVO_tB2dj7D2zCa2miU,10056
|
|
318
318
|
synapse/tests/test_lib_multislabseqn.py,sha256=ujIp3VkFRhPURx3Js9nklXJ4aYup8UTrcLg7X96lrDs,17425
|
|
@@ -329,7 +329,7 @@ synapse/tests/test_lib_scrape.py,sha256=ZAbt-obxC9x7WN--pMPq8fU3ZLyKX_aDFSStwJYW
|
|
|
329
329
|
synapse/tests/test_lib_slaboffs.py,sha256=FHQ8mGZ27dGqVwGk6q2UJ4gkPRZN22eIVzS8hMPkD9c,756
|
|
330
330
|
synapse/tests/test_lib_slabseqn.py,sha256=74V6jU7DRTsy_hqUFDuT4C6dPlJ6ObNnjmI9qhbbyVc,5230
|
|
331
331
|
synapse/tests/test_lib_snap.py,sha256=OviJtj9N5LhBV-56TySkWvRly7f8VH9d-VBcNFLAtmg,27805
|
|
332
|
-
synapse/tests/test_lib_spooled.py,sha256=
|
|
332
|
+
synapse/tests/test_lib_spooled.py,sha256=Ki9UnzTPUtw7devwN_M0a8uwOst81fGQtGSVqSSh1u8,4002
|
|
333
333
|
synapse/tests/test_lib_storm.py,sha256=2cmkPI_wmmXhURTq-8f_rtq96iajB8mK1EROE2HDP0c,226103
|
|
334
334
|
synapse/tests/test_lib_storm_format.py,sha256=tEZgQMmKAeG8FQZE5HUjOT7bnKawVTpNaVQh_3Wa630,277
|
|
335
335
|
synapse/tests/test_lib_stormhttp.py,sha256=ZS8iONsisWjEi2CXx9AttiQ9bOrPs9x4GCwXlJEB_u0,42592
|
|
@@ -450,7 +450,7 @@ synapse/tests/test_tools_rstorm.py,sha256=-bIvNCY9Vx702LsNb2vwunZBT6fyXHse28Av6H
|
|
|
450
450
|
synapse/tests/test_tools_snapshot.py,sha256=MfMq8ij4Ztxrn0D_iVYXRGSHI1_rQzEybexjlraeSaQ,1750
|
|
451
451
|
synapse/tests/test_tools_storm.py,sha256=QkyPX4HS67n1q4LbmsCGF9yUSyMLHK4BjNRX3JCgy1w,18437
|
|
452
452
|
synapse/tests/test_utils.py,sha256=sI-uDhUpkVQHSKHa2-czmWNvyXL2QTsCojtPAV2jueI,8688
|
|
453
|
-
synapse/tests/test_utils_getrefs.py,sha256=
|
|
453
|
+
synapse/tests/test_utils_getrefs.py,sha256=Cv0LT0DF-tCGwBmOXsYUVNIJdXQA73yRBgdSWxFL3oA,2623
|
|
454
454
|
synapse/tests/test_utils_stormcov.py,sha256=H9p1vFH8kNE6qMLrGzSV0eH7KOgdZFh7QuarFe47FtU,6149
|
|
455
455
|
synapse/tests/utils.py,sha256=7BENTJiU04JpatJjVBjs8O4wXJn62L2MCS55vK98GwM,77934
|
|
456
456
|
synapse/tests/files/TestUtilsGetrefs.test_basics.yaml,sha256=Ch8cEGFYfDUCZTEvzAqW5Ir79OnYb49pq4i9OJ7K9T0,8257
|
|
@@ -558,7 +558,7 @@ synapse/tools/hive/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
|
|
|
558
558
|
synapse/tools/hive/load.py,sha256=LpMN14qxtMtUrVwQgW1cr-q5QCanrhrdvncwBqv01Ns,2409
|
|
559
559
|
synapse/tools/hive/save.py,sha256=179wHdemYXiDnszfvY14_3jSYL7X8BVbXtHFXwpiPk4,1938
|
|
560
560
|
synapse/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
561
|
-
synapse/utils/getrefs.py,sha256=
|
|
561
|
+
synapse/utils/getrefs.py,sha256=NhHC9uWw7rO08Nj0e86zs2vFCp1gSIe-uie9JP5lemY,2808
|
|
562
562
|
synapse/utils/stormcov/__init__.py,sha256=81TBw16JwbjeOjegMrJmc5-eY5I4gsks4TrOgyot4CU,163
|
|
563
563
|
synapse/utils/stormcov/plugin.py,sha256=NUf3SDemVi5Nm7AzJPTvI7TYdg2uc8B1MvXu7thnIqE,8194
|
|
564
564
|
synapse/vendor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -602,8 +602,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
602
602
|
synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
|
|
603
603
|
synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
|
|
604
604
|
synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
|
|
605
|
-
synapse-2.187.
|
|
606
|
-
synapse-2.187.
|
|
607
|
-
synapse-2.187.
|
|
608
|
-
synapse-2.187.
|
|
609
|
-
synapse-2.187.
|
|
605
|
+
synapse-2.187.1.dist-info/licenses/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
|
|
606
|
+
synapse-2.187.1.dist-info/METADATA,sha256=GHOrBkGkJ9qyUnZNiLL6mdbfbLlbne2uCoI3lV6yXZM,4620
|
|
607
|
+
synapse-2.187.1.dist-info/WHEEL,sha256=ky1wqorHl2SfzZVBwTGUq24xVn07Gwf80XRasCPZT3o,93
|
|
608
|
+
synapse-2.187.1.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
|
|
609
|
+
synapse-2.187.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|