synapse 2.232.0__tar.gz → 2.233.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.
- {synapse-2.232.0/synapse.egg-info → synapse-2.233.0}/PKG-INFO +1 -1
- {synapse-2.232.0 → synapse-2.233.0}/pyproject.toml +1 -1
- {synapse-2.232.0 → synapse-2.233.0}/synapse/axon.py +3 -3
- {synapse-2.232.0 → synapse-2.233.0}/synapse/common.py +0 -1
- {synapse-2.232.0 → synapse-2.233.0}/synapse/datamodel.py +10 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/cell.py +2 -1
- synapse-2.233.0/synapse/lib/coro.py +219 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/parser.py +3 -4
- synapse-2.233.0/synapse/lib/process.py +90 -0
- synapse-2.233.0/synapse/lib/processpool.py +122 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/scrape.py +4 -7
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/storm.py +2 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/json.py +3 -3
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/mime.py +2 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/scrape.py +2 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/stix.py +3 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/xml.py +2 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/version.py +2 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/inet.py +20 -22
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/infotech.py +22 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/proj.py +3 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_exc.py +2 -2
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_ast.py +2 -1
- synapse-2.233.0/synapse/tests/test_lib_coro.py +113 -0
- synapse-2.233.0/synapse/tests/test_lib_process.py +67 -0
- synapse-2.233.0/synapse/tests/test_lib_processpool.py +90 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_infotech.py +12 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_proj.py +2 -1
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cortex/csv.py +1 -1
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/autodoc.py +1 -0
- {synapse-2.232.0 → synapse-2.233.0/synapse.egg-info}/PKG-INFO +1 -1
- {synapse-2.232.0 → synapse-2.233.0}/synapse.egg-info/SOURCES.txt +4 -0
- synapse-2.232.0/synapse/lib/coro.py +0 -406
- synapse-2.232.0/synapse/tests/test_lib_coro.py +0 -242
- {synapse-2.232.0 → synapse-2.233.0}/LICENSE +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/README.rst +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/setup.cfg +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cells.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cmds/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cmds/boss.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cmds/cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cmds/hive.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/cryotank.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/daemon.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/iana.uris.mpk +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-2.232.0 → synapse-2.233.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.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-2.232.0 → synapse-2.233.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.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-2.232.0 → synapse-2.233.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.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-2.232.0 → synapse-2.233.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.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/lark/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/lark/imap.lark +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/data/lark/storm.lark +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/exc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/glob.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/agenda.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/aha.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/ast.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/auth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/autodoc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/base.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/boss.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/cache.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/certdir.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/chop.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/cli.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/cmd.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/cmdr.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/config.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/const.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/datfile.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/drive.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/encoding.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/gis.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/grammar.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/hashitem.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/hashset.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/health.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/hive.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/httpapi.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/ingest.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/interval.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/json.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/layer.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/link.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/lmdbslab.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/modelrev.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/module.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/modules.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/msgpack.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/nexus.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/node.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/oauth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/output.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/queue.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/ratelimit.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/reflect.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/rstorm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/schemas.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/scope.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/share.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/slaboffs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/snap.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/spooled.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/storm_format.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormhttp.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/auth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/backup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/env.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/imap.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/infosec.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/model.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/modelext.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/notifications.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/oauth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/pkg.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/project.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/quorum.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/smtp.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/spooled.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/tabular.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/task.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormtypes.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/stormwhois.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/structlog.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/task.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/thishost.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/thisplat.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/threads.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/time.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/trigger.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/types.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lib/view.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/cvss.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/iana.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/iso3166.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/macho.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/pe.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/lookup/timezones.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/mindmeld.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/auth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/base.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/belief.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/biz.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/crypto.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/dns.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/doc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/economic.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/entity.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/files.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/geopol.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/geospace.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/gov/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/gov/cn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/gov/intl.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/gov/us.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/language.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/material.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/math.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/media.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/orgs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/person.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/planning.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/risk.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/science.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/syn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/telco.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/models/transport.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/aha.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/axon.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/cell.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/cryotank.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/servers/stemcell.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/telepath.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/users/root.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/users/root.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/users/user.crt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/certdir/users/user.key +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stix_import/scos.json +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/spin.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/test.dat +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testcore/cell.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/docs/bar.rst +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/docs/foo.rst +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/nopmod.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_axon.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_cmds_boss.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_cmds_cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_cmds_hive.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_common.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_cryotank.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_data.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_datamodel.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_glob.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_init.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_agenda.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_aha.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_autodoc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_cell.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_encoding.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_grammar.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_hive.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_httpapi.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_interval.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_json.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_layer.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_module.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_nexus.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_node.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_ratelimit.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_rstorm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_slaboffs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_snap.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_storm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormhttp.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_pkg.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormtypes.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_stormwhois.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_structlog.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_trigger.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_types.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lib_view.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lookup_iso3166.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_mindmeld.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_base.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_biz.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_doc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_economic.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_entity.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_inet.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_math.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_media.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_person.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_model_transport.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_servers_cryotank.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_servers_stemcell.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_axon_copy.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_axon_get.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_axon_put.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_cellauth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_cryo_list.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_hiveload.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_hivesave.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_apikey.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_backup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_demote.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_livebackup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_modrole.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_moduser.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_promote.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_reload.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_shutdown.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_storm_cli.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_storm_pkg_gen.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_utils_autodoc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_utils_changelog.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_utils_guid.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_tools_utils_rstorm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/test_utils_stormcov.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tests/utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/list.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/apikey.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/autodoc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon/copy.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon/dump.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon/get.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon/load.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon/put.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/axon2axon.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/backup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cellauth.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/changelog.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cmdr.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cortex/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cortex/feed.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cortex/layer/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cortex/layer/dump.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cortex/layer/load.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cryo/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cryo/cat.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/cryo/list.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/csvtool.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/demote.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/easycert.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/feed.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/genpkg.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/guid.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/healthcheck.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/hive/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/hive/load.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/hive/save.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/json2mpk.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/livebackup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/modrole.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/moduser.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/pkgs/gendocs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/promote.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/pullfile.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/pushfile.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/reload.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/rstorm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/apikey.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/backup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/demote.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/healthcheck.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/livebackup.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/modrole.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/moduser.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/promote.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/reload.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/shutdown.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/service/snapshot.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/shutdown.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/snapshot.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/__main__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/_cli.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/pkg/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/pkg/_pandoc_filter.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/pkg/doc.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/storm/pkg/gen.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/changelog.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/easycert.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/guid.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/json2mpk.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/tools/utils/rstorm.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/utils/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/utils/getrefs.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/utils/stormcov/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/utils/stormcov/plugin.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/http/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/http/cookies.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/json.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/test_http_cookies.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse.egg-info/requires.txt +0 -0
- {synapse-2.232.0 → synapse-2.233.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -13,7 +13,6 @@ import synapse.exc as s_exc
|
|
|
13
13
|
import synapse.common as s_common
|
|
14
14
|
|
|
15
15
|
import synapse.lib.cell as s_cell
|
|
16
|
-
import synapse.lib.coro as s_coro
|
|
17
16
|
import synapse.lib.base as s_base
|
|
18
17
|
import synapse.lib.json as s_json
|
|
19
18
|
import synapse.lib.link as s_link
|
|
@@ -25,6 +24,7 @@ import synapse.lib.hashset as s_hashset
|
|
|
25
24
|
import synapse.lib.httpapi as s_httpapi
|
|
26
25
|
import synapse.lib.urlhelp as s_urlhelp
|
|
27
26
|
import synapse.lib.msgpack as s_msgpack
|
|
27
|
+
import synapse.lib.process as s_process
|
|
28
28
|
import synapse.lib.lmdbslab as s_lmdbslab
|
|
29
29
|
import synapse.lib.slabseqn as s_slabseqn
|
|
30
30
|
|
|
@@ -1447,7 +1447,7 @@ class Axon(s_cell.Cell):
|
|
|
1447
1447
|
todo = s_common.todo(_spawn_readlines, sock00, errors=errors)
|
|
1448
1448
|
async with await s_base.Base.anit() as scope:
|
|
1449
1449
|
|
|
1450
|
-
scope.schedCoro(
|
|
1450
|
+
scope.schedCoro(s_process.spawn(todo, log_conf=await self._getSpawnLogConf()))
|
|
1451
1451
|
feedtask = scope.schedCoro(self._sha256ToLink(sha256, link00))
|
|
1452
1452
|
|
|
1453
1453
|
while not self.isfini:
|
|
@@ -1481,7 +1481,7 @@ class Axon(s_cell.Cell):
|
|
|
1481
1481
|
todo = s_common.todo(_spawn_readrows, sock00, dialect, fmtparams, errors=errors)
|
|
1482
1482
|
async with await s_base.Base.anit() as scope:
|
|
1483
1483
|
|
|
1484
|
-
scope.schedCoro(
|
|
1484
|
+
scope.schedCoro(s_process.spawn(todo, log_conf=await self._getSpawnLogConf()))
|
|
1485
1485
|
feedtask = scope.schedCoro(self._sha256ToLink(sha256, link00))
|
|
1486
1486
|
|
|
1487
1487
|
while not self.isfini:
|
|
@@ -862,6 +862,16 @@ class Model:
|
|
|
862
862
|
# now we can load all the forms...
|
|
863
863
|
for _, mdef in mods:
|
|
864
864
|
|
|
865
|
+
# Allow props declared directly on ctors to become forms...
|
|
866
|
+
for name, ctor, opts, info in mdef.get('ctors', ()):
|
|
867
|
+
if (props := info.get('props')) is not None:
|
|
868
|
+
self.addForm(name, {}, props, checks=False)
|
|
869
|
+
|
|
870
|
+
# Allow props declared directly on types to become forms...
|
|
871
|
+
for typename, (basename, typeopts), typeinfo in mdef.get('types', ()):
|
|
872
|
+
if (props := typeinfo.get('props')) is not None:
|
|
873
|
+
self.addForm(typename, {}, props, checks=False)
|
|
874
|
+
|
|
865
875
|
for formname, forminfo, propdefs in mdef.get('forms', ()):
|
|
866
876
|
self.addForm(formname, forminfo, propdefs, checks=False)
|
|
867
877
|
|
|
@@ -55,6 +55,7 @@ import synapse.lib.urlhelp as s_urlhelp
|
|
|
55
55
|
import synapse.lib.version as s_version
|
|
56
56
|
import synapse.lib.lmdbslab as s_lmdbslab
|
|
57
57
|
import synapse.lib.thisplat as s_thisplat
|
|
58
|
+
import synapse.lib.processpool as s_processpool
|
|
58
59
|
|
|
59
60
|
import synapse.lib.crypto.passwd as s_passwd
|
|
60
61
|
|
|
@@ -4465,7 +4466,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
|
|
|
4465
4466
|
logger.exception(f'Error while bootstrapping cell config.')
|
|
4466
4467
|
raise
|
|
4467
4468
|
|
|
4468
|
-
|
|
4469
|
+
s_processpool.set_pool_logging(logger, logconf=conf['_log_conf'])
|
|
4469
4470
|
|
|
4470
4471
|
try:
|
|
4471
4472
|
cell = await cls.anit(opts.dirn, conf=conf)
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Async/Coroutine related utilities.
|
|
3
|
+
'''
|
|
4
|
+
import asyncio
|
|
5
|
+
import inspect
|
|
6
|
+
import logging
|
|
7
|
+
import functools
|
|
8
|
+
import contextlib
|
|
9
|
+
|
|
10
|
+
logger = logging.getLogger(__name__)
|
|
11
|
+
|
|
12
|
+
import synapse.glob as s_glob
|
|
13
|
+
import synapse.common as s_common
|
|
14
|
+
|
|
15
|
+
def iscoro(item):
|
|
16
|
+
return inspect.iscoroutine(item)
|
|
17
|
+
|
|
18
|
+
async def agen(item):
|
|
19
|
+
'''
|
|
20
|
+
Wrap an async_generator *or* generator in an async_generator.
|
|
21
|
+
|
|
22
|
+
Notes:
|
|
23
|
+
Do not use this for a synchronous generator which would cause
|
|
24
|
+
non-blocking IO; otherwise that IO will block the ioloop.
|
|
25
|
+
'''
|
|
26
|
+
if getattr(item, '__aiter__', None) is not None:
|
|
27
|
+
async with contextlib.aclosing(item) as agen:
|
|
28
|
+
async for x in agen:
|
|
29
|
+
yield x
|
|
30
|
+
return
|
|
31
|
+
|
|
32
|
+
for x in item:
|
|
33
|
+
yield x
|
|
34
|
+
|
|
35
|
+
async def chunks(genr, size=100):
|
|
36
|
+
|
|
37
|
+
retn = []
|
|
38
|
+
async for item in genr:
|
|
39
|
+
|
|
40
|
+
retn.append(item)
|
|
41
|
+
|
|
42
|
+
if len(retn) == size:
|
|
43
|
+
yield retn
|
|
44
|
+
retn = []
|
|
45
|
+
|
|
46
|
+
if retn:
|
|
47
|
+
yield retn
|
|
48
|
+
|
|
49
|
+
async def pause(genr, iterations=10):
|
|
50
|
+
idx = 0
|
|
51
|
+
|
|
52
|
+
async for out in agen(genr):
|
|
53
|
+
yield out
|
|
54
|
+
idx += 1
|
|
55
|
+
|
|
56
|
+
if idx % iterations == 0:
|
|
57
|
+
await asyncio.sleep(0)
|
|
58
|
+
|
|
59
|
+
return
|
|
60
|
+
|
|
61
|
+
def executor(func, *args, **kwargs):
|
|
62
|
+
'''
|
|
63
|
+
Execute a non-coroutine function in the ioloop executor pool.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
func: Function to execute.
|
|
67
|
+
*args: Args for the function.
|
|
68
|
+
**kwargs: Kwargs for the function.
|
|
69
|
+
|
|
70
|
+
Examples:
|
|
71
|
+
|
|
72
|
+
Execute a blocking API call in the executor pool::
|
|
73
|
+
|
|
74
|
+
import requests
|
|
75
|
+
|
|
76
|
+
def block(url, params=None):
|
|
77
|
+
return requests.get(url, params=params).json()
|
|
78
|
+
|
|
79
|
+
fut = s_coro.executor(block, 'http://some.tld/thign')
|
|
80
|
+
resp = await fut
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
asyncio.Future: An asyncio future.
|
|
84
|
+
'''
|
|
85
|
+
|
|
86
|
+
def real():
|
|
87
|
+
return func(*args, **kwargs)
|
|
88
|
+
|
|
89
|
+
return asyncio.get_running_loop().run_in_executor(None, real)
|
|
90
|
+
|
|
91
|
+
class Event(asyncio.Event):
|
|
92
|
+
|
|
93
|
+
async def timewait(self, timeout=None):
|
|
94
|
+
|
|
95
|
+
if timeout is None:
|
|
96
|
+
await self.wait()
|
|
97
|
+
return True
|
|
98
|
+
|
|
99
|
+
try:
|
|
100
|
+
await s_common.wait_for(self.wait(), timeout)
|
|
101
|
+
except asyncio.TimeoutError:
|
|
102
|
+
return False
|
|
103
|
+
|
|
104
|
+
return True
|
|
105
|
+
|
|
106
|
+
async def event_wait(event: asyncio.Event, timeout=None):
|
|
107
|
+
'''
|
|
108
|
+
Wait on an an asyncio event with an optional timeout
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
true if the event got set, False if timed out
|
|
112
|
+
'''
|
|
113
|
+
if timeout is None:
|
|
114
|
+
await event.wait()
|
|
115
|
+
return True
|
|
116
|
+
|
|
117
|
+
try:
|
|
118
|
+
await s_common.wait_for(event.wait(), timeout)
|
|
119
|
+
except asyncio.TimeoutError:
|
|
120
|
+
return False
|
|
121
|
+
return True
|
|
122
|
+
|
|
123
|
+
async def waittask(task, timeout=None):
|
|
124
|
+
'''
|
|
125
|
+
Await a task without cancelling it when you time out.
|
|
126
|
+
|
|
127
|
+
Returns:
|
|
128
|
+
boolean: True if the task completed before the timeout.
|
|
129
|
+
'''
|
|
130
|
+
futu = asyncio.get_running_loop().create_future()
|
|
131
|
+
task.add_done_callback(futu.set_result)
|
|
132
|
+
try:
|
|
133
|
+
await s_common.wait_for(futu, timeout=timeout)
|
|
134
|
+
return True
|
|
135
|
+
except asyncio.TimeoutError:
|
|
136
|
+
return False
|
|
137
|
+
finally:
|
|
138
|
+
task.remove_done_callback(futu.set_result)
|
|
139
|
+
|
|
140
|
+
async def ornot(func, *args, **kwargs):
|
|
141
|
+
'''
|
|
142
|
+
Calls func and awaits it if a returns a coroutine.
|
|
143
|
+
|
|
144
|
+
Note:
|
|
145
|
+
This is useful for implementing a function that might take a telepath proxy object or a local object, and you
|
|
146
|
+
must call a non-async method on that object.
|
|
147
|
+
|
|
148
|
+
This is also useful when calling a callback that might either be a coroutine function or a regular function.
|
|
149
|
+
Usage:
|
|
150
|
+
ok = await s_coro.ornot(maybeproxy.allowed, 'path')
|
|
151
|
+
'''
|
|
152
|
+
|
|
153
|
+
retn = func(*args, **kwargs)
|
|
154
|
+
if iscoro(retn):
|
|
155
|
+
return await retn
|
|
156
|
+
return retn
|
|
157
|
+
|
|
158
|
+
bgtasks = set()
|
|
159
|
+
def create_task(coro):
|
|
160
|
+
|
|
161
|
+
task = asyncio.get_running_loop().create_task(coro)
|
|
162
|
+
bgtasks.add(task)
|
|
163
|
+
|
|
164
|
+
def done(t):
|
|
165
|
+
bgtasks.remove(t)
|
|
166
|
+
|
|
167
|
+
task.add_done_callback(done)
|
|
168
|
+
|
|
169
|
+
return task
|
|
170
|
+
|
|
171
|
+
async def await_bg_tasks(timeout=None):
|
|
172
|
+
|
|
173
|
+
if not bgtasks:
|
|
174
|
+
return []
|
|
175
|
+
|
|
176
|
+
coro = asyncio.gather(*tuple(bgtasks), return_exceptions=True)
|
|
177
|
+
try:
|
|
178
|
+
return await s_common.wait_for(coro, timeout)
|
|
179
|
+
except (asyncio.CancelledError, asyncio.TimeoutError):
|
|
180
|
+
return []
|
|
181
|
+
|
|
182
|
+
class GenrHelp:
|
|
183
|
+
|
|
184
|
+
def __init__(self, genr):
|
|
185
|
+
assert genr is not None
|
|
186
|
+
self.genr = genr
|
|
187
|
+
|
|
188
|
+
def __aiter__(self):
|
|
189
|
+
return self.genr
|
|
190
|
+
|
|
191
|
+
def __iter__(self):
|
|
192
|
+
|
|
193
|
+
try:
|
|
194
|
+
|
|
195
|
+
while True:
|
|
196
|
+
item = s_glob.sync(self.genr.__anext__())
|
|
197
|
+
yield item
|
|
198
|
+
|
|
199
|
+
except StopAsyncIteration:
|
|
200
|
+
return
|
|
201
|
+
|
|
202
|
+
except GeneratorExit:
|
|
203
|
+
# Raised if a synchronous consumer exited an iterator early.
|
|
204
|
+
# Signal the generator to close down.
|
|
205
|
+
s_glob.sync(self.genr.aclose())
|
|
206
|
+
raise
|
|
207
|
+
|
|
208
|
+
async def spin(self):
|
|
209
|
+
async for x in self.genr:
|
|
210
|
+
pass
|
|
211
|
+
|
|
212
|
+
async def list(self):
|
|
213
|
+
return [x async for x in self.genr]
|
|
214
|
+
|
|
215
|
+
def genrhelp(f):
|
|
216
|
+
@functools.wraps(f)
|
|
217
|
+
def func(*args, **kwargs):
|
|
218
|
+
return GenrHelp(f(*args, **kwargs))
|
|
219
|
+
return func
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import ast
|
|
2
|
-
import hashlib
|
|
3
2
|
import collections
|
|
4
3
|
|
|
5
4
|
import lark # type: ignore
|
|
@@ -10,8 +9,8 @@ import synapse.data as s_data
|
|
|
10
9
|
import synapse.common as s_common
|
|
11
10
|
|
|
12
11
|
import synapse.lib.ast as s_ast
|
|
13
|
-
import synapse.lib.coro as s_coro
|
|
14
12
|
import synapse.lib.cache as s_cache
|
|
13
|
+
import synapse.lib.processpool as s_processpool
|
|
15
14
|
|
|
16
15
|
# TL;DR: *rules* are the internal nodes of an abstract syntax tree (AST), *terminals* are the leaves
|
|
17
16
|
|
|
@@ -628,10 +627,10 @@ def parseEval(text):
|
|
|
628
627
|
return Parser(text).eval()
|
|
629
628
|
|
|
630
629
|
async def _forkedParseQuery(args):
|
|
631
|
-
return await
|
|
630
|
+
return await s_processpool._parserforked(parseQuery, args[0], mode=args[1])
|
|
632
631
|
|
|
633
632
|
async def _forkedParseEval(text):
|
|
634
|
-
return await
|
|
633
|
+
return await s_processpool._parserforked(parseEval, text)
|
|
635
634
|
|
|
636
635
|
evalcache = s_cache.FixedCache(_forkedParseEval, size=100)
|
|
637
636
|
querycache = s_cache.FixedCache(_forkedParseQuery, size=100)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Process spawning utilities.
|
|
3
|
+
'''
|
|
4
|
+
import queue
|
|
5
|
+
import asyncio
|
|
6
|
+
import logging
|
|
7
|
+
import multiprocessing
|
|
8
|
+
|
|
9
|
+
logger = logging.getLogger(__name__)
|
|
10
|
+
|
|
11
|
+
import synapse.exc as s_exc
|
|
12
|
+
import synapse.common as s_common
|
|
13
|
+
|
|
14
|
+
import synapse.lib.coro as s_coro
|
|
15
|
+
|
|
16
|
+
def _exectodo(que, todo, logconf):
|
|
17
|
+
# This is a new process: configure logging
|
|
18
|
+
s_common.setlogging(logger, **logconf)
|
|
19
|
+
func, args, kwargs = todo
|
|
20
|
+
try:
|
|
21
|
+
ret = func(*args, **kwargs)
|
|
22
|
+
que.put(ret)
|
|
23
|
+
except s_exc.SynErr as e:
|
|
24
|
+
logger.exception(f'Error executing spawn function {func}')
|
|
25
|
+
que.put(e)
|
|
26
|
+
except Exception as e:
|
|
27
|
+
# exceptions could be non-pickleable so wrap in SynErr
|
|
28
|
+
logger.exception(f'Error executing spawn function {func}')
|
|
29
|
+
name, info = s_common.err(e)
|
|
30
|
+
mesg = f'Error executing spawn function: {name}: {info.get("mesg")}'
|
|
31
|
+
exc = s_exc.SynErr(mesg=mesg, name=name, info=info)
|
|
32
|
+
que.put(exc)
|
|
33
|
+
|
|
34
|
+
async def spawn(todo, timeout=None, ctx=None, log_conf=None):
|
|
35
|
+
'''
|
|
36
|
+
Run a todo (func, args, kwargs) tuple in a multiprocessing subprocess.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
todo (tuple): A tuple of function, ``*args``, and ``**kwargs``.
|
|
40
|
+
timeout (int): The timeout to wait for the todo function to finish.
|
|
41
|
+
ctx (multiprocess.Context): A optional multiprocessing context object.
|
|
42
|
+
log_conf (dict): An optional logging configuration for the spawned process.
|
|
43
|
+
|
|
44
|
+
Notes:
|
|
45
|
+
The contents of the todo tuple must be able to be pickled for execution.
|
|
46
|
+
This means that locally bound functions are not eligible targets for spawn.
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
The return value of executing the todo function.
|
|
50
|
+
'''
|
|
51
|
+
if ctx is None:
|
|
52
|
+
ctx = multiprocessing.get_context('spawn')
|
|
53
|
+
if log_conf is None:
|
|
54
|
+
log_conf = {}
|
|
55
|
+
|
|
56
|
+
que = ctx.Queue()
|
|
57
|
+
proc = ctx.Process(target=_exectodo,
|
|
58
|
+
args=(que, todo, log_conf))
|
|
59
|
+
|
|
60
|
+
def execspawn():
|
|
61
|
+
|
|
62
|
+
proc.start()
|
|
63
|
+
|
|
64
|
+
while True:
|
|
65
|
+
try:
|
|
66
|
+
# we have to block/wait on the queue because the sender
|
|
67
|
+
# could need to stream the return value in multiple chunks
|
|
68
|
+
retn = que.get(timeout=1)
|
|
69
|
+
# now that we've retrieved the response, it should have exited.
|
|
70
|
+
proc.join()
|
|
71
|
+
return retn
|
|
72
|
+
except queue.Empty:
|
|
73
|
+
if not proc.is_alive():
|
|
74
|
+
proc.join()
|
|
75
|
+
mesg = f'Spawned process {proc} exited for {todo[0]} without a result.'
|
|
76
|
+
raise s_exc.SpawnExit(mesg=mesg, code=proc.exitcode)
|
|
77
|
+
|
|
78
|
+
try:
|
|
79
|
+
|
|
80
|
+
coro = s_coro.executor(execspawn)
|
|
81
|
+
|
|
82
|
+
retn = await s_common.wait_for(coro, timeout=timeout)
|
|
83
|
+
if isinstance(retn, Exception):
|
|
84
|
+
raise retn
|
|
85
|
+
|
|
86
|
+
return retn
|
|
87
|
+
|
|
88
|
+
except (asyncio.CancelledError, asyncio.TimeoutError):
|
|
89
|
+
proc.terminate()
|
|
90
|
+
raise
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
'''
|
|
2
|
+
Process pool related utilities.
|
|
3
|
+
|
|
4
|
+
Importing this module has the side effect of creating a forkserver and should be done
|
|
5
|
+
early in the creation of a process which needs it.
|
|
6
|
+
'''
|
|
7
|
+
import os
|
|
8
|
+
import atexit
|
|
9
|
+
import asyncio
|
|
10
|
+
import logging
|
|
11
|
+
import multiprocessing
|
|
12
|
+
import concurrent.futures
|
|
13
|
+
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
import synapse.exc as s_exc
|
|
17
|
+
import synapse.common as s_common
|
|
18
|
+
import synapse.lib.process as s_process
|
|
19
|
+
|
|
20
|
+
forkpool = None
|
|
21
|
+
forkpool_sema = None
|
|
22
|
+
max_workers = None
|
|
23
|
+
def_max_workers = 8
|
|
24
|
+
reserved_workers = 2
|
|
25
|
+
if multiprocessing.current_process().name == 'MainProcess':
|
|
26
|
+
# only create the forkpools in the MainProcess...
|
|
27
|
+
try:
|
|
28
|
+
mpctx = multiprocessing.get_context('forkserver')
|
|
29
|
+
max_workers = int(os.getenv('SYN_FORKED_WORKERS', 0)) or max(def_max_workers, os.cpu_count() or def_max_workers)
|
|
30
|
+
forkpool = concurrent.futures.ProcessPoolExecutor(mp_context=mpctx, max_workers=max_workers)
|
|
31
|
+
atexit.register(forkpool.shutdown)
|
|
32
|
+
forkpool_sema = asyncio.Semaphore(max(1, max_workers - reserved_workers))
|
|
33
|
+
except OSError as e: # pragma: no cover
|
|
34
|
+
max_workers = None
|
|
35
|
+
logger.warning(f'Failed to init forkserver pool, fallback enabled: {e}', exc_info=True)
|
|
36
|
+
|
|
37
|
+
def _runtodo(todo): # pragma: no cover
|
|
38
|
+
return todo[0](*todo[1], **todo[2])
|
|
39
|
+
|
|
40
|
+
def _init_pool_worker(logger_, logconf): # prama: no cover
|
|
41
|
+
s_common.setlogging(logger_, **logconf)
|
|
42
|
+
p = multiprocessing.current_process()
|
|
43
|
+
logger.debug(f'Initialized new forkserver pool worker: name={p.name} pid={p.ident}')
|
|
44
|
+
|
|
45
|
+
_pool_logconf = None
|
|
46
|
+
def set_pool_logging(logger_, logconf):
|
|
47
|
+
# This must be called before any calls to forked() and _parserforked()
|
|
48
|
+
global _pool_logconf
|
|
49
|
+
_pool_logconf = logconf
|
|
50
|
+
todo = s_common.todo(_init_pool_worker, logger_, logconf)
|
|
51
|
+
if forkpool is not None:
|
|
52
|
+
forkpool._initializer = _runtodo
|
|
53
|
+
forkpool._initargs = (todo,)
|
|
54
|
+
|
|
55
|
+
async def forked(func, *args, **kwargs):
|
|
56
|
+
'''
|
|
57
|
+
Execute a target function in the shared forked process pool
|
|
58
|
+
and fallback to running in a spawned process if the pool is unavailable.
|
|
59
|
+
|
|
60
|
+
Args:
|
|
61
|
+
func: The target function.
|
|
62
|
+
*args: Function positional arguments.
|
|
63
|
+
**kwargs: Function keyword arguments.
|
|
64
|
+
|
|
65
|
+
Returns:
|
|
66
|
+
The target function return.
|
|
67
|
+
'''
|
|
68
|
+
todo = (func, args, kwargs)
|
|
69
|
+
|
|
70
|
+
if forkpool is not None:
|
|
71
|
+
try:
|
|
72
|
+
return await asyncio.get_running_loop().run_in_executor(forkpool, _runtodo, todo)
|
|
73
|
+
except concurrent.futures.process.BrokenProcessPool as e: # pragma: no cover
|
|
74
|
+
logger.exception(f'Shared forkserver pool is broken, fallback enabled: {func}')
|
|
75
|
+
|
|
76
|
+
logger.debug(f'Forkserver pool using spawn fallback: {func}')
|
|
77
|
+
return await s_process.spawn(todo, log_conf=_pool_logconf)
|
|
78
|
+
|
|
79
|
+
async def semafork(func, *args, **kwargs):
|
|
80
|
+
'''
|
|
81
|
+
Execute a target function in the shared forked process pool
|
|
82
|
+
gated by a semaphore to ensure there are workers reserved for the Storm parser.
|
|
83
|
+
|
|
84
|
+
Args:
|
|
85
|
+
func: The target function.
|
|
86
|
+
*args: Function positional arguments.
|
|
87
|
+
**kwargs: Function keyword arguments.
|
|
88
|
+
|
|
89
|
+
Returns:
|
|
90
|
+
The target function return.
|
|
91
|
+
'''
|
|
92
|
+
if forkpool_sema is None:
|
|
93
|
+
return await forked(func, *args, **kwargs)
|
|
94
|
+
|
|
95
|
+
async with forkpool_sema:
|
|
96
|
+
return await forked(func, *args, **kwargs)
|
|
97
|
+
|
|
98
|
+
async def _parserforked(func, *args, **kwargs):
|
|
99
|
+
'''
|
|
100
|
+
Execute a target function in the shared forked process pool
|
|
101
|
+
and fallback to running in the default executor if the pool is unavailable.
|
|
102
|
+
|
|
103
|
+
NOTE: This function is intended to only be used by the Storm parser
|
|
104
|
+
|
|
105
|
+
Args:
|
|
106
|
+
func: The target function.
|
|
107
|
+
*args: Function positional arguments.
|
|
108
|
+
**kwargs: Function keyword arguments.
|
|
109
|
+
|
|
110
|
+
Returns:
|
|
111
|
+
The target function return.
|
|
112
|
+
|
|
113
|
+
Raises:
|
|
114
|
+
The function may raise from the target function, or raise an s_exc.FatalErr in the event of a broken forked
|
|
115
|
+
process pool. The fatalerr represents an unrecoverable application state.
|
|
116
|
+
'''
|
|
117
|
+
todo = (func, args, kwargs)
|
|
118
|
+
try:
|
|
119
|
+
return await asyncio.get_running_loop().run_in_executor(forkpool, _runtodo, todo)
|
|
120
|
+
except concurrent.futures.process.BrokenProcessPool as e: # pragma: no cover
|
|
121
|
+
logger.exception(f'Fatal error executing forked task: {func} {args} {kwargs}')
|
|
122
|
+
raise s_exc.FatalErr(mesg=f'Fatal error encountered: {e}') from None
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import string
|
|
2
|
-
import asyncio
|
|
3
2
|
import logging
|
|
4
3
|
import pathlib
|
|
5
4
|
import functools
|
|
@@ -14,9 +13,7 @@ import synapse.data as s_data
|
|
|
14
13
|
import synapse.common as s_common
|
|
15
14
|
|
|
16
15
|
import synapse.lib.chop as s_chop
|
|
17
|
-
import synapse.lib.
|
|
18
|
-
import synapse.lib.link as s_link
|
|
19
|
-
import synapse.lib.msgpack as s_msgpack
|
|
16
|
+
import synapse.lib.processpool as s_processpool
|
|
20
17
|
|
|
21
18
|
import synapse.lib.crypto.coin as s_coin
|
|
22
19
|
|
|
@@ -575,7 +572,7 @@ async def genMatchesAsync(text: str, regx: regex.Regex, opts: dict):
|
|
|
575
572
|
Yields:
|
|
576
573
|
dict: A dictionary of match results.
|
|
577
574
|
'''
|
|
578
|
-
matches = await
|
|
575
|
+
matches = await s_processpool.semafork(_genMatchList, text, regx, opts)
|
|
579
576
|
for info in matches:
|
|
580
577
|
yield info
|
|
581
578
|
|
|
@@ -687,7 +684,7 @@ async def contextScrapeAsync(text, form=None, refang=True, first=False):
|
|
|
687
684
|
Returns:
|
|
688
685
|
(dict): Yield info dicts of results.
|
|
689
686
|
'''
|
|
690
|
-
matches = await
|
|
687
|
+
matches = await s_processpool.semafork(_contextScrapeList, text, form=form, refang=refang, first=first)
|
|
691
688
|
for info in matches:
|
|
692
689
|
yield info
|
|
693
690
|
|
|
@@ -704,6 +701,6 @@ async def scrapeAsync(text, ptype=None, refang=True, first=False):
|
|
|
704
701
|
Returns:
|
|
705
702
|
(str, object): Yield tuples of node ndef values.
|
|
706
703
|
'''
|
|
707
|
-
matches = await
|
|
704
|
+
matches = await s_processpool.semafork(_contextScrapeList, text, form=ptype, refang=refang, first=first)
|
|
708
705
|
for info in matches:
|
|
709
706
|
yield info.get('form'), info.get('valu')
|
|
@@ -1792,9 +1792,9 @@ class Runtime(s_base.Base):
|
|
|
1792
1792
|
async for item in nodegenr:
|
|
1793
1793
|
yield item
|
|
1794
1794
|
|
|
1795
|
-
except RecursionError:
|
|
1795
|
+
except RecursionError as e:
|
|
1796
1796
|
mesg = 'Maximum Storm pipeline depth exceeded.'
|
|
1797
|
-
raise s_exc.RecursionLimitHit(mesg=mesg, query=self.query.text) from
|
|
1797
|
+
raise s_exc.RecursionLimitHit(mesg=mesg, query=self.query.text) from e
|
|
1798
1798
|
|
|
1799
1799
|
async def _snapFromOpts(self, opts):
|
|
1800
1800
|
|
|
@@ -4,10 +4,10 @@ import logging
|
|
|
4
4
|
|
|
5
5
|
import synapse.exc as s_exc
|
|
6
6
|
|
|
7
|
-
import synapse.lib.coro as s_coro
|
|
8
7
|
import synapse.lib.json as s_json
|
|
9
8
|
import synapse.lib.config as s_config
|
|
10
9
|
import synapse.lib.stormtypes as s_stormtypes
|
|
10
|
+
import synapse.lib.processpool as s_processpool
|
|
11
11
|
|
|
12
12
|
logger = logging.getLogger(__name__)
|
|
13
13
|
|
|
@@ -71,7 +71,7 @@ class JsonSchema(s_stormtypes.StormType):
|
|
|
71
71
|
item = await s_stormtypes.toprim(item)
|
|
72
72
|
|
|
73
73
|
try:
|
|
74
|
-
result = await
|
|
74
|
+
result = await s_processpool.semafork(runJsSchema, self.schema, item, use_default=self.use_default)
|
|
75
75
|
except s_exc.SchemaViolation as e:
|
|
76
76
|
return False, {'mesg': e.get('mesg')}
|
|
77
77
|
else:
|
|
@@ -138,7 +138,7 @@ class JsonLib(s_stormtypes.Lib):
|
|
|
138
138
|
use_default = await s_stormtypes.tobool(use_default)
|
|
139
139
|
# We have to ensure that we have a valid schema for making the object.
|
|
140
140
|
try:
|
|
141
|
-
await
|
|
141
|
+
await s_processpool.semafork(compileJsSchema, schema, use_default=use_default)
|
|
142
142
|
except asyncio.CancelledError: # pragma: no cover
|
|
143
143
|
raise
|
|
144
144
|
except Exception as e:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import bs4
|
|
2
2
|
|
|
3
|
-
import synapse.lib.coro as s_coro
|
|
4
3
|
import synapse.lib.stormtypes as s_stormtypes
|
|
4
|
+
import synapse.lib.processpool as s_processpool
|
|
5
5
|
|
|
6
6
|
def htmlToText(html, separator='\n', strip=True):
|
|
7
7
|
soup = bs4.BeautifulSoup(html, 'html5lib')
|
|
@@ -42,4 +42,4 @@ class LibMimeHtml(s_stormtypes.Lib):
|
|
|
42
42
|
if separator is None:
|
|
43
43
|
separator = ''
|
|
44
44
|
|
|
45
|
-
return await
|
|
45
|
+
return await s_processpool.semafork(htmlToText, html, separator, strip)
|
|
@@ -5,10 +5,10 @@ import regex
|
|
|
5
5
|
|
|
6
6
|
import synapse.common as s_common
|
|
7
7
|
|
|
8
|
-
import synapse.lib.coro as s_coro
|
|
9
8
|
import synapse.lib.scrape as s_scrape
|
|
10
9
|
import synapse.lib.spooled as s_spooled
|
|
11
10
|
import synapse.lib.stormtypes as s_stormtypes
|
|
11
|
+
import synapse.lib.processpool as s_processpool
|
|
12
12
|
|
|
13
13
|
logger = logging.getLogger(__name__)
|
|
14
14
|
|
|
@@ -156,7 +156,7 @@ class LibScrape(s_stormtypes.Lib):
|
|
|
156
156
|
if fangs:
|
|
157
157
|
_fangs = {src: dst for (src, dst) in fangs}
|
|
158
158
|
_fangre = s_scrape.genFangRegex(_fangs)
|
|
159
|
-
scrape_text, offsets = await
|
|
159
|
+
scrape_text, offsets = await s_processpool.semafork(s_scrape.refang_text2, text, re=_fangre, fangs=_fangs)
|
|
160
160
|
|
|
161
161
|
async for info in s_scrape.genMatchesAsync(scrape_text, regx, opts=opts):
|
|
162
162
|
valu = info.pop('valu')
|