synapse 3.4.0__tar.gz → 3.5.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.
Files changed (716) hide show
  1. {synapse-3.4.0/synapse.egg-info → synapse-3.5.0}/PKG-INFO +2 -1
  2. {synapse-3.4.0 → synapse-3.5.0}/pyproject.toml +2 -1
  3. {synapse-3.4.0 → synapse-3.5.0}/synapse/axon.py +287 -142
  4. {synapse-3.4.0 → synapse-3.5.0}/synapse/cortex.py +55 -49
  5. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/lark/storm.lark +11 -4
  6. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/skills/storm/SKILL.md +65 -0
  7. {synapse-3.4.0 → synapse-3.5.0}/synapse/datamodel.py +25 -13
  8. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/aha.py +149 -21
  9. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/ast.py +414 -19
  10. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/autodoc.py +141 -34
  11. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/cell.py +127 -29
  12. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/const.py +19 -0
  13. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/lmdbslab.py +5 -1
  14. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/mcp.py +6 -5
  15. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/mddocs.py +45 -2
  16. synapse-3.5.0/synapse/lib/mdparse.py +1091 -0
  17. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/mdstorm.py +44 -1
  18. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/nexus.py +4 -1
  19. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/node.py +134 -12
  20. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/parser.py +244 -23
  21. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/provision.py +60 -7
  22. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/storm.py +130 -13
  23. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/storm_format.py +1 -0
  24. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormhttp.py +2 -1
  25. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/auth.py +5 -0
  26. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/cortex.py +6 -0
  27. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/cryptoutils.py +6 -0
  28. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/imap.py +3 -0
  29. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/infosec.py +60 -0
  30. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/jwt.py +5 -0
  31. synapse-3.5.0/synapse/lib/stormlib/markdown.py +3070 -0
  32. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/model.py +3 -6
  33. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/modelext.py +4 -2
  34. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/oauth.py +3 -0
  35. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/pkg.py +1 -4
  36. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/smtp.py +3 -0
  37. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/spooled.py +19 -0
  38. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/tabular.py +4 -0
  39. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/vertex.py +19 -1
  40. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/xml.py +3 -0
  41. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormtypes.py +568 -80
  42. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/trigger.py +1 -1
  43. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/types.py +1 -7
  44. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/version.py +2 -2
  45. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/view.py +115 -12
  46. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/base.py +3 -0
  47. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/biz.py +3 -0
  48. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/doc.py +3 -0
  49. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/economic.py +4 -0
  50. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/infotech.py +1 -0
  51. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/transport.py +3 -0
  52. synapse-3.5.0/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
  53. synapse-3.5.0/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
  54. synapse-3.5.0/synapse/tests/files/certdir/code/codesign.crt.tinfoil +0 -0
  55. synapse-3.5.0/synapse/tests/files/certdir/code/codesign.key.tinfoil +0 -0
  56. synapse-3.5.0/synapse/tests/files/certdir/code/untrusted.crt.tinfoil +0 -0
  57. synapse-3.5.0/synapse/tests/files/certdir/code/untrusted.key.tinfoil +0 -0
  58. synapse-3.5.0/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
  59. synapse-3.5.0/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
  60. synapse-3.5.0/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
  61. synapse-3.5.0/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
  62. synapse-3.5.0/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
  63. synapse-3.5.0/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
  64. synapse-3.5.0/synapse/tests/files/markdown/column-names.json +80 -0
  65. synapse-3.5.0/synapse/tests/files/stormcov/embed/embed.py +34 -0
  66. synapse-3.5.0/synapse/tests/files/stormcov/embed/embed.yaml +47 -0
  67. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_axon.py +209 -25
  68. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_cortex.py +78 -5
  69. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_datamodel.py +73 -33
  70. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_docs_stormref.py +25 -0
  71. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_agenda.py +6 -3
  72. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_aha.py +330 -21
  73. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_ast.py +1782 -36
  74. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_autodoc.py +178 -9
  75. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_cell.py +247 -5
  76. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_grammar.py +204 -3
  77. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_httpapi.py +47 -4
  78. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_layer.py +4 -0
  79. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_lmdbslab.py +22 -0
  80. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_mcp.py +7 -0
  81. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_mddocs.py +93 -0
  82. synapse-3.5.0/synapse/tests/test_lib_mdparse.py +679 -0
  83. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_mdstorm.py +148 -0
  84. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_nexus.py +24 -0
  85. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_node.py +90 -5
  86. synapse-3.5.0/synapse/tests/test_lib_provision.py +188 -0
  87. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_storm.py +101 -14
  88. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormhttp.py +12 -2
  89. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_auth.py +3 -0
  90. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_cortex.py +18 -0
  91. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_ecc.py +7 -0
  92. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_imap.py +8 -0
  93. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_infosec.py +59 -0
  94. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_jwt.py +14 -0
  95. synapse-3.5.0/synapse/tests/test_lib_stormlib_markdown.py +3365 -0
  96. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_model.py +4 -0
  97. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_oauth.py +7 -0
  98. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_pkg.py +3 -0
  99. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_rsa.py +7 -0
  100. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_smtp.py +11 -0
  101. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_spooled.py +26 -2
  102. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_tabular.py +7 -0
  103. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_vertex.py +122 -4
  104. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_xml.py +7 -0
  105. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormtypes.py +90 -8
  106. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_trigger.py +15 -0
  107. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_types.py +20 -1
  108. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_view.py +285 -0
  109. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_biz.py +2 -0
  110. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_doc.py +4 -1
  111. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_economic.py +4 -0
  112. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_infotech.py +11 -0
  113. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_person.py +2 -1
  114. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_transport.py +3 -0
  115. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_cortex_docmodel.py +43 -0
  116. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_cli.py +25 -1
  117. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_printer.py +136 -9
  118. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_utils.py +6 -0
  119. synapse-3.5.0/synapse/tests/test_utils_stormcov.py +887 -0
  120. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/utils.py +59 -0
  121. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/docmodel.py +27 -11
  122. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/_cli.py +8 -1
  123. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/_printer.py +109 -11
  124. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/tester.py +3 -1
  125. {synapse-3.4.0 → synapse-3.5.0}/synapse/utils/stormcov.py +426 -82
  126. {synapse-3.4.0 → synapse-3.5.0/synapse.egg-info}/PKG-INFO +2 -1
  127. {synapse-3.4.0 → synapse-3.5.0}/synapse.egg-info/SOURCES.txt +11 -0
  128. {synapse-3.4.0 → synapse-3.5.0}/synapse.egg-info/requires.txt +1 -0
  129. synapse-3.4.0/synapse/tests/files/certdir/cas/ca.crt.tinfoil +0 -0
  130. synapse-3.4.0/synapse/tests/files/certdir/cas/ca.key.tinfoil +0 -0
  131. synapse-3.4.0/synapse/tests/files/certdir/hosts/localhost.crt.tinfoil +0 -0
  132. synapse-3.4.0/synapse/tests/files/certdir/hosts/localhost.key.tinfoil +0 -0
  133. synapse-3.4.0/synapse/tests/files/certdir/users/root.crt.tinfoil +0 -0
  134. synapse-3.4.0/synapse/tests/files/certdir/users/root.key.tinfoil +0 -0
  135. synapse-3.4.0/synapse/tests/files/certdir/users/user.crt.tinfoil +0 -0
  136. synapse-3.4.0/synapse/tests/files/certdir/users/user.key.tinfoil +0 -0
  137. synapse-3.4.0/synapse/tests/test_lib_provision.py +0 -89
  138. synapse-3.4.0/synapse/tests/test_utils_stormcov.py +0 -376
  139. {synapse-3.4.0 → synapse-3.5.0}/LICENSE +0 -0
  140. {synapse-3.4.0 → synapse-3.5.0}/README.md +0 -0
  141. {synapse-3.4.0 → synapse-3.5.0}/setup.cfg +0 -0
  142. {synapse-3.4.0 → synapse-3.5.0}/synapse/__init__.py +0 -0
  143. {synapse-3.4.0 → synapse-3.5.0}/synapse/assets/__init__.py +0 -0
  144. {synapse-3.4.0 → synapse-3.5.0}/synapse/cells.py +0 -0
  145. {synapse-3.4.0 → synapse-3.5.0}/synapse/common.py +0 -0
  146. {synapse-3.4.0 → synapse-3.5.0}/synapse/daemon.py +0 -0
  147. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/__init__.py +0 -0
  148. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  149. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/attack-flow/README.md +0 -0
  150. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  151. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA (2026).crt +0 -0
  152. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/certs/cas/The Vertex Project ROOT CA (2026).crt +0 -0
  153. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA (2026).crl +0 -0
  154. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/certs/crls/The Vertex Project ROOT CA (2026).crl +0 -0
  155. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/iana.tlds.mpk +0 -0
  156. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/iana.uris.mpk +0 -0
  157. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/README.md +0 -0
  158. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/json-schema.org/draft-07/schema +0 -0
  159. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  160. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  161. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  162. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  163. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  164. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  165. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  166. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  167. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  168. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  169. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  170. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  171. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  172. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  173. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  174. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  175. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  176. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  177. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  178. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  179. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  180. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  181. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  182. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  183. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  184. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  185. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  186. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  187. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  188. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  189. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  190. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  191. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  192. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  193. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  194. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  195. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  196. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  197. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  198. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  199. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  200. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  201. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  202. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  203. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  204. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  205. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  206. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  207. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  208. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  209. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  210. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  211. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  212. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  213. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  214. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  215. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  216. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  217. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/lark/__init__.py +0 -0
  218. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/lark/imap.lark +0 -0
  219. {synapse-3.4.0 → synapse-3.5.0}/synapse/data/v2modelmap.yaml +0 -0
  220. {synapse-3.4.0 → synapse-3.5.0}/synapse/exc.py +0 -0
  221. {synapse-3.4.0 → synapse-3.5.0}/synapse/glob.py +0 -0
  222. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/__init__.py +0 -0
  223. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/_http.py +0 -0
  224. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/agenda.py +0 -0
  225. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/auth.py +0 -0
  226. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/base.py +0 -0
  227. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/boss.py +0 -0
  228. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/cache.py +0 -0
  229. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/certdir.py +0 -0
  230. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/chop.py +0 -0
  231. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/cli.py +0 -0
  232. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/cluster.py +0 -0
  233. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/cmd.py +0 -0
  234. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/config.py +0 -0
  235. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/coro.py +0 -0
  236. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/__init__.py +0 -0
  237. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/coin.py +0 -0
  238. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/ecc.py +0 -0
  239. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/jwk.py +0 -0
  240. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/passwd.py +0 -0
  241. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/rsa.py +0 -0
  242. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/tinfoil.py +0 -0
  243. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/crypto/utils.py +0 -0
  244. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/datfile.py +0 -0
  245. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/drive.py +0 -0
  246. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/dyndeps.py +0 -0
  247. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/editor.py +0 -0
  248. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/gis.py +0 -0
  249. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/grammar.py +0 -0
  250. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/hashitem.py +0 -0
  251. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/hashset.py +0 -0
  252. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/health.py +0 -0
  253. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/httpapi.py +0 -0
  254. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/httpclient.py +0 -0
  255. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/json.py +0 -0
  256. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/jsonstor.py +0 -0
  257. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/jsrpc.py +0 -0
  258. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/layer.py +0 -0
  259. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/link.py +0 -0
  260. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/logging.py +0 -0
  261. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/modelrev.py +0 -0
  262. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/msgpack.py +0 -0
  263. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/multislabseqn.py +0 -0
  264. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/nodefuse.py +0 -0
  265. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/oauth.py +0 -0
  266. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/output.py +0 -0
  267. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/platforms/__init__.py +0 -0
  268. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/platforms/common.py +0 -0
  269. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/platforms/darwin.py +0 -0
  270. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/platforms/freebsd.py +0 -0
  271. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/platforms/linux.py +0 -0
  272. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/platforms/windows.py +0 -0
  273. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/process.py +0 -0
  274. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/processpool.py +0 -0
  275. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/queue.py +0 -0
  276. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/reflect.py +0 -0
  277. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/schemas.py +0 -0
  278. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/scope.py +0 -0
  279. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/scrape.py +0 -0
  280. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/share.py +0 -0
  281. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/slabseqn.py +0 -0
  282. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/spawner.py +0 -0
  283. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/spooled.py +0 -0
  284. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormctrl.py +0 -0
  285. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/__init__.py +0 -0
  286. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/aha.py +0 -0
  287. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/basex.py +0 -0
  288. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/bytes.py +0 -0
  289. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/cache.py +0 -0
  290. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/cell.py +0 -0
  291. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/compression.py +0 -0
  292. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/easyperm.py +0 -0
  293. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/ecc.py +0 -0
  294. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/ethereum.py +0 -0
  295. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/file.py +0 -0
  296. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/gen.py +0 -0
  297. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/gis.py +0 -0
  298. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/graph.py +0 -0
  299. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/hashes.py +0 -0
  300. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/hex.py +0 -0
  301. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/index.py +0 -0
  302. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/ipv6.py +0 -0
  303. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/iters.py +0 -0
  304. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/json.py +0 -0
  305. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/log.py +0 -0
  306. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/macro.py +0 -0
  307. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/math.py +0 -0
  308. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/mime.py +0 -0
  309. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/pack.py +0 -0
  310. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/quorum.py +0 -0
  311. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/random.py +0 -0
  312. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/rsa.py +0 -0
  313. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/scrape.py +0 -0
  314. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/stats.py +0 -0
  315. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/stix.py +0 -0
  316. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/storm.py +0 -0
  317. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/task.py +0 -0
  318. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/utils.py +0 -0
  319. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/vault.py +0 -0
  320. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/version.py +0 -0
  321. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormlib/yaml.py +0 -0
  322. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/stormsvc.py +0 -0
  323. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/task.py +0 -0
  324. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/thishost.py +0 -0
  325. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/thisplat.py +0 -0
  326. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/threads.py +0 -0
  327. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/time.py +0 -0
  328. {synapse-3.4.0 → synapse-3.5.0}/synapse/lib/urlhelp.py +0 -0
  329. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/__init__.py +0 -0
  330. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/cvss.py +0 -0
  331. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/iana.py +0 -0
  332. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/macho.py +0 -0
  333. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/pe.py +0 -0
  334. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/phonenum.py +0 -0
  335. {synapse-3.4.0 → synapse-3.5.0}/synapse/lookup/timezones.py +0 -0
  336. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/__init__.py +0 -0
  337. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/auth.py +0 -0
  338. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/belief.py +0 -0
  339. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/crypto.py +0 -0
  340. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/dns.py +0 -0
  341. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/entity.py +0 -0
  342. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/files.py +0 -0
  343. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/geopol.py +0 -0
  344. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/geospace.py +0 -0
  345. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/gov.py +0 -0
  346. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/ind.py +0 -0
  347. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/inet.py +0 -0
  348. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/language.py +0 -0
  349. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/material.py +0 -0
  350. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/orgs.py +0 -0
  351. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/person.py +0 -0
  352. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/planning.py +0 -0
  353. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/proj.py +0 -0
  354. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/risk.py +0 -0
  355. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/science.py +0 -0
  356. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/syn.py +0 -0
  357. {synapse-3.4.0 → synapse-3.5.0}/synapse/models/telco.py +0 -0
  358. {synapse-3.4.0 → synapse-3.5.0}/synapse/servers/__init__.py +0 -0
  359. {synapse-3.4.0 → synapse-3.5.0}/synapse/servers/aha.py +0 -0
  360. {synapse-3.4.0 → synapse-3.5.0}/synapse/servers/axon.py +0 -0
  361. {synapse-3.4.0 → synapse-3.5.0}/synapse/servers/cell.py +0 -0
  362. {synapse-3.4.0 → synapse-3.5.0}/synapse/servers/cortex.py +0 -0
  363. {synapse-3.4.0 → synapse-3.5.0}/synapse/servers/jsonstor.py +0 -0
  364. {synapse-3.4.0 → synapse-3.5.0}/synapse/telepath.py +0 -0
  365. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/__init__.py +0 -0
  366. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  367. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/__init__.py +0 -0
  368. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/aha/certs/cas/synapse.crt.tinfoil +0 -0
  369. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/aha/certs/cas/synapse.key.tinfoil +0 -0
  370. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt.tinfoil +0 -0
  371. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key.tinfoil +0 -0
  372. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/aha/certs/users/root@synapse.crt.tinfoil +0 -0
  373. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/aha/certs/users/root@synapse.key.tinfoil +0 -0
  374. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  375. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  376. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/cpedata.json +0 -0
  377. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/mdstorm/httprespmulti.yaml +0 -0
  378. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/mdstorm/testsvc.py +0 -0
  379. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stix_export/basic.json +0 -0
  380. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  381. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  382. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  383. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  384. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stix_import/scos.json +0 -0
  385. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  386. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/argvquery2.storm +0 -0
  387. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/argvquery3.storm +0 -0
  388. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/argvquery4.storm +0 -0
  389. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/argvquery5.storm +0 -0
  390. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/badstorm.storm +0 -0
  391. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/continueloop.storm +0 -0
  392. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  393. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/dupewarn.storm +0 -0
  394. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/dupfunc.storm +0 -0
  395. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/embedquery.storm +0 -0
  396. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/embedquery2.storm +0 -0
  397. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/embedquery3.storm +0 -0
  398. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/embedquery4.storm +0 -0
  399. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/embedquery5.storm +0 -0
  400. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/emptybody.storm +0 -0
  401. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/exprdict.storm +0 -0
  402. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/forloop.storm +0 -0
  403. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/ifelif.storm +0 -0
  404. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/ifelse.storm +0 -0
  405. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  406. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  407. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  408. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/runtsafety.storm +0 -0
  409. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  410. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/stopreturn.storm +0 -0
  411. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  412. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/switch.storm +0 -0
  413. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/switchnodefault.storm +0 -0
  414. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/trycatch.storm +0 -0
  415. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/whilebackedge.storm +0 -0
  416. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/whilecontinue.storm +0 -0
  417. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/whileloop.storm +0 -0
  418. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormcov/whilewithnode.storm +0 -0
  419. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormmod/common +0 -0
  420. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  421. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  422. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badendpoints.yaml +0 -0
  423. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badinits.yaml +0 -0
  424. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  425. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badvaultskeys.yaml +0 -0
  426. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/badvaultsschema.yaml +0 -0
  427. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/declaredfiles.yaml +0 -0
  428. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  429. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  430. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/docs/index.md +0 -0
  431. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  432. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/dotstorm_noevents/dotstorm.yaml +0 -0
  433. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/commands/dotstorm.bar.storm +0 -0
  434. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/dotstorm_noevents/storm/modules/dotstorm.foo.storm +0 -0
  435. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/files/data.dat +0 -0
  436. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/files/sub/nested.dat +0 -0
  437. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  438. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  439. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  440. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  441. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD.storm +0 -0
  442. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz.storm +0 -0
  443. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd.storm +0 -0
  444. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/storm/modules/apimod.storm +0 -0
  445. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/storm/modules/testmod.storm +0 -0
  446. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  447. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  448. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  449. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  450. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/test.dat +0 -0
  451. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/docs/index.md +0 -0
  452. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/docs/mocks/cassette.yaml +0 -0
  453. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/docs/stormpackage.md +0 -0
  454. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/docs/sub/image.svg +0 -0
  455. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/docs/sub/nested.md +0 -0
  456. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/docs/userguide.md +0 -0
  457. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/storm/commands/testcmd.storm +0 -0
  458. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/storm/modules/apimod.storm +0 -0
  459. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/storm/modules/testmod.storm +0 -0
  460. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/storm/testcmd.storm +0 -0
  461. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs/testpkg.yaml +0 -0
  462. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/index.md +0 -0
  463. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs_no_h1/docs/noh1.md +0 -0
  464. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/files/testpkg_build_docs_no_h1/testpkg.yaml +0 -0
  465. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/nopmod.py +0 -0
  466. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_assets.py +0 -0
  467. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_common.py +0 -0
  468. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_daemon.py +0 -0
  469. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_data.py +0 -0
  470. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_exc.py +0 -0
  471. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_glob.py +0 -0
  472. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_auth.py +0 -0
  473. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_base.py +0 -0
  474. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_boss.py +0 -0
  475. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_cache.py +0 -0
  476. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_certdir.py +0 -0
  477. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_chop.py +0 -0
  478. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_cli.py +0 -0
  479. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_cluster.py +0 -0
  480. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_cmd.py +0 -0
  481. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_config.py +0 -0
  482. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_const.py +0 -0
  483. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_coro.py +0 -0
  484. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  485. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  486. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_crypto_jwk.py +0 -0
  487. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  488. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_crypto_rsa.py +0 -0
  489. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  490. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_datfile.py +0 -0
  491. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_drive.py +0 -0
  492. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  493. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_gis.py +0 -0
  494. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_hashitem.py +0 -0
  495. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_hashset.py +0 -0
  496. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_health.py +0 -0
  497. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_http.py +0 -0
  498. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_httpclient.py +0 -0
  499. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_json.py +0 -0
  500. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  501. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_jsrpc.py +0 -0
  502. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_link.py +0 -0
  503. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_logging.py +0 -0
  504. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_modelrev.py +0 -0
  505. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_msgpack.py +0 -0
  506. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  507. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_output.py +0 -0
  508. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  509. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_process.py +0 -0
  510. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_processpool.py +0 -0
  511. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_queue.py +0 -0
  512. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_reflect.py +0 -0
  513. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_scope.py +0 -0
  514. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_scrape.py +0 -0
  515. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  516. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_spawner.py +0 -0
  517. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_spooled.py +0 -0
  518. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_storm_format.py +0 -0
  519. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormctrl.py +0 -0
  520. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  521. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  522. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  523. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  524. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  525. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  526. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  527. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  528. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_file.py +0 -0
  529. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  530. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  531. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  532. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  533. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_index.py +0 -0
  534. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  535. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  536. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  537. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  538. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  539. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  540. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  541. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  542. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_quorum.py +0 -0
  543. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  544. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  545. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  546. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  547. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  548. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_task.py +0 -0
  549. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_utils.py +0 -0
  550. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  551. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  552. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  553. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_task.py +0 -0
  554. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_thishost.py +0 -0
  555. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_time.py +0 -0
  556. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  557. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lib_version.py +0 -0
  558. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  559. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_auth.py +0 -0
  560. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_base.py +0 -0
  561. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_belief.py +0 -0
  562. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_crypto.py +0 -0
  563. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_dns.py +0 -0
  564. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_entity.py +0 -0
  565. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_files.py +0 -0
  566. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_geopol.py +0 -0
  567. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_geospace.py +0 -0
  568. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_gov.py +0 -0
  569. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_gov_cn.py +0 -0
  570. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_gov_intl.py +0 -0
  571. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_gov_us.py +0 -0
  572. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_inet.py +0 -0
  573. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_language.py +0 -0
  574. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_material.py +0 -0
  575. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_orgs.py +0 -0
  576. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_planning.py +0 -0
  577. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_proj.py +0 -0
  578. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_risk.py +0 -0
  579. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_science.py +0 -0
  580. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_syn.py +0 -0
  581. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_model_telco.py +0 -0
  582. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_servers_axon.py +0 -0
  583. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_servers_cortex.py +0 -0
  584. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_servers_univ.py +0 -0
  585. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_telepath.py +0 -0
  586. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_aha.py +0 -0
  587. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_axon_copy.py +0 -0
  588. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_axon_dump_load.py +0 -0
  589. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_axon_get.py +0 -0
  590. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_axon_put.py +0 -0
  591. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_cortex_csv.py +0 -0
  592. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_cortex_feed.py +0 -0
  593. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_cortex_layer.py +0 -0
  594. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  595. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_apikey.py +0 -0
  596. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_backup.py +0 -0
  597. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_demote.py +0 -0
  598. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_healthcheck.py +0 -0
  599. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_modrole.py +0 -0
  600. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_moduser.py +0 -0
  601. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_promote.py +0 -0
  602. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_reload.py +0 -0
  603. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_shutdown.py +0 -0
  604. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_service_snapshot.py +0 -0
  605. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_pkg_doc.py +0 -0
  606. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_pkg_gen.py +0 -0
  607. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_pkg_publish.py +0 -0
  608. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_tester.py +0 -0
  609. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_storm_validate.py +0 -0
  610. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_doc.py +0 -0
  611. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_docmanifest.py +0 -0
  612. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_easycert.py +0 -0
  613. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_guid.py +0 -0
  614. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_json2mpk.py +0 -0
  615. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_mdstorm.py +0 -0
  616. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_tools_utils_optimize.py +0 -0
  617. {synapse-3.4.0 → synapse-3.5.0}/synapse/tests/test_utils_getrefs.py +0 -0
  618. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/__init__.py +0 -0
  619. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/__init__.py +0 -0
  620. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/clone.py +0 -0
  621. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/del.py +0 -0
  622. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/easycert.py +0 -0
  623. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/enroll.py +0 -0
  624. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/list.py +0 -0
  625. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/mirror.py +0 -0
  626. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/provision/__init__.py +0 -0
  627. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/provision/service.py +0 -0
  628. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/aha/provision/user.py +0 -0
  629. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/axon/__init__.py +0 -0
  630. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/axon/copy.py +0 -0
  631. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/axon/dump.py +0 -0
  632. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/axon/get.py +0 -0
  633. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/axon/load.py +0 -0
  634. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/axon/put.py +0 -0
  635. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/__init__.py +0 -0
  636. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/csv.py +0 -0
  637. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/feed.py +0 -0
  638. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/layer/__init__.py +0 -0
  639. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/layer/dump.py +0 -0
  640. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/cortex/layer/load.py +0 -0
  641. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/docker/__init__.py +0 -0
  642. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/docker/validate.py +0 -0
  643. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/__init__.py +0 -0
  644. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/apikey.py +0 -0
  645. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/backup.py +0 -0
  646. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/demote.py +0 -0
  647. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/healthcheck.py +0 -0
  648. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/modrole.py +0 -0
  649. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/moduser.py +0 -0
  650. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/promote.py +0 -0
  651. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/reload.py +0 -0
  652. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/shutdown.py +0 -0
  653. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/service/snapshot.py +0 -0
  654. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/__init__.py +0 -0
  655. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/__main__.py +0 -0
  656. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/pkg/__init__.py +0 -0
  657. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/pkg/doc.py +0 -0
  658. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/pkg/gen.py +0 -0
  659. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/pkg/publish.py +0 -0
  660. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/storm/validate.py +0 -0
  661. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/__init__.py +0 -0
  662. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/doc.py +0 -0
  663. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/docmanifest.py +0 -0
  664. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/easycert.py +0 -0
  665. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/guid.py +0 -0
  666. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/json2mpk.py +0 -0
  667. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/mdstorm.py +0 -0
  668. {synapse-3.4.0 → synapse-3.5.0}/synapse/tools/utils/optimize.py +0 -0
  669. {synapse-3.4.0 → synapse-3.5.0}/synapse/utils/__init__.py +0 -0
  670. {synapse-3.4.0 → synapse-3.5.0}/synapse/utils/getrefs.py +0 -0
  671. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/__init__.py +0 -0
  672. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  673. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  674. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/base58.py +0 -0
  675. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/convert.py +0 -0
  676. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  677. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  678. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  679. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/LICENSE +0 -0
  680. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/__init__.py +0 -0
  681. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  682. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  683. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  684. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  685. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  686. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/json.py +0 -0
  687. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  688. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  689. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  690. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  691. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/test_email/test_parseaddr.py +0 -0
  692. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  693. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  694. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/cpython/lib/test/test_json.py +0 -0
  695. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  696. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  697. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  698. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  699. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  700. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  701. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/utils.py +0 -0
  702. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/LICENSE +0 -0
  703. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/__init__.py +0 -0
  704. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/constants.py +0 -0
  705. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  706. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  707. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  708. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  709. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  710. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  711. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  712. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  713. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  714. {synapse-3.4.0 → synapse-3.5.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  715. {synapse-3.4.0 → synapse-3.5.0}/synapse.egg-info/dependency_links.txt +0 -0
  716. {synapse-3.4.0 → synapse-3.5.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.4.0
3
+ Version: 3.5.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.4.0'
7
+ version = '3.5.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', {}).get('byterange'):
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.axonmetrics = await self.axonslab.getHotCount('metrics')
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.axonmetrics.get('size:bytes')):
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.axonmetrics.get('file:count')):
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 self.axonmetrics.pack()
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.axonmetrics.inc('file:count')
1298
- self.axonmetrics.inc('size:bytes', valu=size)
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
 
@@ -1407,8 +1567,8 @@ class Axon(s_cell.Cell):
1407
1567
  logger.debug(f'Deleting blob [{fhash}].', extra=self.getLogExtra(sha256=fhash))
1408
1568
 
1409
1569
  size = int.from_bytes(byts, 'big')
1410
- self.axonmetrics.inc('file:count', valu=-1)
1411
- self.axonmetrics.inc('size:bytes', valu=-size)
1570
+ self._incAxonMetric('file:count', -1)
1571
+ self._incAxonMetric('size:bytes', -size)
1412
1572
 
1413
1573
  await self._delBlobByts(sha256)
1414
1574
 
@@ -1455,108 +1615,110 @@ class Axon(s_cell.Cell):
1455
1615
  for _, item in unpk.feed(byts):
1456
1616
  yield item
1457
1617
 
1458
- async def _sha256ToLink(self, sha256, link):
1618
+ async def _readBlobText(self, sha256, errors):
1619
+
1620
+ fhash = s_common.ehex(sha256)
1621
+
1622
+ textdec = codecs.getincrementaldecoder('utf8')(errors=errors)
1623
+ decoder = io.IncrementalNewlineDecoder(textdec, translate=True)
1624
+
1459
1625
  try:
1460
- async for byts in self.get(sha256):
1461
- await link.send(byts)
1462
- await asyncio.sleep(0)
1463
1626
 
1464
- except asyncio.CancelledError:
1627
+ async with contextlib.aclosing(self.get(sha256)) as genr:
1628
+
1629
+ async for byts in genr:
1630
+
1631
+ for offs in range(0, len(byts), READ_SLICE_SIZE):
1632
+
1633
+ text = _decodeText(decoder, byts[offs:offs + READ_SLICE_SIZE], errors)
1634
+ if text:
1635
+ yield text
1636
+
1637
+ await asyncio.sleep(0)
1638
+
1639
+ text = _decodeText(decoder, b'', errors, final=True)
1640
+ if text:
1641
+ yield text
1642
+
1643
+ except (asyncio.CancelledError, GeneratorExit):
1465
1644
  # the reader bailed out early ( or we are shutting down ) so leave a
1466
1645
  # trace of the partial read without logging it as an error.
1467
- fhash = s_common.ehex(sha256)
1468
- logger.debug(f'Stopped feeding blob [{fhash}].', extra=self.getLogExtra(sha256=fhash))
1646
+ logger.debug(f'Stopped reading blob [{fhash}].', extra=self.getLogExtra(sha256=fhash))
1469
1647
  raise
1470
1648
 
1471
- finally:
1472
- link.txfini()
1473
-
1474
1649
  async def readlines(self, sha256, errors='ignore'):
1475
1650
 
1476
1651
  sha256 = s_common.uhex(sha256)
1477
1652
  await self._reqHas(sha256)
1478
1653
 
1479
- link00, sock00 = await s_link.linksock(forceclose=True)
1654
+ count = 0
1655
+ lines = _BlobLines()
1480
1656
 
1481
- feedtask = None
1482
-
1483
- try:
1484
- todo = s_common.todo(_spawn_readlines, sock00, errors=errors)
1485
- async with await s_base.Base.anit() as scope:
1657
+ async with contextlib.aclosing(self._readBlobText(sha256, errors)) as genr:
1486
1658
 
1487
- scope.schedCoro(s_process.spawn(todo, logconf=self.getLogConf()))
1488
- feedtask = scope.schedCoro(self._sha256ToLink(sha256, link00))
1659
+ async for text in genr:
1489
1660
 
1490
- while not self.isfini:
1661
+ lines.feed(text)
1491
1662
 
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
1663
+ for line in lines.pop():
1499
1664
 
1500
1665
  yield line.rstrip('\n')
1501
1666
 
1502
- finally:
1503
- sock00.close()
1504
- await link00.fini()
1667
+ count += 1
1668
+ if count % READ_YIELD_COUNT == 0:
1669
+ await asyncio.sleep(0)
1505
1670
 
1506
- # exiting the scope above cancels the feed task, so only await it
1507
- # when it ran to completion in order to re-raise any feed error.
1508
- if feedtask is not None and not feedtask.cancelled():
1509
- await feedtask
1671
+ lines.fini()
1672
+ for line in lines.pop():
1673
+ yield line.rstrip('\n')
1510
1674
 
1511
1675
  async def csvrows(self, sha256, dialect='excel', errors='ignore', **fmtparams):
1512
1676
  await self._reqHas(sha256)
1513
1677
  if dialect not in csv.list_dialects():
1514
1678
  raise s_exc.BadArg(mesg=f'Invalid CSV dialect, use one of {csv.list_dialects()}')
1515
1679
 
1516
- link00, sock00 = await s_link.linksock(forceclose=True)
1517
-
1518
- feedtask = None
1680
+ lines = _BlobLines()
1519
1681
 
1520
1682
  try:
1521
- todo = s_common.todo(_spawn_readrows, sock00, dialect, fmtparams, errors=errors)
1522
- async with await s_base.Base.anit() as scope:
1683
+ reader = csv.reader(lines, dialect, **fmtparams)
1684
+ except TypeError as e:
1685
+ raise s_exc.BadArg(mesg=f'Invalid csv format parameter: {str(e)}') from None
1686
+
1687
+ count = 0
1523
1688
 
1524
- scope.schedCoro(s_process.spawn(todo, logconf=self.getLogConf()))
1525
- feedtask = scope.schedCoro(self._sha256ToLink(sha256, link00))
1689
+ async with contextlib.aclosing(self._readBlobText(sha256, errors)) as genr:
1526
1690
 
1527
- while not self.isfini:
1691
+ async for text in genr:
1528
1692
 
1529
- mesg = await link00.rx()
1530
- if mesg is None:
1531
- return
1693
+ lines.feed(text)
1694
+ if not lines.ready():
1695
+ continue
1532
1696
 
1533
- row = s_common.result(mesg)
1534
- if row is None:
1535
- return
1697
+ for row in _iterCsvRows(reader, lines):
1536
1698
 
1537
1699
  yield row
1538
1700
 
1539
- finally:
1540
- sock00.close()
1541
- await link00.fini()
1701
+ count += 1
1702
+ if count % READ_YIELD_COUNT == 0:
1703
+ await asyncio.sleep(0)
1542
1704
 
1543
- # exiting the scope above cancels the feed task, so only await it
1544
- # when it ran to completion in order to re-raise any feed error.
1545
- if feedtask is not None and not feedtask.cancelled():
1546
- await feedtask
1705
+ lines.fini()
1706
+ for row in _iterCsvRows(reader, lines):
1707
+ yield row
1547
1708
 
1548
1709
  async def jsonlines(self, sha256, errors='ignore'):
1549
- async for line in self.readlines(sha256, errors=errors):
1550
- line = line.strip()
1551
- if not line:
1552
- continue
1553
-
1554
- try:
1555
- yield s_json.loads(line)
1556
- except s_exc.BadJsonText as e:
1557
- logger.exception(f'Bad json line encountered for {sha256}')
1558
- raise s_exc.BadJsonText(mesg=f'Bad json line encountered while processing {sha256}, ({e})',
1559
- sha256=sha256) from None
1710
+ async with contextlib.aclosing(self.readlines(sha256, errors=errors)) as genr:
1711
+ async for line in genr:
1712
+ line = line.strip()
1713
+ if not line:
1714
+ continue
1715
+
1716
+ try:
1717
+ yield s_json.loads(line)
1718
+ except s_exc.BadJsonText as e:
1719
+ logger.exception(f'Bad json line encountered for {sha256}')
1720
+ raise s_exc.BadJsonText(mesg=f'Bad json line encountered while processing {sha256}, ({e})',
1721
+ sha256=sha256) from None
1560
1722
 
1561
1723
  async def unpack(self, sha256, fmt, offs=0):
1562
1724
  '''
@@ -1942,10 +2104,25 @@ class HasAxon:
1942
2104
  logger.debug('Connected to axon')
1943
2105
  self._has_axoninfo = await proxy.getCellInfo()
1944
2106
 
1945
- async def getAxon(self, timeout=None):
1946
- # returns a live proxy to the axon ( embedded or remote ) so callers get
1947
- # a uniform, prod-equivalent method-call interface.
1948
- return await self._has_axon_client.proxy(timeout=timeout)
2107
+ async def getAxon(self, timeout=s_const.AXON_READY_TIMEOUT):
2108
+ '''
2109
+ Get a live proxy to the Axon ( embedded or remote ), so callers get a
2110
+ uniform, prod-equivalent method-call interface.
2111
+
2112
+ Args:
2113
+ timeout (int): The maximum number of seconds to wait for the Axon, or None to wait indefinitely.
2114
+
2115
+ Returns:
2116
+ telepath.Proxy: A proxy to the Axon.
2117
+
2118
+ Raises:
2119
+ s_exc.TimeOut: If the Axon is not available within the timeout.
2120
+ '''
2121
+ try:
2122
+ return await self._has_axon_client.proxy(timeout=timeout)
2123
+ except asyncio.TimeoutError:
2124
+ mesg = f'Timed out waiting {timeout} seconds for the Axon to be ready.'
2125
+ raise s_exc.TimeOut(mesg=mesg, timeout=timeout) from None
1949
2126
 
1950
2127
  async def getAxonInfo(self):
1951
2128
  # lazily resolve and cache the axon cell info. the onlink handler
@@ -1957,61 +2134,29 @@ class HasAxon:
1957
2134
 
1958
2135
  return self._has_axoninfo
1959
2136
 
1960
- def _spawn_senderr(sock, exc): # pragma: no cover
1961
- # send an error message to the parent process. if the reader bailed out
1962
- # early we may be unable to, which is not an error worth raising.
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)
2137
+ class HasAxonHandlerMixin:
2138
+ '''
2139
+ Mixin for an Axon HTTP handler served by a Cell which uses an Axon ( see HasAxon ).
2011
2140
 
2012
- except (BrokenPipeError, ConnectionResetError):
2013
- # the reader bailed out early, so there is nobody left to tell.
2014
- return
2141
+ The Axon is resolved through the Cell, and a request which times out waiting for
2142
+ it is answered with an HTTP 503 `TimeOut` error.
2143
+ '''
2144
+ async def getAxon(self):
2145
+ '''
2146
+ Get a proxy to the Cell's Axon, answering a timed out wait with an HTTP 503.
2147
+ '''
2148
+ try:
2149
+ return await self.cell.getAxon()
2150
+ except s_exc.TimeOut as e:
2151
+ self.sendRestExc(e, status_code=s_httpapi.HTTPStatus.SERVICE_UNAVAILABLE)
2152
+ raise t_web.Finish() from None
2015
2153
 
2016
- except Exception as e:
2017
- _spawn_senderr(sock, e)
2154
+ async def getAxonInfo(self):
2155
+ '''
2156
+ Get the Cell's Axon info, answering a timed out wait with an HTTP 503.
2157
+ '''
2158
+ try:
2159
+ return await self.cell.getAxonInfo()
2160
+ except s_exc.TimeOut as e:
2161
+ self.sendRestExc(e, status_code=s_httpapi.HTTPStatus.SERVICE_UNAVAILABLE)
2162
+ raise t_web.Finish() from None