synapse 3.4.0__tar.gz → 3.6.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-3.4.0/synapse.egg-info → synapse-3.6.0}/PKG-INFO +2 -1
- {synapse-3.4.0 → synapse-3.6.0}/pyproject.toml +2 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/axon.py +290 -142
- {synapse-3.4.0 → synapse-3.6.0}/synapse/cortex.py +55 -49
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/lark/storm.lark +11 -4
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/skills/storm/SKILL.md +67 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/datamodel.py +25 -13
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/aha.py +149 -21
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/ast.py +414 -19
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/autodoc.py +166 -46
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/cell.py +132 -38
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/const.py +19 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/lmdbslab.py +5 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/mcp.py +6 -5
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/mddocs.py +54 -5
- synapse-3.6.0/synapse/lib/mdparse.py +1091 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/mdstorm.py +44 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/nexus.py +4 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/node.py +134 -12
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/parser.py +244 -23
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/provision.py +60 -7
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/schemas.py +77 -25
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/storm.py +130 -13
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/storm_format.py +1 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormhttp.py +2 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/auth.py +5 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/cortex.py +6 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/cryptoutils.py +6 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/imap.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/infosec.py +60 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/jwt.py +5 -0
- synapse-3.6.0/synapse/lib/stormlib/markdown.py +3070 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/model.py +3 -6
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/modelext.py +4 -2
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/oauth.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/pkg.py +1 -4
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/smtp.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/spooled.py +19 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/tabular.py +4 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/vertex.py +19 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/xml.py +3 -0
- synapse-3.6.0/synapse/lib/stormlint.py +914 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormtypes.py +568 -80
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/trigger.py +1 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/types.py +2 -8
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/version.py +2 -2
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/view.py +115 -12
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/base.py +14 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/biz.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/doc.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/economic.py +19 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/entity.py +11 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/inet.py +1 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/infotech.py +1 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/transport.py +3 -0
- synapse-3.6.0/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/code/codesign.crt.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/code/codesign.key.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/code/untrusted.crt.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/code/untrusted.key.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
- synapse-3.6.0/synapse/tests/files/markdown/column-names.json +80 -0
- synapse-3.6.0/synapse/tests/files/stormcov/embed/embed.json +14 -0
- synapse-3.6.0/synapse/tests/files/stormcov/embed/embed.py +34 -0
- synapse-3.6.0/synapse/tests/files/stormcov/embed/embed.ts +13 -0
- synapse-3.6.0/synapse/tests/files/stormcov/embed/embed.yaml +47 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/runtsafety.storm +1 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/spin.storm +1 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_axon.py +222 -25
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_cortex.py +78 -5
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_datamodel.py +73 -33
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_docs_stormref.py +25 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_agenda.py +6 -3
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_aha.py +330 -21
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_ast.py +1782 -36
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_autodoc.py +282 -9
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_cell.py +259 -5
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_grammar.py +204 -3
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_httpapi.py +47 -4
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_layer.py +4 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_lmdbslab.py +22 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_mcp.py +7 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_mddocs.py +98 -0
- synapse-3.6.0/synapse/tests/test_lib_mdparse.py +679 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_mdstorm.py +148 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_nexus.py +24 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_node.py +90 -5
- synapse-3.6.0/synapse/tests/test_lib_provision.py +188 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_storm.py +101 -14
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormhttp.py +12 -2
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_auth.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_cortex.py +18 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_ecc.py +7 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_imap.py +8 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_infosec.py +59 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_jwt.py +14 -0
- synapse-3.6.0/synapse/tests/test_lib_stormlib_markdown.py +3365 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_model.py +4 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_oauth.py +7 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_pkg.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_rsa.py +7 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_smtp.py +11 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_spooled.py +26 -2
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_tabular.py +7 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_vertex.py +122 -4
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_xml.py +7 -0
- synapse-3.6.0/synapse/tests/test_lib_stormlint.py +549 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormtypes.py +90 -8
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_trigger.py +15 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_types.py +70 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_view.py +285 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_base.py +5 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_biz.py +2 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_doc.py +4 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_economic.py +30 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_entity.py +36 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_inet.py +6 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_infotech.py +11 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_person.py +2 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_transport.py +3 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_cortex_docmodel.py +43 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_demote.py +57 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_shutdown.py +19 -4
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_cli.py +25 -1
- synapse-3.6.0/synapse/tests/test_tools_storm_lint.py +300 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_printer.py +136 -9
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_utils.py +6 -0
- synapse-3.6.0/synapse/tests/test_utils_stormcov.py +1075 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/utils.py +59 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/docmodel.py +27 -11
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/_cli.py +8 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/_printer.py +109 -11
- synapse-3.6.0/synapse/tools/storm/lint.py +238 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/tester.py +3 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse/utils/stormcov.py +644 -85
- {synapse-3.4.0 → synapse-3.6.0/synapse.egg-info}/PKG-INFO +2 -1
- {synapse-3.4.0 → synapse-3.6.0}/synapse.egg-info/SOURCES.txt +17 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse.egg-info/requires.txt +1 -0
- synapse-3.4.0/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
- synapse-3.4.0/synapse/tests/test_lib_provision.py +0 -89
- synapse-3.4.0/synapse/tests/test_utils_stormcov.py +0 -376
- {synapse-3.4.0 → synapse-3.6.0}/LICENSE +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/README.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/setup.cfg +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/assets/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/cells.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/common.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/daemon.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/attack-flow/README.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA (2026).crt +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/certs/cas/The Vertex Project ROOT CA (2026).crt +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA (2026).crl +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/certs/crls/The Vertex Project ROOT CA (2026).crl +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/iana.tlds.mpk +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/iana.uris.mpk +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/README.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/lark/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/lark/imap.lark +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/data/v2modelmap.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/exc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/glob.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/_http.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/agenda.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/auth.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/base.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/boss.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/cache.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/certdir.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/chop.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/cli.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/cluster.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/cmd.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/config.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/coro.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/coin.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/ecc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/jwk.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/passwd.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/rsa.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/tinfoil.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/crypto/utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/datfile.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/drive.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/dyndeps.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/editor.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/gis.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/grammar.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/hashitem.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/hashset.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/health.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/httpapi.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/httpclient.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/json.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/jsonstor.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/jsrpc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/layer.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/link.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/logging.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/modelrev.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/msgpack.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/multislabseqn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/nodefuse.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/oauth.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/output.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/platforms/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/platforms/common.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/platforms/darwin.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/platforms/freebsd.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/platforms/linux.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/platforms/windows.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/process.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/processpool.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/queue.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/reflect.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/scope.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/scrape.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/share.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/slabseqn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/spawner.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/spooled.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormctrl.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/aha.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/basex.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/bytes.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/cache.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/cell.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/compression.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/easyperm.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/ecc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/ethereum.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/file.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/gen.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/gis.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/graph.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/hashes.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/hex.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/index.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/ipv6.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/iters.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/json.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/log.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/macro.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/math.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/mime.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/pack.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/quorum.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/random.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/rsa.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/scrape.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/stats.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/stix.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/storm.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/task.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/vault.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/version.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormlib/yaml.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/stormsvc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/task.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/thishost.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/thisplat.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/threads.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/time.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lib/urlhelp.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/cvss.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/iana.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/macho.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/pe.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/phonenum.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/lookup/timezones.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/auth.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/belief.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/crypto.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/dns.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/files.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/geopol.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/geospace.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/gov.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/ind.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/language.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/material.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/orgs.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/person.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/planning.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/proj.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/risk.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/science.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/syn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/models/telco.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/servers/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/servers/aha.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/servers/axon.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/servers/cell.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/servers/cortex.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/servers/jsonstor.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/telepath.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/aha/certs/cas/synapse.crt.tinfoil +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/aha/certs/cas/synapse.key.tinfoil +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt.tinfoil +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key.tinfoil +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/aha/certs/users/root@synapse.crt.tinfoil +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/aha/certs/users/root@synapse.key.tinfoil +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/cpedata.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/mdstorm/httprespmulti.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/mdstorm/testsvc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stix_export/basic.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stix_export/custom0.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stix_export/risk0.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stix_import/apt1.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stix_import/scos.json +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/argvquery2.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/argvquery3.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/argvquery4.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/argvquery5.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/badstorm.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/continueloop.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/dupewarn.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/dupfunc.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/embedquery.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/embedquery2.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/embedquery3.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/embedquery4.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/embedquery5.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/emptybody.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/exprdict.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/forloop.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/ifelif.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/ifelse.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/stopreturn.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/switch.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/switchnodefault.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/trycatch.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/whilebackedge.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/whilecontinue.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/whileloop.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormcov/whilewithnode.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormmod/common +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/declaredfiles.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/docs/index.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/files/data.dat +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/files/sub/nested.dat +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/storm/modules/apimod.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/storm/modules/testmod.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/test.dat +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/docs/index.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/docs/mocks/cassette.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/docs/stormpackage.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/docs/sub/image.svg +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/docs/sub/nested.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/docs/userguide.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/index.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/noh1.md +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/files/testpkg_build_docs_no_h1/testpkg.yaml +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/nopmod.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_assets.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_common.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_daemon.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_data.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_exc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_glob.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_auth.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_base.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_boss.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_cache.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_certdir.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_chop.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_cli.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_cluster.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_cmd.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_config.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_const.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_coro.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_crypto_jwk.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_crypto_rsa.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_datfile.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_drive.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_dyndeps.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_gis.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_hashitem.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_hashset.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_health.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_http.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_httpclient.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_json.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_jsonstor.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_jsrpc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_link.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_logging.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_modelrev.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_msgpack.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_output.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_process.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_processpool.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_queue.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_reflect.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_scope.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_scrape.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_slabseqn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_spawner.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_spooled.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_storm_format.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormctrl.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_file.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_stormsvc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_task.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_thishost.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_time.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_urlhelp.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lib_version.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_lookup_phonenum.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_auth.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_belief.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_crypto.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_dns.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_files.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_geopol.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_geospace.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_gov.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_gov_cn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_gov_intl.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_gov_us.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_language.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_material.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_orgs.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_planning.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_proj.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_risk.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_science.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_syn.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_model_telco.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_servers_axon.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_servers_cortex.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_servers_univ.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_telepath.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_aha.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_axon_copy.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_axon_get.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_axon_put.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_docker_validate.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_apikey.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_backup.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_modrole.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_moduser.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_promote.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_reload.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_pkg_gen.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_pkg_publish.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_tester.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_storm_validate.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_doc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_docmanifest.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_guid.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_mdstorm.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_tools_utils_optimize.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tests/test_utils_getrefs.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/clone.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/del.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/easycert.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/enroll.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/list.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/mirror.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/provision/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/provision/service.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/aha/provision/user.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/axon/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/axon/copy.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/axon/dump.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/axon/get.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/axon/load.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/axon/put.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/csv.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/feed.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/layer/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/layer/dump.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/cortex/layer/load.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/docker/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/docker/validate.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/apikey.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/backup.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/demote.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/healthcheck.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/modrole.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/moduser.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/promote.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/reload.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/shutdown.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/service/snapshot.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/__main__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/pkg/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/pkg/doc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/pkg/gen.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/pkg/publish.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/storm/validate.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/doc.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/docmanifest.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/easycert.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/guid.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/json2mpk.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/mdstorm.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/tools/utils/optimize.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/utils/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/utils/getrefs.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/LICENSE +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/base58.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/convert.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/crypto.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/LICENSE +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/json.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/test_email/test_parseaddr.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/LICENSE +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/constants.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse.egg-info/dependency_links.txt +0 -0
- {synapse-3.4.0 → synapse-3.6.0}/synapse.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: synapse
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.6.0
|
|
4
4
|
Summary: Synapse Intelligence Analysis Framework
|
|
5
5
|
Author-email: The Vertex Project LLC <root@vertex.link>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -30,6 +30,7 @@ Requires-Dist: aiohttp-socks<0.12.0,>=0.11.0
|
|
|
30
30
|
Requires-Dist: aiosmtplib<6.0.0,>=5.1.2
|
|
31
31
|
Requires-Dist: prompt_toolkit<3.1.0,>=3.0.29
|
|
32
32
|
Requires-Dist: lark==1.3.1
|
|
33
|
+
Requires-Dist: mistletoe<2.0.0,>=1.6.0
|
|
33
34
|
Requires-Dist: Pygments<2.21.0,>=2.7.4
|
|
34
35
|
Requires-Dist: packaging<27.0,>=20.0
|
|
35
36
|
Requires-Dist: fastjsonschema<2.22.0,>=2.20.0
|
|
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = 'synapse'
|
|
7
|
-
version = '3.
|
|
7
|
+
version = '3.6.0'
|
|
8
8
|
authors = [
|
|
9
9
|
{ name = 'The Vertex Project LLC', email = 'root@vertex.link'},
|
|
10
10
|
]
|
|
@@ -34,6 +34,7 @@ dependencies = [
|
|
|
34
34
|
'aiosmtplib>=5.1.2,<6.0.0',
|
|
35
35
|
'prompt_toolkit>=3.0.29,<3.1.0',
|
|
36
36
|
'lark==1.3.1',
|
|
37
|
+
'mistletoe>=1.6.0,<2.0.0',
|
|
37
38
|
'Pygments>=2.7.4,<2.21.0',
|
|
38
39
|
'packaging>=20.0,<27.0',
|
|
39
40
|
'fastjsonschema>=2.20.0,<2.22.0',
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
+
import io
|
|
1
2
|
import os
|
|
2
3
|
import csv
|
|
4
|
+
import codecs
|
|
3
5
|
import struct
|
|
4
6
|
import asyncio
|
|
5
7
|
import hashlib
|
|
6
8
|
import logging
|
|
7
9
|
import tempfile
|
|
8
10
|
import contextlib
|
|
11
|
+
import collections
|
|
9
12
|
|
|
10
13
|
import aiohttp
|
|
11
14
|
import aiohttp_socks
|
|
15
|
+
import tornado.web as t_web
|
|
12
16
|
|
|
13
17
|
import synapse.exc as s_exc
|
|
14
18
|
import synapse.common as s_common
|
|
@@ -17,7 +21,6 @@ import synapse.telepath as s_telepath
|
|
|
17
21
|
import synapse.lib.cell as s_cell
|
|
18
22
|
import synapse.lib.base as s_base
|
|
19
23
|
import synapse.lib.json as s_json
|
|
20
|
-
import synapse.lib.link as s_link
|
|
21
24
|
import synapse.lib.const as s_const
|
|
22
25
|
import synapse.lib.nexus as s_nexus
|
|
23
26
|
import synapse.lib.share as s_share
|
|
@@ -26,7 +29,6 @@ import synapse.lib.hashset as s_hashset
|
|
|
26
29
|
import synapse.lib.httpapi as s_httpapi
|
|
27
30
|
import synapse.lib.urlhelp as s_urlhelp
|
|
28
31
|
import synapse.lib.msgpack as s_msgpack
|
|
29
|
-
import synapse.lib.process as s_process
|
|
30
32
|
import synapse.lib.lmdbslab as s_lmdbslab
|
|
31
33
|
import synapse.lib.slabseqn as s_slabseqn
|
|
32
34
|
|
|
@@ -36,6 +38,145 @@ CHUNK_SIZE = 16 * s_const.mebibyte
|
|
|
36
38
|
MAX_SPOOL_SIZE = CHUNK_SIZE * 32 # 512 mebibytes
|
|
37
39
|
MAX_HTTP_UPLOAD_SIZE = 4 * s_const.tebibyte
|
|
38
40
|
|
|
41
|
+
# readlines() / csvrows() decode a blob in slices of this size, yielding the
|
|
42
|
+
# ioloop between them, and yield it again after this many lines or rows.
|
|
43
|
+
READ_SLICE_SIZE = s_const.mebibyte
|
|
44
|
+
READ_YIELD_COUNT = 1000
|
|
45
|
+
|
|
46
|
+
# the longest line ( in characters ) readlines() / csvrows() will buffer
|
|
47
|
+
READ_MAX_LINE = 128 * s_const.mebibyte
|
|
48
|
+
|
|
49
|
+
class _CsvNeedMore(Exception):
|
|
50
|
+
pass
|
|
51
|
+
|
|
52
|
+
class _BlobLines:
|
|
53
|
+
'''
|
|
54
|
+
Split decoded blob text into newline terminated lines.
|
|
55
|
+
|
|
56
|
+
This is also the line iterator given to csv.reader(). When the buffered lines
|
|
57
|
+
run out before the blob does, it raises _CsvNeedMore so the record csv.reader()
|
|
58
|
+
was parsing can be rewound and parsed again once more text arrives.
|
|
59
|
+
'''
|
|
60
|
+
def __init__(self):
|
|
61
|
+
self.done = False
|
|
62
|
+
self.need = 0
|
|
63
|
+
self.size = 0
|
|
64
|
+
self.tail = []
|
|
65
|
+
self.pend = []
|
|
66
|
+
self.lines = collections.deque()
|
|
67
|
+
self.tailsize = 0
|
|
68
|
+
|
|
69
|
+
def __iter__(self):
|
|
70
|
+
return self
|
|
71
|
+
|
|
72
|
+
def __next__(self):
|
|
73
|
+
if self.lines:
|
|
74
|
+
line = self.lines.popleft()
|
|
75
|
+
self.size -= len(line)
|
|
76
|
+
self.pend.append(line)
|
|
77
|
+
return line
|
|
78
|
+
|
|
79
|
+
if self.done:
|
|
80
|
+
raise StopIteration
|
|
81
|
+
|
|
82
|
+
raise _CsvNeedMore()
|
|
83
|
+
|
|
84
|
+
def feed(self, text):
|
|
85
|
+
# split on newline only, since str.splitlines() also splits on
|
|
86
|
+
# characters such as \x0b and \u2028 which a text file does not.
|
|
87
|
+
parts = text.split('\n')
|
|
88
|
+
|
|
89
|
+
self._addTail(parts[0])
|
|
90
|
+
if len(parts) == 1:
|
|
91
|
+
return
|
|
92
|
+
|
|
93
|
+
self._addLine(''.join(self.tail) + '\n')
|
|
94
|
+
for part in parts[1:-1]:
|
|
95
|
+
self._addLine(part + '\n')
|
|
96
|
+
|
|
97
|
+
self.tail = []
|
|
98
|
+
self.tailsize = 0
|
|
99
|
+
self._addTail(parts[-1])
|
|
100
|
+
|
|
101
|
+
def _addTail(self, text):
|
|
102
|
+
# a line is buffered until its newline arrives, so bound it rather than
|
|
103
|
+
# buffer an entire blob which has no newlines.
|
|
104
|
+
self.tailsize += len(text)
|
|
105
|
+
if self.tailsize > READ_MAX_LINE:
|
|
106
|
+
mesg = f'Line exceeds the maximum length of {READ_MAX_LINE} characters.'
|
|
107
|
+
raise s_exc.BadDataValu(mesg=mesg)
|
|
108
|
+
|
|
109
|
+
self.tail.append(text)
|
|
110
|
+
|
|
111
|
+
def fini(self):
|
|
112
|
+
last = ''.join(self.tail)
|
|
113
|
+
if last:
|
|
114
|
+
self._addLine(last)
|
|
115
|
+
|
|
116
|
+
self.tail = []
|
|
117
|
+
self.done = True
|
|
118
|
+
|
|
119
|
+
def _addLine(self, line):
|
|
120
|
+
self.size += len(line)
|
|
121
|
+
self.lines.append(line)
|
|
122
|
+
|
|
123
|
+
def pop(self):
|
|
124
|
+
while self.lines:
|
|
125
|
+
line = self.lines.popleft()
|
|
126
|
+
self.size -= len(line)
|
|
127
|
+
yield line
|
|
128
|
+
|
|
129
|
+
def ready(self):
|
|
130
|
+
return self.done or self.size >= self.need
|
|
131
|
+
|
|
132
|
+
def commit(self):
|
|
133
|
+
self.pend.clear()
|
|
134
|
+
self.need = 0
|
|
135
|
+
|
|
136
|
+
def rewind(self):
|
|
137
|
+
# put back the lines of a record which ran past the buffered text, and
|
|
138
|
+
# wait for the buffer to double before parsing it again so a record which
|
|
139
|
+
# spans many slices is not re-parsed once per slice.
|
|
140
|
+
size = sum(len(line) for line in self.pend)
|
|
141
|
+
|
|
142
|
+
self.lines.extendleft(reversed(self.pend))
|
|
143
|
+
self.size += size
|
|
144
|
+
self.pend.clear()
|
|
145
|
+
|
|
146
|
+
self.need = size * 2
|
|
147
|
+
|
|
148
|
+
def _decodeText(decoder, byts, errors, final=False):
|
|
149
|
+
# the errors handler is only looked up once a bad byte is decoded, so a bad
|
|
150
|
+
# errors value surfaces here as a LookupError.
|
|
151
|
+
try:
|
|
152
|
+
return decoder.decode(byts, final=final)
|
|
153
|
+
|
|
154
|
+
except UnicodeDecodeError as e:
|
|
155
|
+
raise s_exc.BadDataValu(mesg=str(e)) from None
|
|
156
|
+
|
|
157
|
+
except LookupError as e:
|
|
158
|
+
raise s_exc.BadArg(mesg=f'Invalid errors value: {errors} ({e})') from None
|
|
159
|
+
|
|
160
|
+
def _iterCsvRows(reader, lines):
|
|
161
|
+
|
|
162
|
+
while True:
|
|
163
|
+
|
|
164
|
+
try:
|
|
165
|
+
row = next(reader)
|
|
166
|
+
|
|
167
|
+
except _CsvNeedMore:
|
|
168
|
+
lines.rewind()
|
|
169
|
+
return
|
|
170
|
+
|
|
171
|
+
except StopIteration:
|
|
172
|
+
return
|
|
173
|
+
|
|
174
|
+
except csv.Error as e:
|
|
175
|
+
raise s_exc.BadDataValu(mesg=f'CSV error: {e}') from None
|
|
176
|
+
|
|
177
|
+
lines.commit()
|
|
178
|
+
yield row
|
|
179
|
+
|
|
39
180
|
class AxonHandlerMixin:
|
|
40
181
|
async def getAxon(self):
|
|
41
182
|
'''
|
|
@@ -50,6 +191,7 @@ class AxonHttpUploadV3(AxonHandlerMixin, s_httpapi.StreamHandler):
|
|
|
50
191
|
|
|
51
192
|
if not await self.allowed(('axon', 'upload')):
|
|
52
193
|
await self.finish()
|
|
194
|
+
return
|
|
53
195
|
|
|
54
196
|
# max_body_size defaults to 100MB and requires a value
|
|
55
197
|
self.request.connection.set_max_body_size(MAX_HTTP_UPLOAD_SIZE)
|
|
@@ -146,7 +288,7 @@ class AxonFileHandler(AxonHandlerMixin, s_httpapi.Handler):
|
|
|
146
288
|
|
|
147
289
|
status = 200
|
|
148
290
|
info = await self.getAxonInfo()
|
|
149
|
-
if info.get('features'
|
|
291
|
+
if (features := info.get('features')) is not None and features.get('byterange'):
|
|
150
292
|
self.set_header('Accept-Ranges', 'bytes')
|
|
151
293
|
self._chopRangeHeader()
|
|
152
294
|
|
|
@@ -510,6 +652,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
510
652
|
await self._reqUserAllowed(('axon', 'has'))
|
|
511
653
|
return await self.cell.wants(sha256s)
|
|
512
654
|
|
|
655
|
+
@s_cell.nopoolapi
|
|
513
656
|
async def put(self, byts):
|
|
514
657
|
'''
|
|
515
658
|
Store bytes in the Axon.
|
|
@@ -526,6 +669,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
526
669
|
await self._reqUserAllowed(('axon', 'upload'))
|
|
527
670
|
return await self.cell.put(byts)
|
|
528
671
|
|
|
672
|
+
@s_cell.nopoolapi
|
|
529
673
|
async def puts(self, files):
|
|
530
674
|
'''
|
|
531
675
|
Store a set of bytes in the Axon.
|
|
@@ -542,6 +686,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
542
686
|
await self._reqUserAllowed(('axon', 'upload'))
|
|
543
687
|
return await self.cell.puts(files)
|
|
544
688
|
|
|
689
|
+
@s_cell.nopoolapi
|
|
545
690
|
async def upload(self):
|
|
546
691
|
'''
|
|
547
692
|
Get an Upload object.
|
|
@@ -573,6 +718,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
573
718
|
await self._reqUserAllowed(('axon', 'upload'))
|
|
574
719
|
return await UpLoadShare.anit(self.cell, self.link)
|
|
575
720
|
|
|
721
|
+
@s_cell.nopoolapi
|
|
576
722
|
async def del_(self, sha256):
|
|
577
723
|
'''
|
|
578
724
|
Remove the given bytes from the Axon by sha256.
|
|
@@ -586,6 +732,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
586
732
|
await self._reqUserAllowed(('axon', 'del'))
|
|
587
733
|
return await self.cell.del_(sha256)
|
|
588
734
|
|
|
735
|
+
@s_cell.nopoolapi
|
|
589
736
|
async def dels(self, sha256s):
|
|
590
737
|
'''
|
|
591
738
|
Given a list of sha256 hashes, delete the files from the Axon.
|
|
@@ -599,6 +746,7 @@ class AxonApi(s_cell.CellApi, s_share.Share): # type: ignore
|
|
|
599
746
|
await self._reqUserAllowed(('axon', 'del'))
|
|
600
747
|
return await self.cell.dels(sha256s)
|
|
601
748
|
|
|
749
|
+
@s_cell.nopoolapi
|
|
602
750
|
async def wget(self, url, *, params=None, headers=None, json=None, body=None, method='GET',
|
|
603
751
|
ssl=None, timeout=None, proxy=True):
|
|
604
752
|
'''
|
|
@@ -823,7 +971,7 @@ class Axon(s_cell.Cell):
|
|
|
823
971
|
path = s_common.gendir(self.dirn, 'axon_v2.lmdb')
|
|
824
972
|
|
|
825
973
|
# holds what the axon:file:add / axon:file:del handlers write
|
|
826
|
-
self.axonslab = await self._initSlabFile(path)
|
|
974
|
+
self.axonslab = await self._initSlabFile(path, readonly=self.readonly)
|
|
827
975
|
await self._migrateAxonHistory()
|
|
828
976
|
self.sizes = self.axonslab.initdb('sizes')
|
|
829
977
|
|
|
@@ -832,11 +980,7 @@ class Axon(s_cell.Cell):
|
|
|
832
980
|
self.axonhist = s_lmdbslab.Hist(self.axonslab, 'history')
|
|
833
981
|
self.axonseqn = s_slabseqn.SlabSeqn(self.axonslab, 'axonseqn')
|
|
834
982
|
|
|
835
|
-
self.
|
|
836
|
-
|
|
837
|
-
if self.inaugural:
|
|
838
|
-
self.axonmetrics.set('size:bytes', 0)
|
|
839
|
-
self.axonmetrics.set('file:count', 0)
|
|
983
|
+
self.metricsdb = self.axonslab.initdb('metrics')
|
|
840
984
|
|
|
841
985
|
await self.initCellVers('axon:metrics')
|
|
842
986
|
|
|
@@ -892,15 +1036,28 @@ class Axon(s_cell.Cell):
|
|
|
892
1036
|
def _reqBelowLimit(self):
|
|
893
1037
|
|
|
894
1038
|
if (self.maxbytes is not None and
|
|
895
|
-
self.maxbytes <= self.
|
|
1039
|
+
self.maxbytes <= self._getAxonMetric('size:bytes')):
|
|
896
1040
|
mesg = f'Axon is at size:bytes limit: {self.maxbytes}'
|
|
897
1041
|
raise s_exc.HitLimit(mesg=mesg)
|
|
898
1042
|
|
|
899
1043
|
if (self.maxcount is not None and
|
|
900
|
-
self.maxcount <= self.
|
|
1044
|
+
self.maxcount <= self._getAxonMetric('file:count')):
|
|
901
1045
|
mesg = f'Axon is at file:count limit: {self.maxcount}'
|
|
902
1046
|
raise s_exc.HitLimit(mesg=mesg)
|
|
903
1047
|
|
|
1048
|
+
def _getAxonMetric(self, name):
|
|
1049
|
+
byts = self.axonslab.get(name.encode(), db=self.metricsdb)
|
|
1050
|
+
if byts is None:
|
|
1051
|
+
return 0
|
|
1052
|
+
|
|
1053
|
+
return s_common.signedint64un(byts)
|
|
1054
|
+
|
|
1055
|
+
def _incAxonMetric(self, name, valu):
|
|
1056
|
+
# synchronous so the handlers do not yield to a hashes() waiter before the
|
|
1057
|
+
# file size it checks for is written.
|
|
1058
|
+
byts = s_common.signedint64en(self._getAxonMetric(name) + valu)
|
|
1059
|
+
self.axonslab._put(name.encode(), byts, db=self.metricsdb)
|
|
1060
|
+
|
|
904
1061
|
async def _axonHealth(self, health):
|
|
905
1062
|
health.update('axon', 'nominal', '', data=await self.metrics())
|
|
906
1063
|
|
|
@@ -942,7 +1099,7 @@ class Axon(s_cell.Cell):
|
|
|
942
1099
|
|
|
943
1100
|
path = s_common.gendir(self.dirn, 'blob.lmdb')
|
|
944
1101
|
|
|
945
|
-
self.blobslab = await self._initSlabFile(path)
|
|
1102
|
+
self.blobslab = await self._initSlabFile(path, readonly=self.readonly)
|
|
946
1103
|
self.blobs = self.blobslab.initdb('blobs')
|
|
947
1104
|
self.offsets = self.blobslab.initdb('offsets')
|
|
948
1105
|
self.metadata = self.blobslab.initdb('metadata')
|
|
@@ -1245,7 +1402,10 @@ class Axon(s_cell.Cell):
|
|
|
1245
1402
|
Returns:
|
|
1246
1403
|
dict: A dictionary of runtime data about the Axon.
|
|
1247
1404
|
'''
|
|
1248
|
-
return
|
|
1405
|
+
return {
|
|
1406
|
+
'file:count': self._getAxonMetric('file:count'),
|
|
1407
|
+
'size:bytes': self._getAxonMetric('size:bytes'),
|
|
1408
|
+
}
|
|
1249
1409
|
|
|
1250
1410
|
async def save(self, sha256, genr, size):
|
|
1251
1411
|
'''
|
|
@@ -1294,8 +1454,8 @@ class Axon(s_cell.Cell):
|
|
|
1294
1454
|
tick = info.get('tick')
|
|
1295
1455
|
self._addSyncItem((sha256, size), tick=tick)
|
|
1296
1456
|
|
|
1297
|
-
self.
|
|
1298
|
-
self.
|
|
1457
|
+
self._incAxonMetric('file:count', 1)
|
|
1458
|
+
self._incAxonMetric('size:bytes', size)
|
|
1299
1459
|
|
|
1300
1460
|
await self.axonslab.put(sha256, size.to_bytes(8, 'big'), db=self.sizes)
|
|
1301
1461
|
|
|
@@ -1344,6 +1504,9 @@ class Axon(s_cell.Cell):
|
|
|
1344
1504
|
if first:
|
|
1345
1505
|
first = False
|
|
1346
1506
|
delt = boff - offs
|
|
1507
|
+
if delt == 0:
|
|
1508
|
+
continue
|
|
1509
|
+
|
|
1347
1510
|
yield byts[-delt:]
|
|
1348
1511
|
continue
|
|
1349
1512
|
|
|
@@ -1407,8 +1570,8 @@ class Axon(s_cell.Cell):
|
|
|
1407
1570
|
logger.debug(f'Deleting blob [{fhash}].', extra=self.getLogExtra(sha256=fhash))
|
|
1408
1571
|
|
|
1409
1572
|
size = int.from_bytes(byts, 'big')
|
|
1410
|
-
self.
|
|
1411
|
-
self.
|
|
1573
|
+
self._incAxonMetric('file:count', -1)
|
|
1574
|
+
self._incAxonMetric('size:bytes', -size)
|
|
1412
1575
|
|
|
1413
1576
|
await self._delBlobByts(sha256)
|
|
1414
1577
|
|
|
@@ -1455,108 +1618,110 @@ class Axon(s_cell.Cell):
|
|
|
1455
1618
|
for _, item in unpk.feed(byts):
|
|
1456
1619
|
yield item
|
|
1457
1620
|
|
|
1458
|
-
async def
|
|
1621
|
+
async def _readBlobText(self, sha256, errors):
|
|
1622
|
+
|
|
1623
|
+
fhash = s_common.ehex(sha256)
|
|
1624
|
+
|
|
1625
|
+
textdec = codecs.getincrementaldecoder('utf8')(errors=errors)
|
|
1626
|
+
decoder = io.IncrementalNewlineDecoder(textdec, translate=True)
|
|
1627
|
+
|
|
1459
1628
|
try:
|
|
1460
|
-
async for byts in self.get(sha256):
|
|
1461
|
-
await link.send(byts)
|
|
1462
|
-
await asyncio.sleep(0)
|
|
1463
1629
|
|
|
1464
|
-
|
|
1630
|
+
async with contextlib.aclosing(self.get(sha256)) as genr:
|
|
1631
|
+
|
|
1632
|
+
async for byts in genr:
|
|
1633
|
+
|
|
1634
|
+
for offs in range(0, len(byts), READ_SLICE_SIZE):
|
|
1635
|
+
|
|
1636
|
+
text = _decodeText(decoder, byts[offs:offs + READ_SLICE_SIZE], errors)
|
|
1637
|
+
if text:
|
|
1638
|
+
yield text
|
|
1639
|
+
|
|
1640
|
+
await asyncio.sleep(0)
|
|
1641
|
+
|
|
1642
|
+
text = _decodeText(decoder, b'', errors, final=True)
|
|
1643
|
+
if text:
|
|
1644
|
+
yield text
|
|
1645
|
+
|
|
1646
|
+
except (asyncio.CancelledError, GeneratorExit):
|
|
1465
1647
|
# the reader bailed out early ( or we are shutting down ) so leave a
|
|
1466
1648
|
# trace of the partial read without logging it as an error.
|
|
1467
|
-
fhash =
|
|
1468
|
-
logger.debug(f'Stopped feeding blob [{fhash}].', extra=self.getLogExtra(sha256=fhash))
|
|
1649
|
+
logger.debug(f'Stopped reading blob [{fhash}].', extra=self.getLogExtra(sha256=fhash))
|
|
1469
1650
|
raise
|
|
1470
1651
|
|
|
1471
|
-
finally:
|
|
1472
|
-
link.txfini()
|
|
1473
|
-
|
|
1474
1652
|
async def readlines(self, sha256, errors='ignore'):
|
|
1475
1653
|
|
|
1476
1654
|
sha256 = s_common.uhex(sha256)
|
|
1477
1655
|
await self._reqHas(sha256)
|
|
1478
1656
|
|
|
1479
|
-
|
|
1657
|
+
count = 0
|
|
1658
|
+
lines = _BlobLines()
|
|
1480
1659
|
|
|
1481
|
-
|
|
1660
|
+
async with contextlib.aclosing(self._readBlobText(sha256, errors)) as genr:
|
|
1482
1661
|
|
|
1483
|
-
|
|
1484
|
-
todo = s_common.todo(_spawn_readlines, sock00, errors=errors)
|
|
1485
|
-
async with await s_base.Base.anit() as scope:
|
|
1662
|
+
async for text in genr:
|
|
1486
1663
|
|
|
1487
|
-
|
|
1488
|
-
feedtask = scope.schedCoro(self._sha256ToLink(sha256, link00))
|
|
1664
|
+
lines.feed(text)
|
|
1489
1665
|
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
mesg = await link00.rx()
|
|
1493
|
-
if mesg is None:
|
|
1494
|
-
return
|
|
1495
|
-
|
|
1496
|
-
line = s_common.result(mesg)
|
|
1497
|
-
if line is None:
|
|
1498
|
-
return
|
|
1666
|
+
for line in lines.pop():
|
|
1499
1667
|
|
|
1500
1668
|
yield line.rstrip('\n')
|
|
1501
1669
|
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1670
|
+
count += 1
|
|
1671
|
+
if count % READ_YIELD_COUNT == 0:
|
|
1672
|
+
await asyncio.sleep(0)
|
|
1505
1673
|
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
await feedtask
|
|
1674
|
+
lines.fini()
|
|
1675
|
+
for line in lines.pop():
|
|
1676
|
+
yield line.rstrip('\n')
|
|
1510
1677
|
|
|
1511
1678
|
async def csvrows(self, sha256, dialect='excel', errors='ignore', **fmtparams):
|
|
1512
1679
|
await self._reqHas(sha256)
|
|
1513
1680
|
if dialect not in csv.list_dialects():
|
|
1514
1681
|
raise s_exc.BadArg(mesg=f'Invalid CSV dialect, use one of {csv.list_dialects()}')
|
|
1515
1682
|
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
feedtask = None
|
|
1683
|
+
lines = _BlobLines()
|
|
1519
1684
|
|
|
1520
1685
|
try:
|
|
1521
|
-
|
|
1522
|
-
|
|
1686
|
+
reader = csv.reader(lines, dialect, **fmtparams)
|
|
1687
|
+
except TypeError as e:
|
|
1688
|
+
raise s_exc.BadArg(mesg=f'Invalid csv format parameter: {str(e)}') from None
|
|
1523
1689
|
|
|
1524
|
-
|
|
1525
|
-
feedtask = scope.schedCoro(self._sha256ToLink(sha256, link00))
|
|
1690
|
+
count = 0
|
|
1526
1691
|
|
|
1527
|
-
|
|
1692
|
+
async with contextlib.aclosing(self._readBlobText(sha256, errors)) as genr:
|
|
1528
1693
|
|
|
1529
|
-
|
|
1530
|
-
if mesg is None:
|
|
1531
|
-
return
|
|
1694
|
+
async for text in genr:
|
|
1532
1695
|
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1696
|
+
lines.feed(text)
|
|
1697
|
+
if not lines.ready():
|
|
1698
|
+
continue
|
|
1699
|
+
|
|
1700
|
+
for row in _iterCsvRows(reader, lines):
|
|
1536
1701
|
|
|
1537
1702
|
yield row
|
|
1538
1703
|
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1704
|
+
count += 1
|
|
1705
|
+
if count % READ_YIELD_COUNT == 0:
|
|
1706
|
+
await asyncio.sleep(0)
|
|
1542
1707
|
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
await feedtask
|
|
1708
|
+
lines.fini()
|
|
1709
|
+
for row in _iterCsvRows(reader, lines):
|
|
1710
|
+
yield row
|
|
1547
1711
|
|
|
1548
1712
|
async def jsonlines(self, sha256, errors='ignore'):
|
|
1549
|
-
async
|
|
1550
|
-
line
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1713
|
+
async with contextlib.aclosing(self.readlines(sha256, errors=errors)) as genr:
|
|
1714
|
+
async for line in genr:
|
|
1715
|
+
line = line.strip()
|
|
1716
|
+
if not line:
|
|
1717
|
+
continue
|
|
1718
|
+
|
|
1719
|
+
try:
|
|
1720
|
+
yield s_json.loads(line)
|
|
1721
|
+
except s_exc.BadJsonText as e:
|
|
1722
|
+
logger.exception(f'Bad json line encountered for {sha256}')
|
|
1723
|
+
raise s_exc.BadJsonText(mesg=f'Bad json line encountered while processing {sha256}, ({e})',
|
|
1724
|
+
sha256=sha256) from None
|
|
1560
1725
|
|
|
1561
1726
|
async def unpack(self, sha256, fmt, offs=0):
|
|
1562
1727
|
'''
|
|
@@ -1942,10 +2107,25 @@ class HasAxon:
|
|
|
1942
2107
|
logger.debug('Connected to axon')
|
|
1943
2108
|
self._has_axoninfo = await proxy.getCellInfo()
|
|
1944
2109
|
|
|
1945
|
-
async def getAxon(self, timeout=
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
2110
|
+
async def getAxon(self, timeout=s_const.AXON_READY_TIMEOUT):
|
|
2111
|
+
'''
|
|
2112
|
+
Get a live proxy to the Axon ( embedded or remote ), so callers get a
|
|
2113
|
+
uniform, prod-equivalent method-call interface.
|
|
2114
|
+
|
|
2115
|
+
Args:
|
|
2116
|
+
timeout (int): The maximum number of seconds to wait for the Axon, or None to wait indefinitely.
|
|
2117
|
+
|
|
2118
|
+
Returns:
|
|
2119
|
+
telepath.Proxy: A proxy to the Axon.
|
|
2120
|
+
|
|
2121
|
+
Raises:
|
|
2122
|
+
s_exc.TimeOut: If the Axon is not available within the timeout.
|
|
2123
|
+
'''
|
|
2124
|
+
try:
|
|
2125
|
+
return await self._has_axon_client.proxy(timeout=timeout)
|
|
2126
|
+
except asyncio.TimeoutError:
|
|
2127
|
+
mesg = f'Timed out waiting {timeout} seconds for the Axon to be ready.'
|
|
2128
|
+
raise s_exc.TimeOut(mesg=mesg, timeout=timeout) from None
|
|
1949
2129
|
|
|
1950
2130
|
async def getAxonInfo(self):
|
|
1951
2131
|
# lazily resolve and cache the axon cell info. the onlink handler
|
|
@@ -1957,61 +2137,29 @@ class HasAxon:
|
|
|
1957
2137
|
|
|
1958
2138
|
return self._has_axoninfo
|
|
1959
2139
|
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
try:
|
|
1964
|
-
sock.sendall(s_msgpack.en(s_common.retnexc(exc)))
|
|
1965
|
-
except (BrokenPipeError, ConnectionResetError):
|
|
1966
|
-
pass
|
|
1967
|
-
|
|
1968
|
-
def _spawn_readlines(sock, errors='ignore'): # pragma: no cover
|
|
1969
|
-
try:
|
|
1970
|
-
with sock.makefile('r', errors=errors) as fd:
|
|
1971
|
-
|
|
1972
|
-
try:
|
|
1973
|
-
|
|
1974
|
-
for line in fd:
|
|
1975
|
-
sock.sendall(s_msgpack.en((True, line)))
|
|
1976
|
-
|
|
1977
|
-
sock.sendall(s_msgpack.en((True, None)))
|
|
1978
|
-
|
|
1979
|
-
except UnicodeDecodeError as e:
|
|
1980
|
-
raise s_exc.BadDataValu(mesg=str(e))
|
|
1981
|
-
|
|
1982
|
-
except (BrokenPipeError, ConnectionResetError):
|
|
1983
|
-
# the reader bailed out early, so there is nobody left to tell.
|
|
1984
|
-
return
|
|
1985
|
-
|
|
1986
|
-
except Exception as e:
|
|
1987
|
-
_spawn_senderr(sock, e)
|
|
1988
|
-
|
|
1989
|
-
def _spawn_readrows(sock, dialect, fmtparams, errors='ignore'): # pragma: no cover
|
|
1990
|
-
try:
|
|
1991
|
-
|
|
1992
|
-
# Assume utf8 encoding and ignore errors.
|
|
1993
|
-
with sock.makefile('r', errors=errors) as fd:
|
|
1994
|
-
|
|
1995
|
-
try:
|
|
1996
|
-
|
|
1997
|
-
for row in csv.reader(fd, dialect, **fmtparams):
|
|
1998
|
-
sock.sendall(s_msgpack.en((True, row)))
|
|
1999
|
-
|
|
2000
|
-
sock.sendall(s_msgpack.en((True, None)))
|
|
2001
|
-
|
|
2002
|
-
except TypeError as e:
|
|
2003
|
-
raise s_exc.BadArg(mesg=f'Invalid csv format parameter: {str(e)}')
|
|
2004
|
-
|
|
2005
|
-
except UnicodeDecodeError as e:
|
|
2006
|
-
raise s_exc.BadDataValu(mesg=str(e))
|
|
2007
|
-
|
|
2008
|
-
except csv.Error as e:
|
|
2009
|
-
mesg = f'CSV error: {str(e)}'
|
|
2010
|
-
raise s_exc.BadDataValu(mesg=mesg)
|
|
2140
|
+
class HasAxonHandlerMixin:
|
|
2141
|
+
'''
|
|
2142
|
+
Mixin for an Axon HTTP handler served by a Cell which uses an Axon ( see HasAxon ).
|
|
2011
2143
|
|
|
2012
|
-
|
|
2013
|
-
|
|
2014
|
-
|
|
2144
|
+
The Axon is resolved through the Cell, and a request which times out waiting for
|
|
2145
|
+
it is answered with an HTTP 503 `TimeOut` error.
|
|
2146
|
+
'''
|
|
2147
|
+
async def getAxon(self):
|
|
2148
|
+
'''
|
|
2149
|
+
Get a proxy to the Cell's Axon, answering a timed out wait with an HTTP 503.
|
|
2150
|
+
'''
|
|
2151
|
+
try:
|
|
2152
|
+
return await self.cell.getAxon()
|
|
2153
|
+
except s_exc.TimeOut as e:
|
|
2154
|
+
self.sendRestExc(e, status_code=s_httpapi.HTTPStatus.SERVICE_UNAVAILABLE)
|
|
2155
|
+
raise t_web.Finish() from None
|
|
2015
2156
|
|
|
2016
|
-
|
|
2017
|
-
|
|
2157
|
+
async def getAxonInfo(self):
|
|
2158
|
+
'''
|
|
2159
|
+
Get the Cell's Axon info, answering a timed out wait with an HTTP 503.
|
|
2160
|
+
'''
|
|
2161
|
+
try:
|
|
2162
|
+
return await self.cell.getAxonInfo()
|
|
2163
|
+
except s_exc.TimeOut as e:
|
|
2164
|
+
self.sendRestExc(e, status_code=s_httpapi.HTTPStatus.SERVICE_UNAVAILABLE)
|
|
2165
|
+
raise t_web.Finish() from None
|