synapse 2.175.0__tar.gz → 2.176.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 (583) hide show
  1. {synapse-2.175.0/synapse.egg-info → synapse-2.176.0}/PKG-INFO +1 -1
  2. {synapse-2.175.0 → synapse-2.176.0}/pyproject.toml +1 -1
  3. {synapse-2.175.0 → synapse-2.176.0}/synapse/cortex.py +1 -0
  4. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/ast.py +6 -5
  5. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/storm.py +9 -4
  6. synapse-2.176.0/synapse/lib/stormlib/storm.py +178 -0
  7. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/version.py +2 -2
  8. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/inet.py +23 -0
  9. synapse-2.176.0/synapse/tests/test_lib_stormlib_storm.py +144 -0
  10. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_inet.py +31 -0
  11. {synapse-2.175.0 → synapse-2.176.0/synapse.egg-info}/PKG-INFO +1 -1
  12. synapse-2.175.0/synapse/lib/stormlib/storm.py +0 -66
  13. synapse-2.175.0/synapse/tests/test_lib_stormlib_storm.py +0 -63
  14. {synapse-2.175.0 → synapse-2.176.0}/LICENSE +0 -0
  15. {synapse-2.175.0 → synapse-2.176.0}/README.rst +0 -0
  16. {synapse-2.175.0 → synapse-2.176.0}/setup.cfg +0 -0
  17. {synapse-2.175.0 → synapse-2.176.0}/synapse/__init__.py +0 -0
  18. {synapse-2.175.0 → synapse-2.176.0}/synapse/axon.py +0 -0
  19. {synapse-2.175.0 → synapse-2.176.0}/synapse/cells.py +0 -0
  20. {synapse-2.175.0 → synapse-2.176.0}/synapse/cmds/__init__.py +0 -0
  21. {synapse-2.175.0 → synapse-2.176.0}/synapse/cmds/boss.py +0 -0
  22. {synapse-2.175.0 → synapse-2.176.0}/synapse/cmds/cortex.py +0 -0
  23. {synapse-2.175.0 → synapse-2.176.0}/synapse/cmds/hive.py +0 -0
  24. {synapse-2.175.0 → synapse-2.176.0}/synapse/common.py +0 -0
  25. {synapse-2.175.0 → synapse-2.176.0}/synapse/cryotank.py +0 -0
  26. {synapse-2.175.0 → synapse-2.176.0}/synapse/daemon.py +0 -0
  27. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/__init__.py +0 -0
  28. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  29. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/attack-flow/README.md +0 -0
  30. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  31. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  32. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  33. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  34. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  35. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/iana.tlds.mpk +0 -0
  36. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/README.md +0 -0
  37. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  38. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  39. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  40. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  41. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  42. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  43. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  44. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  45. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  46. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  47. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  48. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  49. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  50. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  51. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  52. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  53. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  54. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  55. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  56. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  57. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  58. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  59. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  60. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  61. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  62. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  63. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  64. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  65. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  66. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  67. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  68. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  69. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  70. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  71. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  72. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  73. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  74. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  75. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  76. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  77. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  78. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  79. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  80. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  81. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  82. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  83. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  84. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  85. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  86. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  87. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  88. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  89. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  90. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  91. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  92. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  93. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  94. {synapse-2.175.0 → synapse-2.176.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  95. {synapse-2.175.0 → synapse-2.176.0}/synapse/datamodel.py +0 -0
  96. {synapse-2.175.0 → synapse-2.176.0}/synapse/exc.py +0 -0
  97. {synapse-2.175.0 → synapse-2.176.0}/synapse/glob.py +0 -0
  98. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/__init__.py +0 -0
  99. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/agenda.py +0 -0
  100. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/aha.py +0 -0
  101. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/autodoc.py +0 -0
  102. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/base.py +0 -0
  103. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/boss.py +0 -0
  104. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/cache.py +0 -0
  105. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/cell.py +0 -0
  106. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/certdir.py +0 -0
  107. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/chop.py +0 -0
  108. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/cli.py +0 -0
  109. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/cmd.py +0 -0
  110. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/cmdr.py +0 -0
  111. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/config.py +0 -0
  112. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/const.py +0 -0
  113. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/coro.py +0 -0
  114. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/crypto/__init__.py +0 -0
  115. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/crypto/coin.py +0 -0
  116. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/crypto/ecc.py +0 -0
  117. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/crypto/passwd.py +0 -0
  118. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/crypto/rsa.py +0 -0
  119. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/crypto/tinfoil.py +0 -0
  120. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/datfile.py +0 -0
  121. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/dyndeps.py +0 -0
  122. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/encoding.py +0 -0
  123. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/gis.py +0 -0
  124. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/grammar.py +0 -0
  125. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/hashitem.py +0 -0
  126. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/hashset.py +0 -0
  127. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/health.py +0 -0
  128. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/hive.py +0 -0
  129. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/hiveauth.py +0 -0
  130. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/httpapi.py +0 -0
  131. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/ingest.py +0 -0
  132. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/interval.py +0 -0
  133. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/jsonstor.py +0 -0
  134. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/jupyter.py +0 -0
  135. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/layer.py +0 -0
  136. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/link.py +0 -0
  137. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/lmdbslab.py +0 -0
  138. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/modelrev.py +0 -0
  139. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/module.py +0 -0
  140. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/modules.py +0 -0
  141. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/msgpack.py +0 -0
  142. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/multislabseqn.py +0 -0
  143. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/nexus.py +0 -0
  144. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/node.py +0 -0
  145. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/oauth.py +0 -0
  146. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/output.py +0 -0
  147. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/parser.py +0 -0
  148. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/platforms/__init__.py +0 -0
  149. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/platforms/common.py +0 -0
  150. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/platforms/darwin.py +0 -0
  151. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/platforms/freebsd.py +0 -0
  152. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/platforms/linux.py +0 -0
  153. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/platforms/windows.py +0 -0
  154. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/queue.py +0 -0
  155. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/ratelimit.py +0 -0
  156. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/reflect.py +0 -0
  157. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/rstorm.py +0 -0
  158. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/schemas.py +0 -0
  159. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/scope.py +0 -0
  160. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/scrape.py +0 -0
  161. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/share.py +0 -0
  162. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/slaboffs.py +0 -0
  163. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/slabseqn.py +0 -0
  164. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/snap.py +0 -0
  165. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/spooled.py +0 -0
  166. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/storm.lark +0 -0
  167. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/storm_format.py +0 -0
  168. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormctrl.py +0 -0
  169. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormhttp.py +0 -0
  170. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/__init__.py +0 -0
  171. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/aha.py +0 -0
  172. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/auth.py +0 -0
  173. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/backup.py +0 -0
  174. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/basex.py +0 -0
  175. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/cache.py +0 -0
  176. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/cell.py +0 -0
  177. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/compression.py +0 -0
  178. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/cortex.py +0 -0
  179. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/easyperm.py +0 -0
  180. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/env.py +0 -0
  181. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/ethereum.py +0 -0
  182. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/gen.py +0 -0
  183. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/gis.py +0 -0
  184. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/graph.py +0 -0
  185. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/hashes.py +0 -0
  186. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/hex.py +0 -0
  187. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/imap.py +0 -0
  188. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/infosec.py +0 -0
  189. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/ipv6.py +0 -0
  190. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/iters.py +0 -0
  191. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/json.py +0 -0
  192. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/log.py +0 -0
  193. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/macro.py +0 -0
  194. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/math.py +0 -0
  195. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/mime.py +0 -0
  196. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/model.py +0 -0
  197. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/modelext.py +0 -0
  198. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/notifications.py +0 -0
  199. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/oauth.py +0 -0
  200. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/pack.py +0 -0
  201. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/project.py +0 -0
  202. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/random.py +0 -0
  203. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/scrape.py +0 -0
  204. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/smtp.py +0 -0
  205. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/spooled.py +0 -0
  206. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/stats.py +0 -0
  207. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/stix.py +0 -0
  208. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/vault.py +0 -0
  209. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/version.py +0 -0
  210. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/xml.py +0 -0
  211. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormlib/yaml.py +0 -0
  212. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormsvc.py +0 -0
  213. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormtypes.py +0 -0
  214. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/stormwhois.py +0 -0
  215. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/structlog.py +0 -0
  216. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/task.py +0 -0
  217. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/thishost.py +0 -0
  218. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/thisplat.py +0 -0
  219. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/threads.py +0 -0
  220. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/time.py +0 -0
  221. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/trigger.py +0 -0
  222. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/types.py +0 -0
  223. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/urlhelp.py +0 -0
  224. {synapse-2.175.0 → synapse-2.176.0}/synapse/lib/view.py +0 -0
  225. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/__init__.py +0 -0
  226. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/cvss.py +0 -0
  227. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/iana.py +0 -0
  228. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/iso3166.py +0 -0
  229. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/macho.py +0 -0
  230. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/pe.py +0 -0
  231. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/phonenum.py +0 -0
  232. {synapse-2.175.0 → synapse-2.176.0}/synapse/lookup/timezones.py +0 -0
  233. {synapse-2.175.0 → synapse-2.176.0}/synapse/mindmeld.py +0 -0
  234. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/__init__.py +0 -0
  235. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/auth.py +0 -0
  236. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/base.py +0 -0
  237. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/belief.py +0 -0
  238. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/biz.py +0 -0
  239. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/crypto.py +0 -0
  240. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/dns.py +0 -0
  241. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/economic.py +0 -0
  242. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/entity.py +0 -0
  243. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/files.py +0 -0
  244. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/geopol.py +0 -0
  245. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/geospace.py +0 -0
  246. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/gov/__init__.py +0 -0
  247. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/gov/cn.py +0 -0
  248. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/gov/intl.py +0 -0
  249. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/gov/us.py +0 -0
  250. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/infotech.py +0 -0
  251. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/language.py +0 -0
  252. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/material.py +0 -0
  253. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/media.py +0 -0
  254. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/orgs.py +0 -0
  255. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/person.py +0 -0
  256. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/planning.py +0 -0
  257. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/proj.py +0 -0
  258. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/risk.py +0 -0
  259. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/science.py +0 -0
  260. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/syn.py +0 -0
  261. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/telco.py +0 -0
  262. {synapse-2.175.0 → synapse-2.176.0}/synapse/models/transport.py +0 -0
  263. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/__init__.py +0 -0
  264. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/aha.py +0 -0
  265. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/axon.py +0 -0
  266. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/cell.py +0 -0
  267. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/cortex.py +0 -0
  268. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/cryotank.py +0 -0
  269. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/jsonstor.py +0 -0
  270. {synapse-2.175.0 → synapse-2.176.0}/synapse/servers/stemcell.py +0 -0
  271. {synapse-2.175.0 → synapse-2.176.0}/synapse/telepath.py +0 -0
  272. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/__init__.py +0 -0
  273. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  274. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/__init__.py +0 -0
  275. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  276. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  277. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  278. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  279. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  280. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  281. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  282. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/users/root.key +0 -0
  283. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  284. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/certdir/users/user.key +0 -0
  285. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/cpedata.json +0 -0
  286. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  287. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  288. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  289. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  290. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  291. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stix_export/basic.json +0 -0
  292. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  293. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  294. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  295. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  296. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  297. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  298. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  299. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  300. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  301. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  302. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormmod/common +0 -0
  303. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  304. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  305. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  306. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  307. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  308. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  309. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  310. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  311. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  312. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  313. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  314. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  315. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  316. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  317. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  318. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  319. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  320. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  321. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  322. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  323. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  324. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  325. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  326. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/test.dat +0 -0
  327. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  328. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/nopmod.py +0 -0
  329. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_axon.py +0 -0
  330. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_cmds_boss.py +0 -0
  331. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_cmds_cortex.py +0 -0
  332. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_cmds_hive.py +0 -0
  333. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_common.py +0 -0
  334. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_cortex.py +0 -0
  335. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_cryotank.py +0 -0
  336. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_daemon.py +0 -0
  337. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_data.py +0 -0
  338. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_datamodel.py +0 -0
  339. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_exc.py +0 -0
  340. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_glob.py +0 -0
  341. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_init.py +0 -0
  342. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_agenda.py +0 -0
  343. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_aha.py +0 -0
  344. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_ast.py +0 -0
  345. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_autodoc.py +0 -0
  346. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_base.py +0 -0
  347. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_boss.py +0 -0
  348. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_cache.py +0 -0
  349. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_cell.py +0 -0
  350. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_certdir.py +0 -0
  351. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_chop.py +0 -0
  352. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_cli.py +0 -0
  353. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_config.py +0 -0
  354. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_const.py +0 -0
  355. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_coro.py +0 -0
  356. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  357. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  358. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  359. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  360. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_datfile.py +0 -0
  361. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  362. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_encoding.py +0 -0
  363. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_gis.py +0 -0
  364. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_grammar.py +0 -0
  365. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_hashitem.py +0 -0
  366. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_hashset.py +0 -0
  367. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_health.py +0 -0
  368. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_hive.py +0 -0
  369. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_hiveauth.py +0 -0
  370. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_httpapi.py +0 -0
  371. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_interval.py +0 -0
  372. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  373. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_jupyter.py +0 -0
  374. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_layer.py +0 -0
  375. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_link.py +0 -0
  376. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  377. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_modelrev.py +0 -0
  378. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_module.py +0 -0
  379. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_msgpack.py +0 -0
  380. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  381. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_nexus.py +0 -0
  382. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_node.py +0 -0
  383. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_output.py +0 -0
  384. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  385. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_queue.py +0 -0
  386. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  387. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_reflect.py +0 -0
  388. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_rstorm.py +0 -0
  389. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_scope.py +0 -0
  390. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_scrape.py +0 -0
  391. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  392. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  393. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_snap.py +0 -0
  394. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_spooled.py +0 -0
  395. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_storm.py +0 -0
  396. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_storm_format.py +0 -0
  397. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  398. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  399. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  400. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  401. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  402. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  403. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  404. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  405. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  406. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  407. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  408. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  409. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  410. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  411. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  412. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  413. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  414. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  415. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  416. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  417. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  418. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  419. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  420. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  421. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  422. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_modelext.py +0 -0
  423. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  424. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  425. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  426. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  427. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  428. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  429. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  430. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_stix.py +0 -0
  431. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  432. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  433. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  434. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  435. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  436. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_stormwhois.py +0 -0
  437. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_structlog.py +0 -0
  438. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_task.py +0 -0
  439. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_thishost.py +0 -0
  440. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_time.py +0 -0
  441. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_trigger.py +0 -0
  442. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_types.py +0 -0
  443. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  444. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_version.py +0 -0
  445. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lib_view.py +0 -0
  446. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  447. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  448. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_mindmeld.py +0 -0
  449. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_auth.py +0 -0
  450. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_base.py +0 -0
  451. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_belief.py +0 -0
  452. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_biz.py +0 -0
  453. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_crypto.py +0 -0
  454. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_dns.py +0 -0
  455. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_economic.py +0 -0
  456. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_files.py +0 -0
  457. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_geopol.py +0 -0
  458. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_geospace.py +0 -0
  459. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_gov_cn.py +0 -0
  460. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_gov_intl.py +0 -0
  461. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_gov_us.py +0 -0
  462. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_infotech.py +0 -0
  463. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_language.py +0 -0
  464. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_material.py +0 -0
  465. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_media.py +0 -0
  466. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_orgs.py +0 -0
  467. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_person.py +0 -0
  468. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_planning.py +0 -0
  469. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_proj.py +0 -0
  470. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_risk.py +0 -0
  471. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_science.py +0 -0
  472. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_syn.py +0 -0
  473. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_telco.py +0 -0
  474. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_model_transport.py +0 -0
  475. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_servers_axon.py +0 -0
  476. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_servers_cortex.py +0 -0
  477. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_servers_cryotank.py +0 -0
  478. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_servers_stemcell.py +0 -0
  479. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_servers_univ.py +0 -0
  480. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_telepath.py +0 -0
  481. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_aha.py +0 -0
  482. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_autodoc.py +0 -0
  483. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  484. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_backup.py +0 -0
  485. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_cellauth.py +0 -0
  486. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  487. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  488. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_csvtool.py +0 -0
  489. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  490. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_easycert.py +0 -0
  491. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_feed.py +0 -0
  492. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_genpkg.py +0 -0
  493. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_guid.py +0 -0
  494. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  495. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_hiveload.py +0 -0
  496. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_hivesave.py +0 -0
  497. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  498. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_livebackup.py +0 -0
  499. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_modrole.py +0 -0
  500. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_moduser.py +0 -0
  501. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_pullfile.py +0 -0
  502. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_pushfile.py +0 -0
  503. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_reload.py +0 -0
  504. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_rstorm.py +0 -0
  505. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_tools_storm.py +0 -0
  506. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_utils.py +0 -0
  507. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_utils_getrefs.py +0 -0
  508. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/test_utils_stormcov.py +0 -0
  509. {synapse-2.175.0 → synapse-2.176.0}/synapse/tests/utils.py +0 -0
  510. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/__init__.py +0 -0
  511. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/__init__.py +0 -0
  512. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/easycert.py +0 -0
  513. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/enroll.py +0 -0
  514. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/list.py +0 -0
  515. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/provision/__init__.py +0 -0
  516. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/provision/service.py +0 -0
  517. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/aha/provision/user.py +0 -0
  518. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/autodoc.py +0 -0
  519. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/axon2axon.py +0 -0
  520. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/backup.py +0 -0
  521. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/cellauth.py +0 -0
  522. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/changelog.py +0 -0
  523. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/cmdr.py +0 -0
  524. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/cryo/__init__.py +0 -0
  525. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/cryo/cat.py +0 -0
  526. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/cryo/list.py +0 -0
  527. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/csvtool.py +0 -0
  528. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/docker/__init__.py +0 -0
  529. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/docker/validate.py +0 -0
  530. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/easycert.py +0 -0
  531. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/feed.py +0 -0
  532. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/genpkg.py +0 -0
  533. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/guid.py +0 -0
  534. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/healthcheck.py +0 -0
  535. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/hive/__init__.py +0 -0
  536. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/hive/load.py +0 -0
  537. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/hive/save.py +0 -0
  538. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/json2mpk.py +0 -0
  539. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/livebackup.py +0 -0
  540. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/modrole.py +0 -0
  541. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/moduser.py +0 -0
  542. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/promote.py +0 -0
  543. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/pullfile.py +0 -0
  544. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/pushfile.py +0 -0
  545. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/reload.py +0 -0
  546. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/rstorm.py +0 -0
  547. {synapse-2.175.0 → synapse-2.176.0}/synapse/tools/storm.py +0 -0
  548. {synapse-2.175.0 → synapse-2.176.0}/synapse/utils/__init__.py +0 -0
  549. {synapse-2.175.0 → synapse-2.176.0}/synapse/utils/getrefs.py +0 -0
  550. {synapse-2.175.0 → synapse-2.176.0}/synapse/utils/stormcov/__init__.py +0 -0
  551. {synapse-2.175.0 → synapse-2.176.0}/synapse/utils/stormcov/plugin.py +0 -0
  552. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/__init__.py +0 -0
  553. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  554. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  555. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/base58.py +0 -0
  556. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/convert.py +0 -0
  557. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  558. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  559. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  560. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  561. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  562. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  563. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  564. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  565. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  566. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/utils.py +0 -0
  567. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/LICENSE +0 -0
  568. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/__init__.py +0 -0
  569. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/constants.py +0 -0
  570. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  571. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  572. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  573. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  574. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  575. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  576. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  577. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  578. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  579. {synapse-2.175.0 → synapse-2.176.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  580. {synapse-2.175.0 → synapse-2.176.0}/synapse.egg-info/SOURCES.txt +0 -0
  581. {synapse-2.175.0 → synapse-2.176.0}/synapse.egg-info/dependency_links.txt +0 -0
  582. {synapse-2.175.0 → synapse-2.176.0}/synapse.egg-info/requires.txt +0 -0
  583. {synapse-2.175.0 → synapse-2.176.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.175.0
3
+ Version: 2.176.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.175.0'
7
+ version = '2.176.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -4027,6 +4027,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
4027
4027
  self.addStormCmd(s_storm.MoveNodesCmd)
4028
4028
  self.addStormCmd(s_storm.BackgroundCmd)
4029
4029
  self.addStormCmd(s_stormlib_macro.MacroExecCmd)
4030
+ self.addStormCmd(s_stormlib_storm.StormExecCmd)
4030
4031
  self.addStormCmd(s_stormlib_stats.StatsCountByCmd)
4031
4032
  self.addStormCmd(s_stormlib_cortex.StormPoolDelCmd)
4032
4033
  self.addStormCmd(s_stormlib_cortex.StormPoolGetCmd)
@@ -284,7 +284,7 @@ class Search(Query):
284
284
  view = runt.snap.view
285
285
 
286
286
  if not view.core.stormiface_search:
287
- await runt.snap.warn('Storm search interface is not enabled!')
287
+ await runt.snap.warn('Storm search interface is not enabled!', log=False)
288
288
  return
289
289
 
290
290
  async def searchgenr():
@@ -2389,7 +2389,7 @@ class FormPivot(PivotOper):
2389
2389
  items = e.items()
2390
2390
  mesg = items.pop('mesg', '')
2391
2391
  mesg = ': '.join((f'{e.__class__.__qualname__} [{repr(node.ndef[1])}] during pivot', mesg))
2392
- await runt.snap.warn(mesg, **items)
2392
+ await runt.snap.warn(mesg, log=False, **items)
2393
2393
 
2394
2394
  class PropPivotOut(PivotOper):
2395
2395
  '''
@@ -2428,7 +2428,7 @@ class PropPivotOut(PivotOper):
2428
2428
  if runt.model.forms.get(fname) is None:
2429
2429
  if not warned:
2430
2430
  mesg = f'The source property "{name}" array type "{fname}" is not a form. Cannot pivot.'
2431
- await runt.snap.warn(mesg)
2431
+ await runt.snap.warn(mesg, log=False)
2432
2432
  warned = True
2433
2433
  continue
2434
2434
 
@@ -2452,7 +2452,8 @@ class PropPivotOut(PivotOper):
2452
2452
  fname = prop.type.name
2453
2453
  if prop.modl.form(fname) is None:
2454
2454
  if warned is False:
2455
- await runt.snap.warn(f'The source property "{name}" type "{fname}" is not a form. Cannot pivot.')
2455
+ await runt.snap.warn(f'The source property "{name}" type "{fname}" is not a form. Cannot pivot.',
2456
+ log=False)
2456
2457
  warned = True
2457
2458
  continue
2458
2459
 
@@ -2574,7 +2575,7 @@ class PropPivot(PivotOper):
2574
2575
  items = e.items()
2575
2576
  mesg = items.pop('mesg', '')
2576
2577
  mesg = ': '.join((f'{e.__class__.__qualname__} [{repr(valu)}] during pivot', mesg))
2577
- await runt.snap.warn(mesg, **items)
2578
+ await runt.snap.warn(mesg, log=False, **items)
2578
2579
 
2579
2580
  class Value(AstNode):
2580
2581
  '''
@@ -1874,6 +1874,14 @@ class Runtime(s_base.Base):
1874
1874
  valu.incref()
1875
1875
  self.vars.update(varz)
1876
1876
 
1877
+ self._initRuntVars(query)
1878
+
1879
+ self.proxies = {}
1880
+
1881
+ self.onfini(self._onRuntFini)
1882
+
1883
+ def _initRuntVars(self, query):
1884
+
1877
1885
  # declare path builtins as non-runtsafe
1878
1886
  self.runtvars = {
1879
1887
  'node': False,
@@ -1882,17 +1890,14 @@ class Runtime(s_base.Base):
1882
1890
 
1883
1891
  # inherit runtsafe vars from our root
1884
1892
  if self.root is not None:
1885
- self.runtvars.update(root.runtvars)
1893
+ self.runtvars.update(self.root.runtvars)
1886
1894
  self.runtvars.update({k: True for k in self.root.getScopeVars().keys()})
1887
1895
 
1888
1896
  # all vars/ctors are de-facto runtsafe
1889
1897
  self.runtvars.update({k: True for k in self.vars.keys()})
1890
1898
  self.runtvars.update({k: True for k in self.ctors.keys()})
1891
1899
 
1892
- self.proxies = {}
1893
-
1894
1900
  self._loadRuntVars(query)
1895
- self.onfini(self._onRuntFini)
1896
1901
 
1897
1902
  def getScopeVars(self):
1898
1903
  '''
@@ -0,0 +1,178 @@
1
+ import logging
2
+
3
+ import synapse.exc as s_exc
4
+ import synapse.common as s_common
5
+
6
+ import synapse.lib.storm as s_storm
7
+ import synapse.lib.stormtypes as s_stormtypes
8
+
9
+ evaldesc = '''\
10
+ Evaluate a Storm runtime value and optionally cast/coerce it.
11
+
12
+ Note:
13
+ If Storm logging is enabled, the expression being evaluated will be logged
14
+ separately.
15
+ '''
16
+
17
+ rundesc = '''
18
+ Run a Storm query and yield the messages output by the Storm interpreter.
19
+
20
+ Note:
21
+ If Storm logging is enabled, the query being run will be logged separately.
22
+ '''
23
+
24
+ stormlogger = logging.getLogger('synapse.storm')
25
+
26
+ class StormExecCmd(s_storm.Cmd):
27
+ '''
28
+ Execute text or an embedded query object as Storm in the current pipeline.
29
+
30
+ NOTE: It is recommended to avoid using this where possible to avoid potential
31
+ query injection risks. If you must use this, take care to ensure any values
32
+ being executed have been properly sanitized.
33
+
34
+ Examples:
35
+
36
+ // Add nodes using text in a variable
37
+ $query = '[ inet:fqdn=foo.com inet:fqdn=bar.net ]'
38
+ storm.exec $query
39
+
40
+ // Filter nodes in the pipeline using text in a variable
41
+ $filter = '-:asn=10'
42
+ inet:ipv4:asn
43
+ storm.exec $filter
44
+
45
+ // Pivot using an embedded query
46
+ $pivot = ${ -> inet:asn }
47
+ inet:ipv4:asn
48
+ storm.exec $pivot
49
+ '''
50
+ name = 'storm.exec'
51
+ def getArgParser(self):
52
+ pars = s_storm.Cmd.getArgParser(self)
53
+ pars.add_argument('query', help='The Storm to execute.')
54
+ return pars
55
+
56
+ async def execStormCmd(self, runt, genr):
57
+
58
+ if self.runtsafe:
59
+
60
+ text = await s_stormtypes.tostr(self.opts.query)
61
+ query = await runt.getStormQuery(text)
62
+
63
+ extra = await self.runt.snap.core.getLogExtra(text=text, view=self.runt.snap.view.iden)
64
+ stormlogger.info(f'Executing storm query via storm.exec {{{text}}} as [{self.runt.user.name}]', extra=extra)
65
+
66
+ async with runt.getSubRuntime(query) as subr:
67
+ async for subp in subr.execute(genr=genr):
68
+ yield subp
69
+
70
+ else:
71
+
72
+ item = None
73
+ async for item in genr:
74
+ break
75
+
76
+ text = await s_stormtypes.tostr(self.opts.query)
77
+ query = await runt.getStormQuery(text)
78
+
79
+ extra = await self.runt.snap.core.getLogExtra(text=text, view=self.runt.snap.view.iden)
80
+ stormlogger.info(f'Executing storm query via storm.exec {{{text}}} as [{self.runt.user.name}]', extra=extra)
81
+
82
+ async with runt.getSubRuntime(query) as subr:
83
+ async for subp in subr.execute(genr=s_common.agen(item)):
84
+ yield subp
85
+
86
+ async for item in genr:
87
+ text = await s_stormtypes.tostr(self.opts.query)
88
+ query = await runt.getStormQuery(text)
89
+
90
+ subr.runtvars.clear()
91
+ subr.query = query
92
+ subr._initRuntVars(query)
93
+
94
+ extra = await self.runt.snap.core.getLogExtra(text=text, view=self.runt.snap.view.iden)
95
+ stormlogger.info(f'Executing storm query via storm.exec {{{text}}} as [{self.runt.user.name}]', extra=extra)
96
+
97
+ async for subp in subr.execute(genr=s_common.agen(item)):
98
+ yield subp
99
+
100
+ @s_stormtypes.registry.registerLib
101
+ class LibStorm(s_stormtypes.Lib):
102
+ '''
103
+ A Storm library for evaluating dynamic storm expressions.
104
+ '''
105
+ _storm_locals = (
106
+ {'name': 'eval', 'desc': evaldesc,
107
+ 'type': {'type': 'function', '_funcname': '_evalStorm',
108
+ 'args': (
109
+ {'name': 'text', 'type': 'str', 'desc': 'A storm expression string.'},
110
+ {'name': 'cast', 'type': 'str', 'desc': 'A type to cast the result to.', 'default': None},
111
+ ),
112
+ 'returns': {'type': 'any', 'desc': 'The value of the expression and optional cast.'}}},
113
+ {'name': 'run', 'desc': rundesc,
114
+ 'type': {'type': 'function', '_funcname': '_runStorm',
115
+ 'args': (
116
+ {'name': 'query', 'type': 'str', 'desc': 'A Storm query string.'},
117
+ {'name': 'opts', 'type': 'dict', 'desc': 'Storm options dictionary.', 'default': None},
118
+ ),
119
+ 'returns': {'name': 'yields', 'type': 'list', 'desc': 'The output messages from the Storm runtime.'}}},
120
+ )
121
+ _storm_lib_path = ('storm',)
122
+
123
+ def getObjLocals(self):
124
+ return {
125
+ 'run': self._runStorm,
126
+ 'eval': self._evalStorm,
127
+ }
128
+
129
+ async def _runStorm(self, query, opts=None):
130
+
131
+ opts = await s_stormtypes.toprim(opts)
132
+ query = await s_stormtypes.tostr(query)
133
+
134
+ if opts is None:
135
+ opts = {}
136
+
137
+ user = opts.get('user')
138
+ if user is None:
139
+ user = opts['user'] = self.runt.user.iden
140
+
141
+ if user != self.runt.user.iden:
142
+ self.runt.confirm(('impersonate',))
143
+
144
+ opts.setdefault('view', self.runt.snap.view.iden)
145
+
146
+ async for mesg in self.runt.snap.view.core.storm(query, opts=opts):
147
+ yield mesg
148
+
149
+ @s_stormtypes.stormfunc(readonly=True)
150
+ async def _evalStorm(self, text, cast=None):
151
+
152
+ text = await s_stormtypes.tostr(text)
153
+ cast = await s_stormtypes.tostr(cast, noneok=True)
154
+
155
+ if self.runt.snap.core.stormlog:
156
+ extra = await self.runt.snap.core.getLogExtra(text=text, view=self.runt.snap.view.iden)
157
+ stormlogger.info(f'Executing storm query via $lib.storm.eval() {{{text}}} as [{self.runt.user.name}]', extra=extra)
158
+
159
+ casttype = None
160
+ if cast:
161
+
162
+ casttype = self.runt.model.type(cast)
163
+ if casttype is None:
164
+ castprop = self.runt.model.prop(cast)
165
+ if castprop is not None:
166
+ casttype = castprop.type
167
+
168
+ if casttype is None:
169
+ mesg = f'No type or property found for name: {cast}'
170
+ raise s_exc.NoSuchType(mesg=mesg)
171
+
172
+ asteval = await self.runt.snap.core._getStormEval(text)
173
+ valu = await asteval.compute(self.runt, None)
174
+
175
+ if casttype:
176
+ valu, _ = casttype.norm(valu)
177
+
178
+ return valu
@@ -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, 175, 0)
226
+ version = (2, 176, 0)
227
227
  verstring = '.'.join([str(x) for x in version])
228
- commit = 'c331c50ef1e7b2234be997c4b791fb8b8bed7cf2'
228
+ commit = '16ee721a6b7221344eaf946c3ab4602dda546b1a'
@@ -1519,6 +1519,7 @@ class InetModule(s_module.CoreModule):
1519
1519
  'doc': 'An object status enumeration.'}),
1520
1520
 
1521
1521
  ('inet:service:account', ('guid', {}), {
1522
+ 'interfaces': ('inet:service:object',),
1522
1523
  'doc': 'An account within a service platform. Accounts may be instance specific.'}),
1523
1524
 
1524
1525
  ('inet:service:permission:type:taxonomy', ('taxonomy', {}), {
@@ -1557,6 +1558,10 @@ class InetModule(s_module.CoreModule):
1557
1558
  'interfaces': ('inet:service:object',),
1558
1559
  'doc': 'A channel used to distribute messages.'}),
1559
1560
 
1561
+ ('inet:service:thread', ('guid', {}), {
1562
+ 'interfaces': ('inet:service:object',),
1563
+ 'doc': 'A message thread.'}),
1564
+
1560
1565
  ('inet:service:channel:member', ('guid', {}), {
1561
1566
  'interfaces': ('inet:service:object',),
1562
1567
  'doc': 'Represents a service account being a member of a channel.'}),
@@ -3657,9 +3662,15 @@ class InetModule(s_module.CoreModule):
3657
3662
  ('channel', ('inet:service:channel', {}), {
3658
3663
  'doc': 'The channel that the message was sent to.'}),
3659
3664
 
3665
+ ('thread', ('inet:service:thread', {}), {
3666
+ 'doc': 'The thread which contains the message.'}),
3667
+
3660
3668
  ('public', ('bool', {}), {
3661
3669
  'doc': 'Set to true if the message is publicly visible.'}),
3662
3670
 
3671
+ ('title', ('str', {'lower': True, 'onespace': True}), {
3672
+ 'doc': 'The message title.'}),
3673
+
3663
3674
  ('text', ('str', {}), {
3664
3675
  'disp': {'hint': 'text'},
3665
3676
  'doc': 'The text body of the message.'}),
@@ -3725,6 +3736,18 @@ class InetModule(s_module.CoreModule):
3725
3736
  'doc': 'The time period where the channel was available.'}),
3726
3737
  )),
3727
3738
 
3739
+ ('inet:service:thread', {}, (
3740
+
3741
+ ('title', ('str', {'lower': True, 'onespace': True}), {
3742
+ 'doc': 'The title of the thread.'}),
3743
+
3744
+ ('channel', ('inet:service:channel', {}), {
3745
+ 'doc': 'The channel that contains the thread.'}),
3746
+
3747
+ ('message', ('inet:service:message', {}), {
3748
+ 'doc': 'The message which initiated the thread.'}),
3749
+ )),
3750
+
3728
3751
  ('inet:service:channel:member', {}, (
3729
3752
 
3730
3753
  ('channel', ('inet:service:channel', {}), {
@@ -0,0 +1,144 @@
1
+ import synapse.exc as s_exc
2
+ import synapse.lib.parser as s_parser
3
+
4
+ import synapse.tests.utils as s_test
5
+
6
+ class LibStormTest(s_test.SynTest):
7
+
8
+ async def test_lib_stormlib_storm_eval(self):
9
+ async with self.getTestCore() as core:
10
+
11
+ opts = {'vars': {'text': '(10)'}}
12
+ self.eq(10, await core.callStorm('return($lib.storm.eval($text))', opts=opts))
13
+
14
+ opts = {'vars': {'text': '10'}}
15
+ self.eq('10', await core.callStorm('return($lib.storm.eval($text))', opts=opts))
16
+
17
+ opts = {'vars': {'text': '10'}}
18
+ self.eq(10, await core.callStorm('return($lib.storm.eval($text, cast=int))', opts=opts))
19
+
20
+ opts = {'vars': {'text': 'WOOT.COM'}}
21
+ self.eq('woot.com', await core.callStorm('return($lib.storm.eval($text, cast=inet:dns:a:fqdn))', opts=opts))
22
+
23
+ opts = {'vars': {'text': '(10 + 20)', 'cast': 'inet:port'}}
24
+ self.eq(30, await core.callStorm('return($lib.storm.eval($text, cast=$cast))', opts=opts))
25
+
26
+ with self.raises(s_exc.NoSuchType):
27
+ await core.callStorm('return($lib.storm.eval(foo, cast=newp))')
28
+
29
+ # for coverage of forked call...
30
+ self.nn(s_parser.parseEval('woot'))
31
+
32
+ # Readonly functionality is sane
33
+ msgs = await core.stormlist('$lib.print($lib.storm.eval( "{$lib.print(wow)}" ))')
34
+ self.stormIsInPrint('wow', msgs)
35
+ self.stormIsInPrint('$lib.null', msgs)
36
+
37
+ with self.raises(s_exc.IsReadOnly):
38
+ await core.callStorm('$lib.storm.eval( "{$lib.auth.users.add(readonly)}" )', opts={'readonly': True})
39
+
40
+ with self.getLoggerStream('synapse.storm') as stream:
41
+ q = '''{
42
+ $lib.log.info(hehe)
43
+ [test:str=omg]
44
+ $lib.log.info($node)
45
+ fini { return(wow) }
46
+ }
47
+ '''
48
+
49
+ core.stormlog = True
50
+ opts = {'vars': {'q': q}}
51
+ ret = await core.callStorm('return( $lib.storm.eval($q) )', opts=opts)
52
+ self.eq(ret, 'wow')
53
+ self.len(1, await core.nodes('test:str=omg'))
54
+
55
+ # Check that we saw the logs
56
+ stream.seek(0)
57
+ data = stream.read()
58
+
59
+ mesg = 'Executing storm query {return( $lib.storm.eval($q) )} as [root]'
60
+ self.isin(mesg, data)
61
+
62
+ mesg = f'Executing storm query via $lib.storm.eval() {{{q}}} as [root]'
63
+ self.isin(mesg, data)
64
+
65
+ async def test_lib_stormlib_storm(self):
66
+
67
+ async with self.getTestCore() as core:
68
+
69
+ q = '''
70
+ $query = '[ inet:fqdn=foo.com inet:fqdn=bar.com ]'
71
+ storm.exec $query
72
+ '''
73
+ self.len(2, await core.nodes(q))
74
+
75
+ q = '''[
76
+ (inet:ipv4=1.2.3.4 :asn=4)
77
+ (inet:ipv4=1.2.3.5 :asn=5)
78
+ (inet:ipv4=1.2.3.6 :asn=10)
79
+ ]'''
80
+ await core.nodes(q)
81
+
82
+ q = '''
83
+ $filter = '-:asn=10'
84
+ inet:ipv4:asn
85
+ storm.exec $filter
86
+ '''
87
+ nodes = await core.nodes(q)
88
+ self.len(2, nodes)
89
+ for node in nodes:
90
+ self.ne(node.get('asn'), 10)
91
+
92
+ q = '''
93
+ $pivot = ${ -> inet:asn }
94
+ inet:ipv4:asn
95
+ storm.exec $pivot
96
+ '''
97
+ nodes = await core.nodes(q)
98
+ self.len(3, nodes)
99
+ for node in nodes:
100
+ self.eq(node.form.name, 'inet:asn')
101
+
102
+ # Exec a non-runtsafe query
103
+ q = '''
104
+ inet:ipv4:asn
105
+ $filter = `+:asn={$node.repr().split('.').'-1'}`
106
+ storm.exec $filter
107
+ '''
108
+ nodes = await core.nodes(q)
109
+ self.len(2, nodes)
110
+ for node in nodes:
111
+ self.ne(node.get('asn'), 10)
112
+
113
+ iden = await core.callStorm('return($lib.view.get().fork().iden)')
114
+ msgs = await core.stormlist('''
115
+ $query = "[inet:fqdn=vertex.link +#haha] $lib.print(woot)"
116
+ $opts = ({"view": $view})
117
+ for $mesg in $lib.storm.run($query, opts=$opts) {
118
+ if ($mesg.0 = "print") { $lib.print($mesg.1.mesg) }
119
+ }
120
+ ''', opts={'vars': {'view': iden}})
121
+ self.stormIsInPrint('woot', msgs)
122
+ self.len(1, await core.nodes('inet:fqdn#haha', opts={'view': iden}))
123
+
124
+ visi = await core.auth.addUser('visi')
125
+ msgs = await core.stormlist('''
126
+ $opts=({"user": $lib.auth.users.byname(root).iden})
127
+ for $mesg in $lib.storm.run("$lib.print(lolz)", opts=$opts) {
128
+ if ($mesg.0 = "err") { $lib.print($mesg) }
129
+ if ($mesg.0 = "print") { $lib.print($mesg) }
130
+ }
131
+ ''', opts={'user': visi.iden})
132
+ self.stormIsInErr('must have permission impersonate', msgs)
133
+ self.stormNotInPrint('lolz', msgs)
134
+
135
+ # no opts provided
136
+ msgs = await core.stormlist('''
137
+ $q = ${ $lib.print('hello') }
138
+ for $mesg in $lib.storm.run($q) {
139
+ if ( $mesg.0 = 'print' ) {
140
+ $lib.print(`mesg={$mesg.1.mesg}`)
141
+ }
142
+ }
143
+ ''')
144
+ self.stormIsInPrint('mesg=hello', msgs)
@@ -3300,3 +3300,34 @@ class InetModelTest(s_t_utils.SynTest):
3300
3300
  self.eq(nodes[0].get('resource'), resource.ndef[1])
3301
3301
  self.true(nodes[0].get('success'))
3302
3302
  self.eq(nodes[0].get('time'), 1715856900000)
3303
+
3304
+ q = '''
3305
+ [ inet:service:message=(visi, says, relax)
3306
+ :title="Hehe Haha"
3307
+ :thread={[
3308
+ inet:service:thread=*
3309
+ :title="Woot Woot"
3310
+ :message=(visi, says, hello)
3311
+ :channel={[
3312
+ inet:service:channel=(synapse, subreddit)
3313
+ :name="/r/synapse"
3314
+ ]}
3315
+ ]}
3316
+ ]
3317
+ '''
3318
+ nodes = await core.nodes(q)
3319
+ self.len(1, nodes)
3320
+ self.len(1, await core.nodes('inet:service:message=(visi, says, hello) -> inet:service:thread:message'))
3321
+ self.len(1, await core.nodes('''
3322
+ inet:service:message:title="hehe haha"
3323
+ :thread -> inet:service:thread
3324
+ +:title="woot woot"
3325
+ '''))
3326
+ self.len(2, await core.nodes('inet:service:thread -> inet:service:message'))
3327
+
3328
+ self.len(1, await core.nodes('''
3329
+ inet:service:message:title="hehe haha"
3330
+ :thread -> inet:service:thread
3331
+ :channel -> inet:service:channel
3332
+ +:name="/r/synapse"
3333
+ '''))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: synapse
3
- Version: 2.175.0
3
+ Version: 2.176.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
@@ -1,66 +0,0 @@
1
- import logging
2
-
3
- import synapse.exc as s_exc
4
-
5
- import synapse.lib.stormtypes as s_stormtypes
6
-
7
- evaldesc = '''\
8
- Evaluate a storm runtime value and optionally cast/coerce it.
9
-
10
- NOTE: If storm logging is enabled, the expression being evaluated will be logged
11
- separately.
12
- '''
13
-
14
- stormlogger = logging.getLogger('synapse.storm')
15
-
16
- @s_stormtypes.registry.registerLib
17
- class LibStorm(s_stormtypes.Lib):
18
- '''
19
- A Storm library for evaluating dynamic storm expressions.
20
- '''
21
- _storm_locals = (
22
- {'name': 'eval', 'desc': evaldesc,
23
- 'type': {'type': 'function', '_funcname': '_evalStorm',
24
- 'args': (
25
- {'name': 'text', 'type': 'str', 'desc': 'A storm expression string.'},
26
- {'name': 'cast', 'type': 'str', 'desc': 'A type to cast the result to.', 'default': None},
27
- ),
28
- 'returns': {'type': 'any', 'desc': 'The value of the expression and optional cast.', }}},
29
- )
30
- _storm_lib_path = ('storm',)
31
-
32
- def getObjLocals(self):
33
- return {
34
- 'eval': self._evalStorm,
35
- }
36
-
37
- @s_stormtypes.stormfunc(readonly=True)
38
- async def _evalStorm(self, text, cast=None):
39
-
40
- text = await s_stormtypes.tostr(text)
41
- cast = await s_stormtypes.tostr(cast, noneok=True)
42
-
43
- if self.runt.snap.core.stormlog:
44
- extra = await self.runt.snap.core.getLogExtra(text=text)
45
- stormlogger.info(f'Executing storm query via $lib.storm.eval() {{{text}}} as [{self.runt.user.name}]', extra=extra)
46
-
47
- casttype = None
48
- if cast:
49
-
50
- casttype = self.runt.model.type(cast)
51
- if casttype is None:
52
- castprop = self.runt.model.prop(cast)
53
- if castprop is not None:
54
- casttype = castprop.type
55
-
56
- if casttype is None:
57
- mesg = f'No type or property found for name: {cast}'
58
- raise s_exc.NoSuchType(mesg=mesg)
59
-
60
- asteval = await self.runt.snap.core._getStormEval(text)
61
- valu = await asteval.compute(self.runt, None)
62
-
63
- if casttype:
64
- valu, _ = casttype.norm(valu)
65
-
66
- return valu
@@ -1,63 +0,0 @@
1
- import synapse.exc as s_exc
2
- import synapse.lib.parser as s_parser
3
-
4
- import synapse.tests.utils as s_test
5
-
6
- class LibStormTest(s_test.SynTest):
7
-
8
- async def test_lib_stormlib_storm(self):
9
- async with self.getTestCore() as core:
10
-
11
- opts = {'vars': {'text': '(10)'}}
12
- self.eq(10, await core.callStorm('return($lib.storm.eval($text))', opts=opts))
13
-
14
- opts = {'vars': {'text': '10'}}
15
- self.eq('10', await core.callStorm('return($lib.storm.eval($text))', opts=opts))
16
-
17
- opts = {'vars': {'text': '10'}}
18
- self.eq(10, await core.callStorm('return($lib.storm.eval($text, cast=int))', opts=opts))
19
-
20
- opts = {'vars': {'text': 'WOOT.COM'}}
21
- self.eq('woot.com', await core.callStorm('return($lib.storm.eval($text, cast=inet:dns:a:fqdn))', opts=opts))
22
-
23
- opts = {'vars': {'text': '(10 + 20)', 'cast': 'inet:port'}}
24
- self.eq(30, await core.callStorm('return($lib.storm.eval($text, cast=$cast))', opts=opts))
25
-
26
- with self.raises(s_exc.NoSuchType):
27
- await core.callStorm('return($lib.storm.eval(foo, cast=newp))')
28
-
29
- # for coverage of forked call...
30
- self.nn(s_parser.parseEval('woot'))
31
-
32
- # Readonly functionality is sane
33
- msgs = await core.stormlist('$lib.print($lib.storm.eval( "{$lib.print(wow)}" ))')
34
- self.stormIsInPrint('wow', msgs)
35
- self.stormIsInPrint('$lib.null', msgs)
36
-
37
- with self.raises(s_exc.IsReadOnly):
38
- await core.callStorm('$lib.storm.eval( "{$lib.auth.users.add(readonly)}" )', opts={'readonly': True})
39
-
40
- with self.getLoggerStream('synapse.storm') as stream:
41
- q = '''{
42
- $lib.log.info(hehe)
43
- [test:str=omg]
44
- $lib.log.info($node)
45
- fini { return(wow) }
46
- }
47
- '''
48
-
49
- core.stormlog = True
50
- opts = {'vars': {'q': q}}
51
- ret = await core.callStorm('return( $lib.storm.eval($q) )', opts=opts)
52
- self.eq(ret, 'wow')
53
- self.len(1, await core.nodes('test:str=omg'))
54
-
55
- # Check that we saw the logs
56
- stream.seek(0)
57
- data = stream.read()
58
-
59
- mesg = 'Executing storm query {return( $lib.storm.eval($q) )} as [root]'
60
- self.isin(mesg, data)
61
-
62
- mesg = f'Executing storm query via $lib.storm.eval() {{{q}}} as [root]'
63
- self.isin(mesg, data)
File without changes
File without changes
File without changes