synapse 2.199.0__tar.gz → 2.201.0__tar.gz
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-2.199.0/synapse.egg-info → synapse-2.201.0}/PKG-INFO +2 -2
- {synapse-2.199.0 → synapse-2.201.0}/pyproject.toml +2 -2
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cortex.py +0 -6
- {synapse-2.199.0 → synapse-2.201.0}/synapse/datamodel.py +10 -4
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/agenda.py +24 -5
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/ast.py +7 -10
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/hive.py +1 -265
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/schemas.py +1 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/snap.py +2 -8
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/storm.py +20 -10
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/version.py +2 -2
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/dns.py +1 -1
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/economic.py +23 -23
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/files.py +2 -2
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/inet.py +2 -2
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/infotech.py +7 -7
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/person.py +1 -1
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/proj.py +3 -2
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/risk.py +1 -1
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/transport.py +3 -3
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_cortex.py +3 -6
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_datamodel.py +2 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_agenda.py +41 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_ast.py +3 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_cell.py +4 -4
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_hive.py +0 -38
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_storm.py +11 -1
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_risk.py +4 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_autodoc.py +5 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_hiveload.py +19 -23
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_hivesave.py +5 -7
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/utils.py +7 -26
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/autodoc.py +16 -1
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/hive/load.py +3 -9
- {synapse-2.199.0 → synapse-2.201.0/synapse.egg-info}/PKG-INFO +2 -2
- {synapse-2.199.0 → synapse-2.201.0}/synapse.egg-info/SOURCES.txt +0 -1
- {synapse-2.199.0 → synapse-2.201.0}/synapse.egg-info/requires.txt +1 -1
- synapse-2.199.0/synapse/lib/hiveauth.py +0 -1336
- {synapse-2.199.0 → synapse-2.201.0}/LICENSE +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/README.rst +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/setup.cfg +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/axon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cells.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/common.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/cryotank.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/daemon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/exc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/glob.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/aha.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/auth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/base.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/boss.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/cache.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/cell.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/chop.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/cli.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/config.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/const.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/coro.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/drive.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/gis.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/health.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/interval.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/layer.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/link.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/module.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/modules.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/node.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/output.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/parser.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/queue.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/scope.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/scrape.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/share.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/storm.lark +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/xml.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormtypes.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/task.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/threads.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/time.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/types.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lib/view.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/mindmeld.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/auth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/base.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/belief.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/biz.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/crypto.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/doc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/entity.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/geopol.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/geospace.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/language.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/material.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/math.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/media.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/orgs.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/planning.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/science.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/syn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/models/telco.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/aha.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/axon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/cell.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/telepath.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_exc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormtypes.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_infotech.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_math.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_apikey.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_axon2axon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_backup.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_changelog.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_csvtool.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_easycert.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_feed.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_genpkg.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_guid.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_healthcheck.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_json2mpk.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_livebackup.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_modrole.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_moduser.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_promote.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_pullfile.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_pushfile.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_reload.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_rstorm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_snapshot.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_tools_storm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/apikey.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/backup.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/changelog.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/feed.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/guid.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/promote.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/reload.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/snapshot.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/tools/storm.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.199.0 → synapse-2.201.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.201.0
|
|
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
|
|
@@ -23,7 +23,7 @@ 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.2.0,>=1.0.5
|
|
25
25
|
Requires-Dist: xxhash<3.6.0,>=1.4.4
|
|
26
|
-
Requires-Dist: lmdb<1.
|
|
26
|
+
Requires-Dist: lmdb<1.7.0,>=1.2.1
|
|
27
27
|
Requires-Dist: tornado<7.0.0,>=6.2.0
|
|
28
28
|
Requires-Dist: regex>=2022.9.11
|
|
29
29
|
Requires-Dist: PyYAML<6.1.0,>=5.4
|
|
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = 'synapse'
|
|
7
|
-
version = '2.
|
|
7
|
+
version = '2.201.0'
|
|
8
8
|
authors = [
|
|
9
9
|
{ name = 'The Vertex Project LLC', email = 'root@vertex.link'},
|
|
10
10
|
]
|
|
@@ -27,7 +27,7 @@ dependencies = [
|
|
|
27
27
|
'cryptography>=43.0.1,<44.0.0',
|
|
28
28
|
'msgpack>=1.0.5,<1.2.0',
|
|
29
29
|
'xxhash>=1.4.4,<3.6.0',
|
|
30
|
-
'lmdb>=1.2.1,<1.
|
|
30
|
+
'lmdb>=1.2.1,<1.7.0',
|
|
31
31
|
'tornado>=6.2.0,<7.0.0',
|
|
32
32
|
'regex>=2022.9.11',
|
|
33
33
|
'PyYAML>=5.4,<6.1.0',
|
|
@@ -20,7 +20,6 @@ import synapse.lib.base as s_base
|
|
|
20
20
|
import synapse.lib.cell as s_cell
|
|
21
21
|
import synapse.lib.chop as s_chop
|
|
22
22
|
import synapse.lib.coro as s_coro
|
|
23
|
-
import synapse.lib.hive as s_hive
|
|
24
23
|
import synapse.lib.view as s_view
|
|
25
24
|
import synapse.lib.cache as s_cache
|
|
26
25
|
import synapse.lib.const as s_const
|
|
@@ -855,7 +854,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
855
854
|
cellapi = CoreApi
|
|
856
855
|
viewapi = s_view.ViewApi
|
|
857
856
|
layerapi = s_layer.LayerApi
|
|
858
|
-
hiveapi = s_hive.HiveApi
|
|
859
857
|
|
|
860
858
|
viewctor = s_view.View.anit
|
|
861
859
|
layrctor = s_layer.Layer.anit
|
|
@@ -4656,10 +4654,6 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
|
|
|
4656
4654
|
if not path:
|
|
4657
4655
|
return await self.cellapi.anit(self, link, user)
|
|
4658
4656
|
|
|
4659
|
-
if path[0] == 'hive' and user.isAdmin():
|
|
4660
|
-
s_common.deprecated('Cortex /hive telepath path', curv='2.198.0', eolv='2.199.0')
|
|
4661
|
-
return await self.hiveapi.anit(self.hive, user)
|
|
4662
|
-
|
|
4663
4657
|
if path[0] == 'layer':
|
|
4664
4658
|
|
|
4665
4659
|
if len(path) == 1:
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'''
|
|
2
2
|
An API to assist with the creation and enforcement of cortex data models.
|
|
3
3
|
'''
|
|
4
|
+
import sys
|
|
4
5
|
import asyncio
|
|
5
6
|
import logging
|
|
6
7
|
import collections
|
|
@@ -15,6 +16,7 @@ import synapse.lib.cache as s_cache
|
|
|
15
16
|
import synapse.lib.types as s_types
|
|
16
17
|
import synapse.lib.dyndeps as s_dyndeps
|
|
17
18
|
import synapse.lib.grammar as s_grammar
|
|
19
|
+
import synapse.lib.msgpack as s_msgpack
|
|
18
20
|
|
|
19
21
|
logger = logging.getLogger(__name__)
|
|
20
22
|
|
|
@@ -142,6 +144,9 @@ class Prop:
|
|
|
142
144
|
async def depfunc(node, oldv):
|
|
143
145
|
mesg = f'The property {self.full} is deprecated or using a deprecated type and will be removed in 3.0.0'
|
|
144
146
|
await node.snap.warnonce(mesg)
|
|
147
|
+
if __debug__:
|
|
148
|
+
sys.audit('synapse.datamodel.Prop.deprecated', mesg, self.full)
|
|
149
|
+
|
|
145
150
|
self.onSet(depfunc)
|
|
146
151
|
|
|
147
152
|
def __repr__(self):
|
|
@@ -306,6 +311,8 @@ class Form:
|
|
|
306
311
|
async def depfunc(node):
|
|
307
312
|
mesg = f'The form {self.full} is deprecated or using a deprecated type and will be removed in 3.0.0'
|
|
308
313
|
await node.snap.warnonce(mesg)
|
|
314
|
+
if __debug__:
|
|
315
|
+
sys.audit('synapse.datamodel.Form.deprecated', mesg, self.full)
|
|
309
316
|
self.onAdd(depfunc)
|
|
310
317
|
|
|
311
318
|
def getStorNode(self, form):
|
|
@@ -1107,7 +1114,7 @@ class Model:
|
|
|
1107
1114
|
|
|
1108
1115
|
def _prepFormIface(self, form, iface):
|
|
1109
1116
|
|
|
1110
|
-
template = iface.get('template', {})
|
|
1117
|
+
template = s_msgpack.deepcopy(iface.get('template', {}))
|
|
1111
1118
|
template.update(form.type.info.get('template', {}))
|
|
1112
1119
|
|
|
1113
1120
|
def convert(item):
|
|
@@ -1153,10 +1160,9 @@ class Model:
|
|
|
1153
1160
|
for propname, typedef, propinfo in iface.get('props', ()):
|
|
1154
1161
|
|
|
1155
1162
|
# allow form props to take precedence
|
|
1156
|
-
if form.prop(propname) is
|
|
1157
|
-
|
|
1163
|
+
if (prop := form.prop(propname)) is None:
|
|
1164
|
+
prop = self._addFormProp(form, propname, typedef, propinfo)
|
|
1158
1165
|
|
|
1159
|
-
prop = self._addFormProp(form, propname, typedef, propinfo)
|
|
1160
1166
|
self.ifaceprops[f'{name}:{propname}'].append(prop.full)
|
|
1161
1167
|
|
|
1162
1168
|
if subifaces is not None:
|
|
@@ -260,6 +260,7 @@ class _Appt:
|
|
|
260
260
|
'created',
|
|
261
261
|
'enabled',
|
|
262
262
|
'errcount',
|
|
263
|
+
'loglevel',
|
|
263
264
|
'nexttime',
|
|
264
265
|
'lasterrs',
|
|
265
266
|
'isrunning',
|
|
@@ -269,7 +270,7 @@ class _Appt:
|
|
|
269
270
|
'lastfinishtime',
|
|
270
271
|
}
|
|
271
272
|
|
|
272
|
-
def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None, pool=False):
|
|
273
|
+
def __init__(self, stor, iden, recur, indx, query, creator, recs, nexttime=None, view=None, created=None, pool=False, loglevel=None):
|
|
273
274
|
self.doc = ''
|
|
274
275
|
self.name = ''
|
|
275
276
|
self.task = None
|
|
@@ -284,6 +285,7 @@ class _Appt:
|
|
|
284
285
|
self._recidxnexttime = None # index of rec who is up next
|
|
285
286
|
self.view = view
|
|
286
287
|
self.created = created
|
|
288
|
+
self.loglevel = loglevel
|
|
287
289
|
|
|
288
290
|
if self.recur and not self.recs:
|
|
289
291
|
raise s_exc.BadTime(mesg='A recurrent appointment with no records')
|
|
@@ -364,7 +366,10 @@ class _Appt:
|
|
|
364
366
|
if val['ver'] != 1:
|
|
365
367
|
raise s_exc.BadStorageVersion(mesg=f"Found version {val['ver']}") # pragma: no cover
|
|
366
368
|
recs = [ApptRec.unpack(tupl) for tupl in val['recs']]
|
|
367
|
-
|
|
369
|
+
# TODO: MOAR INSANITY
|
|
370
|
+
loglevel = val.get('loglevel', 'WARNING')
|
|
371
|
+
appt = cls(stor, val['iden'], val['recur'], val['indx'], val['query'], val['creator'], recs,
|
|
372
|
+
nexttime=val['nexttime'], view=val.get('view'), loglevel=loglevel)
|
|
368
373
|
appt.doc = val.get('doc', '')
|
|
369
374
|
appt.name = val.get('name', '')
|
|
370
375
|
appt.pool = val.get('pool', False)
|
|
@@ -373,6 +378,7 @@ class _Appt:
|
|
|
373
378
|
appt.lastfinishtime = val['lastfinishtime']
|
|
374
379
|
appt.lastresult = val['lastresult']
|
|
375
380
|
appt.enabled = val['enabled']
|
|
381
|
+
appt.lasterrs = list(val.get('lasterrs', []))
|
|
376
382
|
|
|
377
383
|
return appt
|
|
378
384
|
|
|
@@ -422,8 +428,10 @@ class _Appt:
|
|
|
422
428
|
logger.warning('_Appt.edits() Invalid attribute received: %s = %r', name, valu, extra=extra)
|
|
423
429
|
continue
|
|
424
430
|
|
|
425
|
-
|
|
426
|
-
|
|
431
|
+
if name == 'lasterrs' and not isinstance(valu, list):
|
|
432
|
+
valu = list(valu)
|
|
433
|
+
|
|
434
|
+
setattr(self, name, valu)
|
|
427
435
|
|
|
428
436
|
await self.save()
|
|
429
437
|
|
|
@@ -559,6 +567,7 @@ class Agenda(s_base.Base):
|
|
|
559
567
|
creator = cdef.get('creator')
|
|
560
568
|
view = cdef.get('view')
|
|
561
569
|
created = cdef.get('created')
|
|
570
|
+
loglevel = cdef.get('loglevel', 'WARNING')
|
|
562
571
|
|
|
563
572
|
pool = cdef.get('pool', False)
|
|
564
573
|
|
|
@@ -603,7 +612,9 @@ class Agenda(s_base.Base):
|
|
|
603
612
|
incvals = (incvals, )
|
|
604
613
|
recs.extend(ApptRec(rd, incunit, v) for (rd, v) in itertools.product(reqdicts, incvals))
|
|
605
614
|
|
|
606
|
-
|
|
615
|
+
# TODO: this is insane. Make _Appt take the cdef directly...
|
|
616
|
+
appt = _Appt(self, iden, recur, indx, query, creator, recs, nexttime=nexttime, view=view,
|
|
617
|
+
created=created, pool=pool, loglevel=loglevel)
|
|
607
618
|
self._addappt(iden, appt)
|
|
608
619
|
|
|
609
620
|
appt.doc = cdef.get('doc', '')
|
|
@@ -841,7 +852,10 @@ class Agenda(s_base.Base):
|
|
|
841
852
|
extra={'synapse': {'iden': appt.iden, 'name': appt.name, 'user': user.iden, 'text': appt.query,
|
|
842
853
|
'username': user.name, 'view': appt.view}})
|
|
843
854
|
starttime = self._getNowTick()
|
|
855
|
+
|
|
844
856
|
success = False
|
|
857
|
+
loglevel = s_common.normLogLevel(appt.loglevel)
|
|
858
|
+
|
|
845
859
|
try:
|
|
846
860
|
opts = {
|
|
847
861
|
'user': user.iden,
|
|
@@ -861,6 +875,11 @@ class Agenda(s_base.Base):
|
|
|
861
875
|
if mesg[0] == 'node':
|
|
862
876
|
count += 1
|
|
863
877
|
|
|
878
|
+
elif mesg[0] == 'warn' and loglevel <= logging.WARNING:
|
|
879
|
+
text = mesg[1].get('mesg', '<missing message>')
|
|
880
|
+
extra = await self.core.getLogExtra(cron=appt.iden, **mesg[1])
|
|
881
|
+
logger.warning(f'Cron job {appt.iden} issued warning: {text}', extra=extra)
|
|
882
|
+
|
|
864
883
|
elif mesg[0] == 'err':
|
|
865
884
|
excname, errinfo = mesg[1]
|
|
866
885
|
errinfo.pop('eline', None)
|
|
@@ -217,13 +217,10 @@ class Query(AstNode):
|
|
|
217
217
|
genr = await stack.enter_async_context(contextlib.aclosing(oper.run(runt, genr)))
|
|
218
218
|
|
|
219
219
|
async for node, path in genr:
|
|
220
|
-
runt.tick()
|
|
221
220
|
yield node, path
|
|
222
221
|
|
|
223
222
|
async def iterNodePaths(self, runt, genr=None):
|
|
224
223
|
|
|
225
|
-
count = 0
|
|
226
|
-
|
|
227
224
|
self.optimize()
|
|
228
225
|
self.validate(runt)
|
|
229
226
|
|
|
@@ -231,18 +228,18 @@ class Query(AstNode):
|
|
|
231
228
|
if genr is None:
|
|
232
229
|
genr = runt.getInput()
|
|
233
230
|
|
|
231
|
+
count = 0
|
|
232
|
+
limit = runt.getOpt('limit')
|
|
233
|
+
|
|
234
234
|
async with contextlib.aclosing(self.run(runt, genr)) as agen:
|
|
235
235
|
async for node, path in agen:
|
|
236
236
|
|
|
237
|
-
runt.tick()
|
|
238
|
-
|
|
239
237
|
yield node, path
|
|
240
238
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
break
|
|
239
|
+
if limit is not None:
|
|
240
|
+
count += 1
|
|
241
|
+
if count >= limit:
|
|
242
|
+
break
|
|
246
243
|
|
|
247
244
|
class Lookup(Query):
|
|
248
245
|
'''
|
|
@@ -86,7 +86,7 @@ class Node(s_base.Base):
|
|
|
86
86
|
for name, node in self.kids.items():
|
|
87
87
|
yield name, node
|
|
88
88
|
|
|
89
|
-
class Hive(s_nexus.Pusher
|
|
89
|
+
class Hive(s_nexus.Pusher):
|
|
90
90
|
'''
|
|
91
91
|
An optionally persistent atomically accessed tree which implements
|
|
92
92
|
primitives for use in making distributed/clustered services.
|
|
@@ -95,8 +95,6 @@ class Hive(s_nexus.Pusher, s_telepath.Aware):
|
|
|
95
95
|
|
|
96
96
|
await s_nexus.Pusher.__anit__(self, 'hive', nexsroot=nexsroot)
|
|
97
97
|
|
|
98
|
-
s_telepath.Aware.__init__(self)
|
|
99
|
-
|
|
100
98
|
if conf is None:
|
|
101
99
|
conf = {}
|
|
102
100
|
|
|
@@ -161,24 +159,6 @@ class Hive(s_nexus.Pusher, s_telepath.Aware):
|
|
|
161
159
|
for cullname in culls:
|
|
162
160
|
await node.pop((cullname,))
|
|
163
161
|
|
|
164
|
-
async def getHiveAuth(self):
|
|
165
|
-
'''
|
|
166
|
-
Retrieve a HiveAuth for hive standalone or non-cell uses.
|
|
167
|
-
|
|
168
|
-
Note:
|
|
169
|
-
This is for the hive's own auth, or for non-cell auth. It isn't the same auth as for a cell
|
|
170
|
-
'''
|
|
171
|
-
import synapse.lib.hiveauth as s_hiveauth
|
|
172
|
-
if self.auth is None:
|
|
173
|
-
|
|
174
|
-
path = tuple(self.conf.get('auth:path').split('/'))
|
|
175
|
-
|
|
176
|
-
node = await self.open(path)
|
|
177
|
-
self.auth = await s_hiveauth.Auth.anit(node, nexsroot=self.nexsroot)
|
|
178
|
-
self.onfini(self.auth.fini)
|
|
179
|
-
|
|
180
|
-
return self.auth
|
|
181
|
-
|
|
182
162
|
async def _onHiveFini(self):
|
|
183
163
|
await self.root.fini()
|
|
184
164
|
|
|
@@ -423,27 +403,6 @@ class Hive(s_nexus.Pusher, s_telepath.Aware):
|
|
|
423
403
|
|
|
424
404
|
return node.valu
|
|
425
405
|
|
|
426
|
-
async def getTeleApi(self, link, mesg, path):
|
|
427
|
-
s_common.deprecated('Hive.getTeleApi', curv='2.198.0', eolv='2.199.0')
|
|
428
|
-
auth = await self.getHiveAuth()
|
|
429
|
-
|
|
430
|
-
if not self.conf.get('auth:en'):
|
|
431
|
-
user = await auth.getUserByName('root')
|
|
432
|
-
return await HiveApi.anit(self, user)
|
|
433
|
-
|
|
434
|
-
name, info = mesg[1].get('auth')
|
|
435
|
-
|
|
436
|
-
user = await auth.getUserByName(name)
|
|
437
|
-
if user is None:
|
|
438
|
-
raise s_exc.NoSuchUser(name=name)
|
|
439
|
-
|
|
440
|
-
# passwd None always fails...
|
|
441
|
-
passwd = info.get('passwd')
|
|
442
|
-
if not await user.tryPasswd(passwd):
|
|
443
|
-
raise s_exc.AuthDeny(mesg='Invalid password', user=user.iden, username=user.name)
|
|
444
|
-
|
|
445
|
-
return await HiveApi.anit(self, user)
|
|
446
|
-
|
|
447
406
|
async def _storLoadHive(self):
|
|
448
407
|
pass
|
|
449
408
|
|
|
@@ -480,224 +439,6 @@ class SlabHive(Hive):
|
|
|
480
439
|
lkey = '\x00'.join(full).encode('utf8')
|
|
481
440
|
self.slab.pop(lkey, db=self.db)
|
|
482
441
|
|
|
483
|
-
class HiveApi(s_base.Base):
|
|
484
|
-
|
|
485
|
-
async def __anit__(self, hive, user):
|
|
486
|
-
|
|
487
|
-
await s_base.Base.__anit__(self)
|
|
488
|
-
|
|
489
|
-
self.hive = hive
|
|
490
|
-
self.user = user
|
|
491
|
-
|
|
492
|
-
self.msgq = asyncio.Queue(maxsize=10000)
|
|
493
|
-
|
|
494
|
-
self.onfini(self._onHapiFini)
|
|
495
|
-
|
|
496
|
-
async def loadHiveTree(self, tree, path=(), trim=False):
|
|
497
|
-
s_common.deprecated('HiveApi.loadHiveTree', curv='2.167.0')
|
|
498
|
-
return await self.hive.loadHiveTree(tree, path=path, trim=trim)
|
|
499
|
-
|
|
500
|
-
async def saveHiveTree(self, path=()):
|
|
501
|
-
s_common.deprecated('HiveApi.saveHiveTree', curv='2.167.0')
|
|
502
|
-
return await self.hive.saveHiveTree(path=path)
|
|
503
|
-
|
|
504
|
-
async def treeAndSync(self, path, iden):
|
|
505
|
-
s_common.deprecated('HiveApi.treeAndSync', curv='2.167.0')
|
|
506
|
-
|
|
507
|
-
node = await self.hive.open(path)
|
|
508
|
-
|
|
509
|
-
# register handlers...
|
|
510
|
-
node.on('hive:add', self._onHiveEdit, base=self)
|
|
511
|
-
node.on('hive:set', self._onHiveEdit, base=self)
|
|
512
|
-
node.on('hive:pop', self._onHiveEdit, base=self)
|
|
513
|
-
|
|
514
|
-
# serialize the subtree into a message and return
|
|
515
|
-
# via the mesg queue so there is no get/update race
|
|
516
|
-
root = (node.valu, {})
|
|
517
|
-
|
|
518
|
-
todo = collections.deque([(node, root)])
|
|
519
|
-
|
|
520
|
-
# breadth first generator
|
|
521
|
-
while todo:
|
|
522
|
-
|
|
523
|
-
node, pode = todo.popleft()
|
|
524
|
-
|
|
525
|
-
for name, kidn in node.kids.items():
|
|
526
|
-
|
|
527
|
-
kidp = (kidn.valu, {})
|
|
528
|
-
pode[1][name] = kidp
|
|
529
|
-
|
|
530
|
-
todo.append((kidn, kidp))
|
|
531
|
-
|
|
532
|
-
await self.msgq.put(('hive:tree', {'path': path, 'tree': root}))
|
|
533
|
-
await self.msgq.put(('hive:sync', {'iden': iden}))
|
|
534
|
-
return
|
|
535
|
-
|
|
536
|
-
async def setAndSync(self, path, valu, iden, nexs=False):
|
|
537
|
-
s_common.deprecated('HiveApi.setAndSync', curv='2.167.0')
|
|
538
|
-
|
|
539
|
-
valu = await self.hive.set(path, valu, nexs=nexs)
|
|
540
|
-
await self.msgq.put(('hive:sync', {'iden': iden}))
|
|
541
|
-
return valu
|
|
542
|
-
|
|
543
|
-
async def addAndSync(self, path, valu, iden):
|
|
544
|
-
s_common.deprecated('HiveApi.addAndSync', curv='2.167.0')
|
|
545
|
-
|
|
546
|
-
valu = await self.hive.add(path, valu)
|
|
547
|
-
await self.msgq.put(('hive:sync', {'iden': iden}))
|
|
548
|
-
return valu
|
|
549
|
-
|
|
550
|
-
async def popAndSync(self, path, iden, nexs=False):
|
|
551
|
-
s_common.deprecated('HiveApi.popAndSync', curv='2.167.0')
|
|
552
|
-
|
|
553
|
-
valu = await self.hive.pop(path, nexs=nexs)
|
|
554
|
-
await self.msgq.put(('hive:sync', {'iden': iden}))
|
|
555
|
-
return valu
|
|
556
|
-
|
|
557
|
-
async def _onHapiFini(self):
|
|
558
|
-
await self.msgq.put(None)
|
|
559
|
-
|
|
560
|
-
async def _onHiveEdit(self, mesg):
|
|
561
|
-
self.msgq.put_nowait(mesg)
|
|
562
|
-
|
|
563
|
-
async def get(self, full):
|
|
564
|
-
s_common.deprecated('HiveApi.get', curv='2.167.0')
|
|
565
|
-
return await self.hive.get(full)
|
|
566
|
-
|
|
567
|
-
async def edits(self):
|
|
568
|
-
s_common.deprecated('HiveApi.edits', curv='2.167.0')
|
|
569
|
-
|
|
570
|
-
while not self.isfini:
|
|
571
|
-
|
|
572
|
-
item = await self.msgq.get()
|
|
573
|
-
if item is None:
|
|
574
|
-
return
|
|
575
|
-
|
|
576
|
-
yield item
|
|
577
|
-
|
|
578
|
-
class TeleHive(Hive):
|
|
579
|
-
'''
|
|
580
|
-
A Hive that acts as a consistent read cache for a telepath proxy Hive
|
|
581
|
-
'''
|
|
582
|
-
|
|
583
|
-
async def __anit__(self, proxy):
|
|
584
|
-
|
|
585
|
-
self.proxy = proxy
|
|
586
|
-
|
|
587
|
-
await Hive.__anit__(self)
|
|
588
|
-
|
|
589
|
-
self.lock = asyncio.Lock()
|
|
590
|
-
|
|
591
|
-
self.syncevents = {} # iden: asyncio.Event()
|
|
592
|
-
|
|
593
|
-
# fire a task to sync the sections of the tree we open
|
|
594
|
-
self.schedCoro(self._runHiveLoop())
|
|
595
|
-
|
|
596
|
-
self.mesgbus = await s_base.Base.anit()
|
|
597
|
-
self.mesgbus.on('hive:set', self._onHiveSet)
|
|
598
|
-
self.mesgbus.on('hive:pop', self._onHivePop)
|
|
599
|
-
self.mesgbus.on('hive:tree', self._onHiveTree)
|
|
600
|
-
self.mesgbus.on('hive:sync', self._onHiveSync)
|
|
601
|
-
|
|
602
|
-
self.onfini(self.mesgbus.fini)
|
|
603
|
-
|
|
604
|
-
self.onfini(proxy.fini)
|
|
605
|
-
|
|
606
|
-
async def _onHiveSync(self, mesg):
|
|
607
|
-
|
|
608
|
-
iden = mesg[1].get('iden')
|
|
609
|
-
evnt = self.syncevents.pop(iden, None)
|
|
610
|
-
if evnt is None:
|
|
611
|
-
return
|
|
612
|
-
|
|
613
|
-
evnt.set()
|
|
614
|
-
|
|
615
|
-
def _getSyncIden(self):
|
|
616
|
-
iden = s_common.guid()
|
|
617
|
-
evnt = asyncio.Event()
|
|
618
|
-
self.syncevents[iden] = evnt
|
|
619
|
-
return iden, evnt
|
|
620
|
-
|
|
621
|
-
async def _runHiveLoop(self):
|
|
622
|
-
while not self.isfini:
|
|
623
|
-
async for mesg in self.proxy.edits():
|
|
624
|
-
await self.mesgbus.dist(mesg)
|
|
625
|
-
|
|
626
|
-
async def _onHiveSet(self, mesg):
|
|
627
|
-
path = mesg[1].get('path')
|
|
628
|
-
valu = mesg[1].get('valu')
|
|
629
|
-
await Hive.set(self, path, valu)
|
|
630
|
-
|
|
631
|
-
async def _onHivePop(self, mesg):
|
|
632
|
-
path = mesg[1].get('path')
|
|
633
|
-
await Hive.pop(self, path)
|
|
634
|
-
|
|
635
|
-
async def _onHiveTree(self, mesg):
|
|
636
|
-
|
|
637
|
-
# get an entire tree update at once
|
|
638
|
-
path = mesg[1].get('path')
|
|
639
|
-
tree = mesg[1].get('tree')
|
|
640
|
-
|
|
641
|
-
node = await Hive.open(self, path)
|
|
642
|
-
|
|
643
|
-
todo = collections.deque([(node, path, tree)])
|
|
644
|
-
|
|
645
|
-
while todo:
|
|
646
|
-
|
|
647
|
-
node, path, (valu, kids) = todo.popleft()
|
|
648
|
-
|
|
649
|
-
# do *not* go through the set() API
|
|
650
|
-
node.valu = valu
|
|
651
|
-
for name, kidt in kids.items():
|
|
652
|
-
|
|
653
|
-
kidp = path + (name,)
|
|
654
|
-
kidn = await Hive.open(self, kidp)
|
|
655
|
-
|
|
656
|
-
todo.append((kidn, kidp, kidt))
|
|
657
|
-
|
|
658
|
-
async def set(self, path, valu, nexs=False):
|
|
659
|
-
iden, evnt = self._getSyncIden()
|
|
660
|
-
valu = await self.proxy.setAndSync(path, valu, iden, nexs=nexs)
|
|
661
|
-
await evnt.wait()
|
|
662
|
-
return valu
|
|
663
|
-
|
|
664
|
-
async def add(self, path, valu):
|
|
665
|
-
iden, evnt = self._getSyncIden()
|
|
666
|
-
valu = await self.proxy.addAndSync(path, valu, iden)
|
|
667
|
-
await evnt.wait()
|
|
668
|
-
return valu
|
|
669
|
-
|
|
670
|
-
async def pop(self, path, nexs=False):
|
|
671
|
-
iden, evnt = self._getSyncIden()
|
|
672
|
-
valu = await self.proxy.popAndSync(path, iden, nexs=nexs)
|
|
673
|
-
await evnt.wait()
|
|
674
|
-
return valu
|
|
675
|
-
|
|
676
|
-
async def get(self, path):
|
|
677
|
-
return await self.proxy.get(path)
|
|
678
|
-
|
|
679
|
-
async def open(self, path):
|
|
680
|
-
|
|
681
|
-
# try once pre-lock for speed
|
|
682
|
-
node = self.nodes.get(path)
|
|
683
|
-
if node is not None:
|
|
684
|
-
return node
|
|
685
|
-
|
|
686
|
-
async with self.lock:
|
|
687
|
-
|
|
688
|
-
# try again with lock to avoid race
|
|
689
|
-
node = self.nodes.get(path)
|
|
690
|
-
if node is not None:
|
|
691
|
-
return node
|
|
692
|
-
|
|
693
|
-
iden, evnt = self._getSyncIden()
|
|
694
|
-
|
|
695
|
-
await self.proxy.treeAndSync(path, iden)
|
|
696
|
-
|
|
697
|
-
await evnt.wait()
|
|
698
|
-
|
|
699
|
-
return self.nodes.get(path)
|
|
700
|
-
|
|
701
442
|
class HiveDict(s_base.Base):
|
|
702
443
|
'''
|
|
703
444
|
'''
|
|
@@ -758,11 +499,6 @@ def iterpath(path):
|
|
|
758
499
|
for i in range(len(path)):
|
|
759
500
|
yield path[:i + 1]
|
|
760
501
|
|
|
761
|
-
async def openurl(url, **opts):
|
|
762
|
-
s_common.deprecated('synapse.lib.hive.openurl()', curv='2.198.0', eolv='2.199.0')
|
|
763
|
-
prox = await s_telepath.openurl(url, **opts)
|
|
764
|
-
return await TeleHive.anit(prox)
|
|
765
|
-
|
|
766
502
|
async def opendir(dirn, conf=None):
|
|
767
503
|
slab = await s_slab.Slab.anit(dirn, map_size=s_const.gibibyte)
|
|
768
504
|
db = slab.initdb('hive')
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import sys
|
|
4
3
|
import types
|
|
5
4
|
import asyncio
|
|
6
5
|
import logging
|
|
@@ -12,14 +11,12 @@ import synapse.exc as s_exc
|
|
|
12
11
|
import synapse.common as s_common
|
|
13
12
|
|
|
14
13
|
import synapse.lib.base as s_base
|
|
15
|
-
import synapse.lib.coro as s_coro
|
|
16
14
|
import synapse.lib.node as s_node
|
|
17
15
|
import synapse.lib.time as s_time
|
|
18
16
|
import synapse.lib.cache as s_cache
|
|
19
17
|
import synapse.lib.layer as s_layer
|
|
20
18
|
import synapse.lib.storm as s_storm
|
|
21
19
|
import synapse.lib.types as s_types
|
|
22
|
-
import synapse.lib.spooled as s_spooled
|
|
23
20
|
|
|
24
21
|
logger = logging.getLogger(__name__)
|
|
25
22
|
|
|
@@ -1606,7 +1603,8 @@ class Snap(s_base.Base):
|
|
|
1606
1603
|
proptype = prop.type
|
|
1607
1604
|
for prop in prop.getAlts():
|
|
1608
1605
|
if prop.type.isarray and prop.type.arraytype == proptype:
|
|
1609
|
-
|
|
1606
|
+
arryvalu = node.get(prop.name)
|
|
1607
|
+
if arryvalu is not None and valu in arryvalu:
|
|
1610
1608
|
return True
|
|
1611
1609
|
else:
|
|
1612
1610
|
if node.get(prop.name) == valu:
|
|
@@ -1694,10 +1692,6 @@ class Snap(s_base.Base):
|
|
|
1694
1692
|
return tagnode
|
|
1695
1693
|
|
|
1696
1694
|
async def _raiseOnStrict(self, ctor, mesg, **info):
|
|
1697
|
-
if __debug__:
|
|
1698
|
-
if issubclass(ctor, s_exc.IsDeprLocked):
|
|
1699
|
-
sys.audit('synapse.exc.IsDeprLocked', (mesg, info))
|
|
1700
|
-
|
|
1701
1695
|
if self.strict:
|
|
1702
1696
|
raise ctor(mesg=mesg, **info)
|
|
1703
1697
|
await self.warn(mesg)
|