synapse 2.167.0__tar.gz → 2.169.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of synapse might be problematic. Click here for more details.

Files changed (576) hide show
  1. {synapse-2.167.0/synapse.egg-info → synapse-2.169.0}/PKG-INFO +1 -1
  2. {synapse-2.167.0 → synapse-2.169.0}/pyproject.toml +1 -1
  3. {synapse-2.167.0 → synapse-2.169.0}/synapse/cortex.py +35 -19
  4. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/agenda.py +3 -0
  5. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/aha.py +2 -1
  6. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/cell.py +6 -14
  7. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/httpapi.py +3 -0
  8. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/layer.py +2 -0
  9. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/modelrev.py +6 -0
  10. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/modules.py +1 -0
  11. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/snap.py +3 -1
  12. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/aha.py +21 -6
  13. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/easyperm.py +8 -0
  14. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/model.py +120 -0
  15. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormtypes.py +17 -2
  16. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/version.py +2 -2
  17. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/view.py +8 -10
  18. synapse-2.169.0/synapse/models/planning.py +161 -0
  19. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_cortex.py +1 -1
  20. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_agenda.py +17 -3
  21. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_aha.py +7 -2
  22. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_cell.py +21 -52
  23. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_aha.py +1 -1
  24. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_cortex.py +12 -0
  25. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_model.py +105 -0
  26. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormtypes.py +26 -0
  27. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_trigger.py +3 -3
  28. synapse-2.169.0/synapse/tests/test_model_planning.py +126 -0
  29. {synapse-2.167.0 → synapse-2.169.0/synapse.egg-info}/PKG-INFO +1 -1
  30. {synapse-2.167.0 → synapse-2.169.0}/synapse.egg-info/SOURCES.txt +2 -0
  31. {synapse-2.167.0 → synapse-2.169.0}/LICENSE +0 -0
  32. {synapse-2.167.0 → synapse-2.169.0}/README.rst +0 -0
  33. {synapse-2.167.0 → synapse-2.169.0}/setup.cfg +0 -0
  34. {synapse-2.167.0 → synapse-2.169.0}/synapse/__init__.py +0 -0
  35. {synapse-2.167.0 → synapse-2.169.0}/synapse/axon.py +0 -0
  36. {synapse-2.167.0 → synapse-2.169.0}/synapse/cells.py +0 -0
  37. {synapse-2.167.0 → synapse-2.169.0}/synapse/cmds/__init__.py +0 -0
  38. {synapse-2.167.0 → synapse-2.169.0}/synapse/cmds/boss.py +0 -0
  39. {synapse-2.167.0 → synapse-2.169.0}/synapse/cmds/cortex.py +0 -0
  40. {synapse-2.167.0 → synapse-2.169.0}/synapse/cmds/hive.py +0 -0
  41. {synapse-2.167.0 → synapse-2.169.0}/synapse/common.py +0 -0
  42. {synapse-2.167.0 → synapse-2.169.0}/synapse/cryotank.py +0 -0
  43. {synapse-2.167.0 → synapse-2.169.0}/synapse/daemon.py +0 -0
  44. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/__init__.py +0 -0
  45. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  46. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/attack-flow/README.md +0 -0
  47. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  48. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  49. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  50. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  51. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  52. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/iana.tlds.mpk +0 -0
  53. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/README.md +0 -0
  54. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  55. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  56. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  57. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  58. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  59. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  60. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  61. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  62. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  63. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  64. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  65. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  66. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  67. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  68. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  69. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  70. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  71. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  72. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  73. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  74. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  75. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  76. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  77. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  78. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  79. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  80. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  81. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  82. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  83. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  84. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  85. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  86. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  87. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  88. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  89. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  90. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  91. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  92. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  93. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  94. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  95. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  96. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  97. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  98. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  99. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  100. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  101. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  102. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  103. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  104. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  105. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  106. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  107. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  108. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  109. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  110. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  111. {synapse-2.167.0 → synapse-2.169.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  112. {synapse-2.167.0 → synapse-2.169.0}/synapse/datamodel.py +0 -0
  113. {synapse-2.167.0 → synapse-2.169.0}/synapse/exc.py +0 -0
  114. {synapse-2.167.0 → synapse-2.169.0}/synapse/glob.py +0 -0
  115. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/__init__.py +0 -0
  116. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/ast.py +0 -0
  117. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/autodoc.py +0 -0
  118. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/base.py +0 -0
  119. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/boss.py +0 -0
  120. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/cache.py +0 -0
  121. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/certdir.py +0 -0
  122. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/chop.py +0 -0
  123. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/cli.py +0 -0
  124. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/cmd.py +0 -0
  125. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/cmdr.py +0 -0
  126. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/config.py +0 -0
  127. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/const.py +0 -0
  128. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/coro.py +0 -0
  129. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/crypto/__init__.py +0 -0
  130. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/crypto/coin.py +0 -0
  131. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/crypto/ecc.py +0 -0
  132. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/crypto/passwd.py +0 -0
  133. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/crypto/rsa.py +0 -0
  134. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/crypto/tinfoil.py +0 -0
  135. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/datfile.py +0 -0
  136. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/dyndeps.py +0 -0
  137. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/encoding.py +0 -0
  138. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/gis.py +0 -0
  139. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/grammar.py +0 -0
  140. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/hashitem.py +0 -0
  141. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/hashset.py +0 -0
  142. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/health.py +0 -0
  143. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/hive.py +0 -0
  144. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/hiveauth.py +0 -0
  145. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/ingest.py +0 -0
  146. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/interval.py +0 -0
  147. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/jsonstor.py +0 -0
  148. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/jupyter.py +0 -0
  149. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/link.py +0 -0
  150. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/lmdbslab.py +0 -0
  151. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/module.py +0 -0
  152. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/msgpack.py +0 -0
  153. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/multislabseqn.py +0 -0
  154. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/nexus.py +0 -0
  155. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/node.py +0 -0
  156. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/oauth.py +0 -0
  157. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/output.py +0 -0
  158. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/parser.py +0 -0
  159. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/platforms/__init__.py +0 -0
  160. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/platforms/common.py +0 -0
  161. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/platforms/darwin.py +0 -0
  162. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/platforms/freebsd.py +0 -0
  163. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/platforms/linux.py +0 -0
  164. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/platforms/windows.py +0 -0
  165. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/queue.py +0 -0
  166. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/ratelimit.py +0 -0
  167. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/reflect.py +0 -0
  168. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/rstorm.py +0 -0
  169. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/schemas.py +0 -0
  170. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/scope.py +0 -0
  171. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/scrape.py +0 -0
  172. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/share.py +0 -0
  173. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/slaboffs.py +0 -0
  174. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/slabseqn.py +0 -0
  175. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/spooled.py +0 -0
  176. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/storm.lark +0 -0
  177. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/storm.py +0 -0
  178. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/storm_format.py +0 -0
  179. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormctrl.py +0 -0
  180. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormhttp.py +0 -0
  181. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/__init__.py +0 -0
  182. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/auth.py +0 -0
  183. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/backup.py +0 -0
  184. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/basex.py +0 -0
  185. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/cache.py +0 -0
  186. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/cell.py +0 -0
  187. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/compression.py +0 -0
  188. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/cortex.py +0 -0
  189. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/ethereum.py +0 -0
  190. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/gen.py +0 -0
  191. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/gis.py +0 -0
  192. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/graph.py +0 -0
  193. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/hashes.py +0 -0
  194. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/hex.py +0 -0
  195. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/imap.py +0 -0
  196. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/infosec.py +0 -0
  197. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/ipv6.py +0 -0
  198. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/iters.py +0 -0
  199. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/json.py +0 -0
  200. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/log.py +0 -0
  201. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/macro.py +0 -0
  202. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/math.py +0 -0
  203. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/mime.py +0 -0
  204. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/modelext.py +0 -0
  205. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/notifications.py +0 -0
  206. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/oauth.py +0 -0
  207. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/pack.py +0 -0
  208. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/project.py +0 -0
  209. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/random.py +0 -0
  210. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/scrape.py +0 -0
  211. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/smtp.py +0 -0
  212. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/spooled.py +0 -0
  213. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/stats.py +0 -0
  214. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/stix.py +0 -0
  215. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/storm.py +0 -0
  216. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/vault.py +0 -0
  217. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/version.py +0 -0
  218. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/xml.py +0 -0
  219. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormlib/yaml.py +0 -0
  220. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormsvc.py +0 -0
  221. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/stormwhois.py +0 -0
  222. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/structlog.py +0 -0
  223. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/task.py +0 -0
  224. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/thishost.py +0 -0
  225. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/thisplat.py +0 -0
  226. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/threads.py +0 -0
  227. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/time.py +0 -0
  228. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/trigger.py +0 -0
  229. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/types.py +0 -0
  230. {synapse-2.167.0 → synapse-2.169.0}/synapse/lib/urlhelp.py +0 -0
  231. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/__init__.py +0 -0
  232. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/cvss.py +0 -0
  233. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/iana.py +0 -0
  234. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/iso3166.py +0 -0
  235. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/macho.py +0 -0
  236. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/pe.py +0 -0
  237. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/phonenum.py +0 -0
  238. {synapse-2.167.0 → synapse-2.169.0}/synapse/lookup/timezones.py +0 -0
  239. {synapse-2.167.0 → synapse-2.169.0}/synapse/mindmeld.py +0 -0
  240. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/__init__.py +0 -0
  241. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/auth.py +0 -0
  242. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/base.py +0 -0
  243. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/belief.py +0 -0
  244. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/biz.py +0 -0
  245. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/crypto.py +0 -0
  246. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/dns.py +0 -0
  247. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/economic.py +0 -0
  248. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/files.py +0 -0
  249. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/geopol.py +0 -0
  250. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/geospace.py +0 -0
  251. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/gov/__init__.py +0 -0
  252. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/gov/cn.py +0 -0
  253. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/gov/intl.py +0 -0
  254. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/gov/us.py +0 -0
  255. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/inet.py +0 -0
  256. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/infotech.py +0 -0
  257. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/language.py +0 -0
  258. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/material.py +0 -0
  259. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/media.py +0 -0
  260. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/orgs.py +0 -0
  261. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/person.py +0 -0
  262. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/proj.py +0 -0
  263. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/risk.py +0 -0
  264. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/science.py +0 -0
  265. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/syn.py +0 -0
  266. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/telco.py +0 -0
  267. {synapse-2.167.0 → synapse-2.169.0}/synapse/models/transport.py +0 -0
  268. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/__init__.py +0 -0
  269. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/aha.py +0 -0
  270. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/axon.py +0 -0
  271. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/cell.py +0 -0
  272. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/cortex.py +0 -0
  273. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/cryotank.py +0 -0
  274. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/jsonstor.py +0 -0
  275. {synapse-2.167.0 → synapse-2.169.0}/synapse/servers/stemcell.py +0 -0
  276. {synapse-2.167.0 → synapse-2.169.0}/synapse/telepath.py +0 -0
  277. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/__init__.py +0 -0
  278. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  279. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/__init__.py +0 -0
  280. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  281. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  282. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  283. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  284. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  285. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  286. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  287. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/root.key +0 -0
  288. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  289. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/certdir/users/user.key +0 -0
  290. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  291. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  292. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  293. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  294. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  295. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stix_export/basic.json +0 -0
  296. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  297. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  298. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  299. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  300. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  301. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  302. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  303. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  304. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  305. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  306. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormmod/common +0 -0
  307. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  308. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  309. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  310. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  311. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  312. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  313. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  314. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  315. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  316. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  317. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  318. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  319. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  320. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  321. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  322. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  323. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  324. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  325. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  326. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  327. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  328. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  329. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  330. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/test.dat +0 -0
  331. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  332. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/nopmod.py +0 -0
  333. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_axon.py +0 -0
  334. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_cmds_boss.py +0 -0
  335. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_cmds_cortex.py +0 -0
  336. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_cmds_hive.py +0 -0
  337. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_common.py +0 -0
  338. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_cryotank.py +0 -0
  339. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_daemon.py +0 -0
  340. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_data.py +0 -0
  341. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_datamodel.py +0 -0
  342. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_exc.py +0 -0
  343. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_glob.py +0 -0
  344. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_init.py +0 -0
  345. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_ast.py +0 -0
  346. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_autodoc.py +0 -0
  347. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_base.py +0 -0
  348. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_boss.py +0 -0
  349. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_cache.py +0 -0
  350. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_certdir.py +0 -0
  351. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_chop.py +0 -0
  352. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_cli.py +0 -0
  353. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_config.py +0 -0
  354. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_const.py +0 -0
  355. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_coro.py +0 -0
  356. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  357. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  358. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  359. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  360. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_datfile.py +0 -0
  361. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  362. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_encoding.py +0 -0
  363. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_gis.py +0 -0
  364. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_grammar.py +0 -0
  365. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_hashitem.py +0 -0
  366. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_hashset.py +0 -0
  367. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_health.py +0 -0
  368. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_hive.py +0 -0
  369. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_hiveauth.py +0 -0
  370. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_httpapi.py +0 -0
  371. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_interval.py +0 -0
  372. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  373. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_jupyter.py +0 -0
  374. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_layer.py +0 -0
  375. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_link.py +0 -0
  376. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  377. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_modelrev.py +0 -0
  378. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_module.py +0 -0
  379. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_msgpack.py +0 -0
  380. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  381. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_nexus.py +0 -0
  382. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_node.py +0 -0
  383. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_output.py +0 -0
  384. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  385. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_queue.py +0 -0
  386. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  387. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_reflect.py +0 -0
  388. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_rstorm.py +0 -0
  389. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_scope.py +0 -0
  390. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_scrape.py +0 -0
  391. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  392. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  393. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_snap.py +0 -0
  394. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_spooled.py +0 -0
  395. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_storm.py +0 -0
  396. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_storm_format.py +0 -0
  397. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  398. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  399. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  400. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  401. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  402. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  403. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  404. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  405. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  406. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  407. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  408. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  409. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  410. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  411. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  412. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  413. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  414. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  415. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  416. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  417. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  418. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  419. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  420. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  421. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  422. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  423. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  424. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  425. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  426. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  427. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  428. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  429. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  430. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  431. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  432. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  433. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_structlog.py +0 -0
  434. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_task.py +0 -0
  435. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_thishost.py +0 -0
  436. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_time.py +0 -0
  437. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_types.py +0 -0
  438. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  439. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_version.py +0 -0
  440. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lib_view.py +0 -0
  441. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  442. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  443. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_mindmeld.py +0 -0
  444. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_auth.py +0 -0
  445. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_base.py +0 -0
  446. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_belief.py +0 -0
  447. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_biz.py +0 -0
  448. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_crypto.py +0 -0
  449. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_dns.py +0 -0
  450. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_economic.py +0 -0
  451. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_files.py +0 -0
  452. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_geopol.py +0 -0
  453. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_geospace.py +0 -0
  454. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_gov_cn.py +0 -0
  455. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_gov_intl.py +0 -0
  456. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_gov_us.py +0 -0
  457. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_inet.py +0 -0
  458. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_infotech.py +0 -0
  459. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_language.py +0 -0
  460. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_material.py +0 -0
  461. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_media.py +0 -0
  462. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_orgs.py +0 -0
  463. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_person.py +0 -0
  464. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_proj.py +0 -0
  465. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_risk.py +0 -0
  466. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_science.py +0 -0
  467. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_syn.py +0 -0
  468. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_telco.py +0 -0
  469. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_model_transport.py +0 -0
  470. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_servers_axon.py +0 -0
  471. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_servers_cortex.py +0 -0
  472. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_servers_cryotank.py +0 -0
  473. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_servers_stemcell.py +0 -0
  474. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_servers_univ.py +0 -0
  475. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_telepath.py +0 -0
  476. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_aha.py +0 -0
  477. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_autodoc.py +0 -0
  478. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  479. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_backup.py +0 -0
  480. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_cellauth.py +0 -0
  481. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  482. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  483. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_csvtool.py +0 -0
  484. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  485. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_easycert.py +0 -0
  486. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_feed.py +0 -0
  487. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_genpkg.py +0 -0
  488. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_guid.py +0 -0
  489. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  490. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_hiveload.py +0 -0
  491. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_hivesave.py +0 -0
  492. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  493. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_livebackup.py +0 -0
  494. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_modrole.py +0 -0
  495. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_moduser.py +0 -0
  496. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_pullfile.py +0 -0
  497. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_pushfile.py +0 -0
  498. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_reload.py +0 -0
  499. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_rstorm.py +0 -0
  500. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_tools_storm.py +0 -0
  501. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_utils.py +0 -0
  502. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_utils_getrefs.py +0 -0
  503. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/test_utils_stormcov.py +0 -0
  504. {synapse-2.167.0 → synapse-2.169.0}/synapse/tests/utils.py +0 -0
  505. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/__init__.py +0 -0
  506. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/__init__.py +0 -0
  507. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/easycert.py +0 -0
  508. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/enroll.py +0 -0
  509. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/list.py +0 -0
  510. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/provision/__init__.py +0 -0
  511. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/provision/service.py +0 -0
  512. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/aha/provision/user.py +0 -0
  513. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/autodoc.py +0 -0
  514. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/axon2axon.py +0 -0
  515. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/backup.py +0 -0
  516. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/cellauth.py +0 -0
  517. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/cmdr.py +0 -0
  518. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/cryo/__init__.py +0 -0
  519. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/cryo/cat.py +0 -0
  520. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/cryo/list.py +0 -0
  521. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/csvtool.py +0 -0
  522. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/docker/__init__.py +0 -0
  523. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/docker/validate.py +0 -0
  524. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/easycert.py +0 -0
  525. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/feed.py +0 -0
  526. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/genpkg.py +0 -0
  527. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/guid.py +0 -0
  528. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/healthcheck.py +0 -0
  529. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/hive/__init__.py +0 -0
  530. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/hive/load.py +0 -0
  531. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/hive/save.py +0 -0
  532. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/json2mpk.py +0 -0
  533. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/livebackup.py +0 -0
  534. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/modrole.py +0 -0
  535. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/moduser.py +0 -0
  536. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/promote.py +0 -0
  537. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/pullfile.py +0 -0
  538. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/pushfile.py +0 -0
  539. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/reload.py +0 -0
  540. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/rstorm.py +0 -0
  541. {synapse-2.167.0 → synapse-2.169.0}/synapse/tools/storm.py +0 -0
  542. {synapse-2.167.0 → synapse-2.169.0}/synapse/utils/__init__.py +0 -0
  543. {synapse-2.167.0 → synapse-2.169.0}/synapse/utils/getrefs.py +0 -0
  544. {synapse-2.167.0 → synapse-2.169.0}/synapse/utils/stormcov/__init__.py +0 -0
  545. {synapse-2.167.0 → synapse-2.169.0}/synapse/utils/stormcov/plugin.py +0 -0
  546. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/__init__.py +0 -0
  547. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  548. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  549. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/base58.py +0 -0
  550. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/convert.py +0 -0
  551. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  552. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  553. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  554. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  555. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  556. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  557. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  558. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  559. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  560. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/utils.py +0 -0
  561. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/LICENSE +0 -0
  562. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/__init__.py +0 -0
  563. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/constants.py +0 -0
  564. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  565. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  566. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  567. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  568. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  569. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  570. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  571. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  572. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  573. {synapse-2.167.0 → synapse-2.169.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  574. {synapse-2.167.0 → synapse-2.169.0}/synapse.egg-info/dependency_links.txt +0 -0
  575. {synapse-2.167.0 → synapse-2.169.0}/synapse.egg-info/requires.txt +0 -0
  576. {synapse-2.167.0 → synapse-2.169.0}/synapse.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.167.0
3
+ Version: 2.169.0
4
4
  Summary: Synapse Intelligence Analysis Framework
5
5
  Author-email: The Vertex Project LLC <root@vertex.link>
6
6
  License: Apache License 2.0
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.167.0'
7
+ version = '2.169.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -573,14 +573,6 @@ class CoreApi(s_cell.CellApi):
573
573
  async def delStormDmon(self, iden):
574
574
  return await self.cell.delStormDmon(iden)
575
575
 
576
- @s_cell.adminapi(log=True)
577
- async def enableMigrationMode(self): # pragma: no cover
578
- s_common.deprdate('CoreApi.enableMigrationMode', '2024-05-05')
579
-
580
- @s_cell.adminapi(log=True)
581
- async def disableMigrationMode(self): # pragma: no cover
582
- s_common.deprdate('CoreApi.disableMigrationMode', '2024-05-05')
583
-
584
576
  @s_cell.adminapi()
585
577
  async def cloneLayer(self, iden, ldef=None):
586
578
 
@@ -881,7 +873,9 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
881
873
 
882
874
  self.maxnodes = self.conf.get('max:nodes')
883
875
  self.nodecount = 0
876
+
884
877
  self.migration = False
878
+ self._migration_lock = asyncio.Lock()
885
879
 
886
880
  self.stormmods = {} # name: mdef
887
881
  self.stormpkgs = {} # name: pkgdef
@@ -1348,6 +1342,17 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1348
1342
  'ex': 'node.prop.del.inet:ipv4.asn',
1349
1343
  'desc': 'Controls removing a specific property from a form of node in a layer.'},
1350
1344
 
1345
+ {'perm': ('node', 'data', 'set'), 'gate': 'layer',
1346
+ 'desc': 'Permits a user to set node data in a given layer.'},
1347
+ {'perm': ('node', 'data', 'set', '<key>'), 'gate': 'layer',
1348
+ 'ex': 'node.data.set.hehe',
1349
+ 'desc': 'Permits a user to set node data in a given layer for a specific key.'},
1350
+ {'perm': ('node', 'data', 'pop'), 'gate': 'layer',
1351
+ 'desc': 'Permits a user to remove node data in a given layer.'},
1352
+ {'perm': ('node', 'data', 'pop', '<key>'), 'gate': 'layer',
1353
+ 'ex': 'node.data.pop.hehe',
1354
+ 'desc': 'Permits a user to remove node data in a given layer for a specific key.'},
1355
+
1351
1356
  {'perm': ('pkg', 'add'), 'gate': 'cortex',
1352
1357
  'desc': 'Controls access to adding storm packages.'},
1353
1358
  {'perm': ('pkg', 'del'), 'gate': 'cortex',
@@ -1480,12 +1485,21 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
1480
1485
  await self.stormdmons.start()
1481
1486
  await self.agenda.clearRunningStatus()
1482
1487
 
1483
- for view in self.views.values():
1484
- await view.initTrigTask()
1485
- await view.initMergeTask()
1488
+ async def _runMigrations():
1489
+ # Run migrations when this cortex becomes active. This is to prevent
1490
+ # migrations getting skipped in a zero-downtime upgrade path
1491
+ # (upgrade mirror, promote mirror).
1492
+ await self._checkLayerModels()
1486
1493
 
1487
- for layer in self.layers.values():
1488
- await layer.initLayerActive()
1494
+ # Once migrations are complete, start the view and layer tasks.
1495
+ for view in self.views.values():
1496
+ await view.initTrigTask()
1497
+ await view.initMergeTask()
1498
+
1499
+ for layer in self.layers.values():
1500
+ await layer.initLayerActive()
1501
+
1502
+ self.runActiveTask(_runMigrations())
1489
1503
 
1490
1504
  await self.initStormPool()
1491
1505
 
@@ -3597,6 +3611,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
3597
3611
  break
3598
3612
 
3599
3613
  yield ioff, layr.iden, SYNC_NODEEDITS, item, meta
3614
+ await asyncio.sleep(0)
3600
3615
 
3601
3616
  if layr.isdeleted:
3602
3617
  yield layr.deloffs, layr.iden, SYNC_LAYR_DEL, (), {}
@@ -4363,7 +4378,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4363
4378
  return ret
4364
4379
 
4365
4380
  async def _checkLayerModels(self):
4366
- with self.enterMigrationMode():
4381
+ async with self.enterMigrationMode():
4367
4382
  mrev = s_modelrev.ModelRev(self)
4368
4383
  await mrev.revCoreLayers()
4369
4384
 
@@ -6098,11 +6113,12 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
6098
6113
  appt = await self.agenda.get(iden)
6099
6114
  await appt.edits(edits)
6100
6115
 
6101
- @contextlib.contextmanager
6102
- def enterMigrationMode(self):
6103
- self.migration = True
6104
- yield
6105
- self.migration = False
6116
+ @contextlib.asynccontextmanager
6117
+ async def enterMigrationMode(self):
6118
+ async with self._migration_lock:
6119
+ self.migration = True
6120
+ yield
6121
+ self.migration = False
6106
6122
 
6107
6123
  async def iterFormRows(self, layriden, form, stortype=None, startvalu=None):
6108
6124
  '''
@@ -831,6 +831,9 @@ class Agenda(s_base.Base):
831
831
  'view': appt.view,
832
832
  'mirror': appt.pool,
833
833
  'vars': {'auto': {'iden': appt.iden, 'type': 'cron'}},
834
+ '_loginfo': {
835
+ 'cron': appt.iden
836
+ }
834
837
  }
835
838
  opts = self.core._initStormOpts(opts)
836
839
 
@@ -807,7 +807,8 @@ class AhaCell(s_cell.Cell):
807
807
  async def _setAhaSvcDown(self, name, linkiden, network=None):
808
808
  svcname, svcnetw, svcfull = self._nameAndNetwork(name, network)
809
809
  path = ('aha', 'services', svcnetw, svcname)
810
- await self.jsonstor.cmpDelPathObjProp(path, 'svcinfo/online', linkiden)
810
+ if await self.jsonstor.cmpDelPathObjProp(path, 'svcinfo/online', linkiden):
811
+ await self.jsonstor.setPathObjProp(path, 'svcinfo/ready', False)
811
812
 
812
813
  # Check if we have any links which may need to be removed
813
814
  current_sessions = {s_common.guid(iden): sess for iden, sess in self.dmon.sessions.items()}
@@ -1295,14 +1295,20 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
1295
1295
 
1296
1296
  async def _onBootOptimize(self):
1297
1297
 
1298
+ bdir = s_common.genpath(self.dirn, 'backups')
1298
1299
  tdir = s_common.gendir(self.dirn, 'tmp')
1299
1300
  tdev = os.stat(tdir).st_dev
1300
1301
 
1302
+ logger.warning('Collecting LMDB files for onboot optimization.')
1303
+
1301
1304
  lmdbs = []
1302
1305
  for (root, dirs, files) in os.walk(self.dirn):
1303
1306
  for dirname in dirs:
1304
1307
  filepath = os.path.join(root, dirname, 'data.mdb')
1305
1308
  if os.path.isfile(filepath):
1309
+ if filepath.startswith(bdir):
1310
+ logger.debug(f'Skipping backup file {filepath}')
1311
+ continue
1306
1312
  if os.stat(filepath).st_dev != tdev:
1307
1313
  logger.warning(f'Unable to run onboot:optimize, {filepath} is not on the same volume as {tdir}')
1308
1314
  return
@@ -2891,24 +2897,10 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
2891
2897
  self.onfini(self.dmon.fini)
2892
2898
 
2893
2899
  async def _initCellHive(self):
2894
- isnew = not self.slab.dbexists('hive')
2895
-
2896
2900
  db = self.slab.initdb('hive')
2897
2901
  hive = await s_hive.SlabHive.anit(self.slab, db=db, nexsroot=self.getCellNexsRoot())
2898
2902
  self.onfini(hive)
2899
2903
 
2900
- if isnew:
2901
- path = os.path.join(self.dirn, 'hiveboot.yaml')
2902
- if os.path.isfile(path):
2903
- s_common.deprdate('Initial hive config from hiveboot.yaml', '2024-05-05')
2904
- logger.debug(f'Loading cell hive from {path}')
2905
- tree = s_common.yamlload(path)
2906
- if tree is not None:
2907
- # Pack and unpack the tree to avoid tuple/list issues
2908
- # for in-memory structures.
2909
- tree = s_common.tuplify(tree)
2910
- await hive.loadHiveTree(tree)
2911
-
2912
2904
  return hive
2913
2905
 
2914
2906
  async def _initCellSlab(self, readonly=False):
@@ -1354,6 +1354,9 @@ class ExtApiHandler(StormHandler):
1354
1354
  'user': useriden,
1355
1355
  'vars': varz,
1356
1356
  'view': adef.get('view'),
1357
+ '_loginfo': {
1358
+ 'httpapi': iden
1359
+ }
1357
1360
  }
1358
1361
 
1359
1362
  query = '\n'.join((self.storm_prefix, storm))
@@ -165,11 +165,13 @@ class LayerApi(s_cell.CellApi):
165
165
  await self._reqUserAllowed(self.liftperm)
166
166
  async for item in self.layr.syncNodeEdits(offs, wait=wait):
167
167
  yield item
168
+ await asyncio.sleep(0)
168
169
 
169
170
  async def syncNodeEdits2(self, offs, wait=True):
170
171
  await self._reqUserAllowed(self.liftperm)
171
172
  async for item in self.layr.syncNodeEdits2(offs, wait=wait):
172
173
  yield item
174
+ await asyncio.sleep(0)
173
175
 
174
176
  async def getEditIndx(self):
175
177
  '''
@@ -768,6 +768,12 @@ class ModelRev:
768
768
  Returns:
769
769
  None
770
770
  '''
771
+ if opts is None:
772
+ opts = {}
773
+
774
+ # Migrations only run on leaders
775
+ opts['mirror'] = False
776
+
771
777
  async def _runStorm():
772
778
  async for mesgtype, mesginfo in self.core.storm(text, opts=opts):
773
779
  if mesgtype == 'print':
@@ -28,4 +28,5 @@ coremods = (
28
28
  'synapse.models.biz.BizModule',
29
29
  'synapse.models.belief.BeliefModule',
30
30
  'synapse.models.science.ScienceModule',
31
+ 'synapse.models.planning.PlanModule',
31
32
  )
@@ -717,7 +717,9 @@ class Snap(s_base.Base):
717
717
 
718
718
  show_storage = False
719
719
 
720
- self.core._logStormQuery(text, user, info={'mode': opts.get('mode', 'storm'), 'view': self.view.iden})
720
+ info = opts.get('_loginfo', {})
721
+ info.update({'mode': opts.get('mode', 'storm'), 'view': self.view.iden})
722
+ self.core._logStormQuery(text, user, info=info)
721
723
 
722
724
  # { form: ( embedprop, ... ) }
723
725
  embeds = opts.get('embeds')
@@ -190,7 +190,7 @@ class AhaPool(s_stormtypes.StormType):
190
190
  'desc': 'The name of the AHA service to add. It is easiest to use the relative name of a service, ending with "...".', },
191
191
  ),
192
192
  'returns': {'type': 'null', }}},
193
- {'name': 'add', 'desc': '''Remove a service from the AHA pool.
193
+ {'name': 'del', 'desc': '''Remove a service from the AHA pool.
194
194
 
195
195
  Examples:
196
196
  Remove a service from a pool with its relative name::
@@ -203,7 +203,7 @@ class AhaPool(s_stormtypes.StormType):
203
203
  {'name': 'svcname', 'type': 'str',
204
204
  'desc': 'The name of the AHA service to remove. It is easiest to use the relative name of a service, ending with "...".', },
205
205
  ),
206
- 'returns': {'type': 'null', }}},
206
+ 'returns': {'type': ['null', 'str'], 'desc': 'The service removed from the pool or null if a service was not removed.'}}},
207
207
  )
208
208
  _storm_typename = 'aha:pool'
209
209
 
@@ -243,9 +243,20 @@ class AhaPool(s_stormtypes.StormType):
243
243
  proxy = await self.runt.snap.core.reqAhaProxy()
244
244
 
245
245
  poolname = self.poolinfo.get('name')
246
- await proxy.delAhaPoolSvc(poolname, svcname)
246
+ newinfo = await proxy.delAhaPoolSvc(poolname, svcname)
247
+
248
+ tname = svcname
249
+ if tname.endswith('...'):
250
+ tname = tname[:-2]
251
+ deleted_service = None
252
+ deleted_services = [svc for svc in self.poolinfo.get('services').keys()
253
+ if svc not in newinfo.get('services') and svc.startswith(tname)]
254
+ if deleted_services:
255
+ deleted_service = deleted_services[0]
256
+
257
+ self.poolinfo = newinfo
247
258
 
248
- self.poolinfo = await proxy.getAhaPool(poolname)
259
+ return deleted_service
249
260
 
250
261
  stormcmds = (
251
262
  {
@@ -319,8 +330,12 @@ stormcmds = (
319
330
  $pool = $lib.aha.pool.get($cmdopts.poolname)
320
331
  if (not $pool) { $lib.exit(`No AHA service pool named: {$cmdopts.poolname}`) }
321
332
 
322
- $pool.del($cmdopts.svcname)
323
- $lib.print(`AHA service ({$cmdopts.svcname}) removed from service pool ({$pool.name})`)
333
+ $svc = $pool.del($cmdopts.svcname)
334
+ if $svc {
335
+ $lib.print(`AHA service ({$svc}) removed from service pool ({$pool.name})`)
336
+ } else {
337
+ $lib.print(`Did not remove ({$cmdopts.svcname}) from the service pool.`)
338
+ }
324
339
  ''',
325
340
  },
326
341
  {
@@ -51,6 +51,14 @@ class LibEasyPerm(s_stormtypes.Lib):
51
51
  'desc': 'Optional error message to present if user does not have required permission level.'},
52
52
  ),
53
53
  'returns': {'type': 'null'}}},
54
+ {'name': 'level.admin', 'desc': 'Constant for admin permission.',
55
+ 'type': 'int', },
56
+ {'name': 'level.deny', 'desc': 'Constant for deny permission.',
57
+ 'type': 'int', },
58
+ {'name': 'level.edit', 'desc': 'Constant for edit permission.',
59
+ 'type': 'int', },
60
+ {'name': 'level.read', 'desc': 'Constant for read permission.',
61
+ 'type': 'int', },
54
62
  )
55
63
  _storm_lib_path = ('auth', 'easyperm')
56
64
 
@@ -1,6 +1,7 @@
1
1
  import synapse.exc as s_exc
2
2
  import synapse.common as s_common
3
3
 
4
+ import synapse.lib.node as s_node
4
5
  import synapse.lib.cache as s_cache
5
6
  import synapse.lib.stormtypes as s_stormtypes
6
7
 
@@ -692,3 +693,122 @@ class LibModelDeprecated(s_stormtypes.Lib):
692
693
  todo = s_common.todo('setDeprLock', name, locked)
693
694
  gatekeys = ((self.runt.user.iden, ('model', 'deprecated', 'lock'), None),)
694
695
  await self.runt.dyncall('cortex', todo, gatekeys=gatekeys)
696
+
697
+ @s_stormtypes.registry.registerLib
698
+ class LibModelMigration(s_stormtypes.Lib):
699
+ '''
700
+ A Storm library containing migration tools.
701
+ '''
702
+ _storm_locals = (
703
+ {'name': 'copyData', 'desc': 'Copy node data from the src node to the dst node.',
704
+ 'type': {'type': 'function', '_funcname': '_methCopyData',
705
+ 'args': (
706
+ {'name': 'src', 'type': 'node', 'desc': 'The node to copy data from.', },
707
+ {'name': 'dst', 'type': 'node', 'desc': 'The node to copy data to.', },
708
+ {'name': 'overwrite', 'type': 'boolean', 'default': False,
709
+ 'desc': 'Copy data even if the key exists on the destination node.', },
710
+ ),
711
+ 'returns': {'type': 'null', }}},
712
+ {'name': 'copyEdges', 'desc': 'Copy edges from the src node to the dst node.',
713
+ 'type': {'type': 'function', '_funcname': '_methCopyEdges',
714
+ 'args': (
715
+ {'name': 'src', 'type': 'node', 'desc': 'The node to copy edges from.', },
716
+ {'name': 'dst', 'type': 'node', 'desc': 'The node to copy edges to.', },
717
+ ),
718
+ 'returns': {'type': 'null', }}},
719
+ {'name': 'copyTags', 'desc': 'Copy tags, tag timestamps, and tag props from the src node to the dst node.',
720
+ 'type': {'type': 'function', '_funcname': '_methCopyTags',
721
+ 'args': (
722
+ {'name': 'src', 'type': 'node', 'desc': 'The node to copy tags from.', },
723
+ {'name': 'dst', 'type': 'node', 'desc': 'The node to copy tags to.', },
724
+ {'name': 'overwrite', 'type': 'boolean', 'default': False,
725
+ 'desc': 'Copy tag property value even if the property exists on the destination node.', },
726
+ ),
727
+ 'returns': {'type': 'null', }}},
728
+ )
729
+ _storm_lib_path = ('model', 'migration')
730
+
731
+ def getObjLocals(self):
732
+ return {
733
+ 'copyData': self._methCopyData,
734
+ 'copyEdges': self._methCopyEdges,
735
+ 'copyTags': self._methCopyTags,
736
+ }
737
+
738
+ async def _methCopyData(self, src, dst, overwrite=False):
739
+
740
+ if not isinstance(src, s_node.Node):
741
+ raise s_exc.BadArg(mesg='$lib.model.migration.copyData() source argument must be a node.')
742
+ if not isinstance(dst, s_node.Node):
743
+ raise s_exc.BadArg(mesg='$lib.model.migration.copyData() dest argument must be a node.')
744
+
745
+ overwrite = await s_stormtypes.tobool(overwrite)
746
+
747
+ async with self.runt.snap.getEditor() as editor:
748
+
749
+ proto = editor.loadNode(dst)
750
+
751
+ async for name in src.iterDataKeys():
752
+ if overwrite or not await dst.hasData(name):
753
+ self.runt.layerConfirm(('node', 'data', 'set', name))
754
+ valu = await src.getData(name)
755
+ await proto.setData(name, valu)
756
+
757
+ async def _methCopyEdges(self, src, dst):
758
+
759
+ if not isinstance(src, s_node.Node):
760
+ raise s_exc.BadArg(mesg='$lib.model.migration.copyEdges() source argument must be a node.')
761
+ if not isinstance(dst, s_node.Node):
762
+ raise s_exc.BadArg(mesg='$lib.model.migration.copyEdges() dest argument must be a node.')
763
+
764
+ snap = self.runt.snap
765
+
766
+ async with snap.getEditor() as editor:
767
+
768
+ proto = editor.loadNode(dst)
769
+ verbs = set()
770
+
771
+ async for (verb, n2iden) in src.iterEdgesN1():
772
+
773
+ if verb not in verbs:
774
+ self.runt.layerConfirm(('node', 'edge', 'add', verb))
775
+ verbs.add(verb)
776
+
777
+ if await snap.getNodeByBuid(s_common.uhex(n2iden)) is not None:
778
+ await proto.addEdge(verb, n2iden)
779
+
780
+ dstiden = s_common.ehex(dst.buid)
781
+
782
+ async for (verb, n1iden) in src.iterEdgesN2():
783
+
784
+ if verb not in verbs:
785
+ self.runt.layerConfirm(('node', 'edge', 'add', verb))
786
+ verbs.add(verb)
787
+
788
+ n1proto = await editor.getNodeByBuid(s_common.uhex(n1iden))
789
+ if n1proto is not None:
790
+ await n1proto.addEdge(verb, dstiden)
791
+
792
+ async def _methCopyTags(self, src, dst, overwrite=False):
793
+
794
+ if not isinstance(src, s_node.Node):
795
+ raise s_exc.BadArg(mesg='$lib.model.migration.copyTags() source argument must be a node.')
796
+ if not isinstance(dst, s_node.Node):
797
+ raise s_exc.BadArg(mesg='$lib.model.migration.copyTags() dest argument must be a node.')
798
+
799
+ overwrite = await s_stormtypes.tobool(overwrite)
800
+
801
+ snap = self.runt.snap
802
+
803
+ async with snap.getEditor() as editor:
804
+
805
+ proto = editor.loadNode(dst)
806
+
807
+ for name, valu in src.tags.items():
808
+ self.runt.layerConfirm(('node', 'tag', 'add', *name.split('.')))
809
+ await proto.addTag(name, valu=valu)
810
+
811
+ for tagname, tagprops in src.tagprops.items():
812
+ for propname, valu in tagprops.items():
813
+ if overwrite or not dst.hasTagProp(tagname, propname):
814
+ await proto.setTagProp(tagname, propname, valu) # use tag perms
@@ -1604,8 +1604,12 @@ class LibBase(Lib):
1604
1604
  continue
1605
1605
  vals.append(arg)
1606
1606
 
1607
+ if len(vals) < 1:
1608
+ mesg = '$lib.min() must have at least one argument or a list containing at least one value.'
1609
+ raise s_exc.StormRuntimeError(mesg=mesg)
1610
+
1607
1611
  ints = [await toint(x) for x in vals]
1608
- return min(*ints)
1612
+ return min(ints)
1609
1613
 
1610
1614
  @stormfunc(readonly=True)
1611
1615
  async def _max(self, *args):
@@ -1618,8 +1622,12 @@ class LibBase(Lib):
1618
1622
  continue
1619
1623
  vals.append(arg)
1620
1624
 
1625
+ if len(vals) < 1:
1626
+ mesg = '$lib.max() must have at least one argument or a list containing at least one value.'
1627
+ raise s_exc.StormRuntimeError(mesg=mesg)
1628
+
1621
1629
  ints = [await toint(x) for x in vals]
1622
- return max(*ints)
1630
+ return max(ints)
1623
1631
 
1624
1632
  @staticmethod
1625
1633
  async def _get_mesg(mesg, **kwargs):
@@ -1707,6 +1715,13 @@ class LibDict(Lib):
1707
1715
  A Storm Library for interacting with dictionaries.
1708
1716
  '''
1709
1717
  _storm_locals = (
1718
+ {'name': 'has', 'desc': 'Check a dictionary has a specific key.',
1719
+ 'type': {'type': 'function', '_funcname': '_has',
1720
+ 'args': (
1721
+ {'name': 'valu', 'type': 'dict', 'desc': 'The dictionary being checked.'},
1722
+ {'name': 'name', 'type': 'str', 'desc': 'The key name to check.'},
1723
+ ),
1724
+ 'returns': {'type': 'boolean', 'desc': 'True if the key is present, false if the key is not present.'}}},
1710
1725
  {'name': 'keys', 'desc': 'Retrieve a list of keys in the specified dictionary.',
1711
1726
  'type': {'type': 'function', '_funcname': '_keys',
1712
1727
  'args': (
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
223
223
  ##############################################################################
224
224
  # The following are touched during the release process by bumpversion.
225
225
  # Do not modify these directly.
226
- version = (2, 167, 0)
226
+ version = (2, 169, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = '7b2983533ea27d69e547ac54d9aab953630137c2'
228
+ commit = '41421efcf40bb7655af3f90cb7d6d335247fc726'
@@ -55,6 +55,7 @@ class ViewApi(s_cell.CellApi):
55
55
  layr = self.view.layers[0]
56
56
  async for item in layr.syncNodeEdits2(offs, wait=wait):
57
57
  yield item
58
+ await asyncio.sleep(0)
58
59
 
59
60
  @s_cell.adminapi()
60
61
  async def saveNodeEdits(self, edits, meta):
@@ -867,20 +868,16 @@ class View(s_nexus.Pusher): # type: ignore
867
868
 
868
869
  self.layers.append(layr)
869
870
 
870
- async def eval(self, text, opts=None, log_info=None):
871
+ async def eval(self, text, opts=None):
871
872
  '''
872
873
  Evaluate a storm query and yield Nodes only.
873
874
  '''
874
875
  opts = self.core._initStormOpts(opts)
875
876
  user = self.core._userFromOpts(opts)
876
877
 
877
- if log_info is None:
878
- log_info = {}
879
-
880
- log_info['mode'] = opts.get('mode', 'storm')
881
- log_info['view'] = self.iden
882
-
883
- self.core._logStormQuery(text, user, info=log_info)
878
+ info = opts.get('_loginfo', {})
879
+ info.update({'mode': opts.get('mode', 'storm'), 'view': self.iden})
880
+ self.core._logStormQuery(text, user, info=info)
884
881
 
885
882
  taskiden = opts.get('task')
886
883
  taskinfo = {'query': text, 'view': self.iden}
@@ -996,8 +993,9 @@ class View(s_nexus.Pusher): # type: ignore
996
993
  count += 1
997
994
 
998
995
  else:
999
- self.core._logStormQuery(text, user,
1000
- info={'mode': opts.get('mode', 'storm'), 'view': self.iden})
996
+ info = opts.get('_loginfo', {})
997
+ info.update({'mode': opts.get('mode', 'storm'), 'view': self.iden})
998
+ self.core._logStormQuery(text, user, info=info)
1001
999
  async for item in snap.storm(text, opts=opts, user=user):
1002
1000
  count += 1
1003
1001