synapse 2.183.0__tar.gz → 2.185.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 (615) hide show
  1. {synapse-2.183.0/synapse.egg-info → synapse-2.185.0}/PKG-INFO +5 -10
  2. {synapse-2.183.0 → synapse-2.185.0}/pyproject.toml +5 -10
  3. {synapse-2.183.0 → synapse-2.185.0}/synapse/cortex.py +1 -1
  4. {synapse-2.183.0 → synapse-2.185.0}/synapse/datamodel.py +82 -9
  5. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/ast.py +85 -23
  6. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/auth.py +13 -0
  7. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/autodoc.py +9 -2
  8. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/cell.py +14 -1
  9. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/modules.py +1 -0
  10. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/parser.py +1 -0
  11. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/snap.py +1 -0
  12. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/storm.lark +12 -6
  13. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/storm.py +45 -9
  14. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/storm_format.py +1 -0
  15. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/graph.py +17 -0
  16. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/stix.py +14 -5
  17. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormtypes.py +65 -37
  18. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormwhois.py +3 -0
  19. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/version.py +2 -2
  20. synapse-2.185.0/synapse/models/doc.py +93 -0
  21. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/infotech.py +5 -1
  22. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/media.py +0 -1
  23. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/orgs.py +102 -5
  24. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/proj.py +56 -36
  25. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/risk.py +22 -0
  26. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/syn.py +64 -6
  27. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_cortex.py +54 -45
  28. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_ast.py +58 -0
  29. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_autodoc.py +54 -0
  30. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_cell.py +44 -1
  31. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_grammar.py +2 -0
  32. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_storm.py +68 -1
  33. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_modelext.py +52 -0
  34. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_stix.py +3 -2
  35. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormwhois.py +4 -4
  36. synapse-2.185.0/synapse/tests/test_model_doc.py +51 -0
  37. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_infotech.py +5 -1
  38. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_orgs.py +78 -0
  39. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_risk.py +3 -0
  40. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_syn.py +43 -0
  41. synapse-2.185.0/synapse/tests/test_tools_promote.py +67 -0
  42. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/utils.py +26 -0
  43. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/promote.py +14 -1
  44. {synapse-2.183.0 → synapse-2.185.0/synapse.egg-info}/PKG-INFO +5 -10
  45. {synapse-2.183.0 → synapse-2.185.0}/synapse.egg-info/SOURCES.txt +3 -0
  46. {synapse-2.183.0 → synapse-2.185.0}/synapse.egg-info/requires.txt +4 -9
  47. {synapse-2.183.0 → synapse-2.185.0}/LICENSE +0 -0
  48. {synapse-2.183.0 → synapse-2.185.0}/README.rst +0 -0
  49. {synapse-2.183.0 → synapse-2.185.0}/setup.cfg +0 -0
  50. {synapse-2.183.0 → synapse-2.185.0}/synapse/__init__.py +0 -0
  51. {synapse-2.183.0 → synapse-2.185.0}/synapse/assets/__init__.py +0 -0
  52. {synapse-2.183.0 → synapse-2.185.0}/synapse/assets/storm/migrations/model-0.2.28.storm +0 -0
  53. {synapse-2.183.0 → synapse-2.185.0}/synapse/axon.py +0 -0
  54. {synapse-2.183.0 → synapse-2.185.0}/synapse/cells.py +0 -0
  55. {synapse-2.183.0 → synapse-2.185.0}/synapse/cmds/__init__.py +0 -0
  56. {synapse-2.183.0 → synapse-2.185.0}/synapse/cmds/boss.py +0 -0
  57. {synapse-2.183.0 → synapse-2.185.0}/synapse/cmds/cortex.py +0 -0
  58. {synapse-2.183.0 → synapse-2.185.0}/synapse/cmds/hive.py +0 -0
  59. {synapse-2.183.0 → synapse-2.185.0}/synapse/common.py +0 -0
  60. {synapse-2.183.0 → synapse-2.185.0}/synapse/cryotank.py +0 -0
  61. {synapse-2.183.0 → synapse-2.185.0}/synapse/daemon.py +0 -0
  62. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/__init__.py +0 -0
  63. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/attack-flow/LICENSE.txt +0 -0
  64. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/attack-flow/README.md +0 -0
  65. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/attack-flow/attack-flow-schema-2.0.0.json +0 -0
  66. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/certs/cas/The Vertex Project Intermediate CA 00.crt +0 -0
  67. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/certs/cas/The Vertex Project ROOT CA.crt +0 -0
  68. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/certs/crls/The Vertex Project Intermediate CA 00.crl +0 -0
  69. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/certs/crls/The Vertex Project ROOT CA.crl +0 -0
  70. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/iana.tlds.mpk +0 -0
  71. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/README.md +0 -0
  72. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/LICENSE.txt +0 -0
  73. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/binary.json +0 -0
  74. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/bundle.json +0 -0
  75. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/core.json +0 -0
  76. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/cyber-observable-core.json +0 -0
  77. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/dictionary.json +0 -0
  78. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension-definition.json +0 -0
  79. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/extension.json +0 -0
  80. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/external-reference.json +0 -0
  81. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/granular-marking.json +0 -0
  82. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hashes-type.json +0 -0
  83. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/hex.json +0 -0
  84. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/identifier.json +0 -0
  85. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/kill-chain-phase.json +0 -0
  86. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/language-content.json +0 -0
  87. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/marking-definition.json +0 -0
  88. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/properties.json +0 -0
  89. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/timestamp.json +0 -0
  90. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/common/url-regex.json +0 -0
  91. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/artifact.json +0 -0
  92. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/autonomous-system.json +0 -0
  93. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/directory.json +0 -0
  94. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/domain-name.json +0 -0
  95. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-addr.json +0 -0
  96. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/email-message.json +0 -0
  97. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/file.json +0 -0
  98. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv4-addr.json +0 -0
  99. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/ipv6-addr.json +0 -0
  100. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mac-addr.json +0 -0
  101. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/mutex.json +0 -0
  102. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/network-traffic.json +0 -0
  103. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/process.json +0 -0
  104. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/software.json +0 -0
  105. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/url.json +0 -0
  106. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/user-account.json +0 -0
  107. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/windows-registry-key.json +0 -0
  108. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/observables/x509-certificate.json +0 -0
  109. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/attack-pattern.json +0 -0
  110. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/campaign.json +0 -0
  111. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/course-of-action.json +0 -0
  112. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/grouping.json +0 -0
  113. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/identity.json +0 -0
  114. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/incident.json +0 -0
  115. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/indicator.json +0 -0
  116. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/infrastructure.json +0 -0
  117. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/intrusion-set.json +0 -0
  118. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/location.json +0 -0
  119. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware-analysis.json +0 -0
  120. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/malware.json +0 -0
  121. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/note.json +0 -0
  122. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/observed-data.json +0 -0
  123. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/opinion.json +0 -0
  124. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/report.json +0 -0
  125. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/threat-actor.json +0 -0
  126. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/tool.json +0 -0
  127. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sdos/vulnerability.json +0 -0
  128. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/relationship.json +0 -0
  129. {synapse-2.183.0 → synapse-2.185.0}/synapse/data/jsonschemas/raw.githubusercontent.com/oasis-open/cti-stix2-json-schemas/stix2.1/schemas/sros/sighting.json +0 -0
  130. {synapse-2.183.0 → synapse-2.185.0}/synapse/exc.py +0 -0
  131. {synapse-2.183.0 → synapse-2.185.0}/synapse/glob.py +0 -0
  132. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/__init__.py +0 -0
  133. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/agenda.py +0 -0
  134. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/aha.py +0 -0
  135. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/base.py +0 -0
  136. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/boss.py +0 -0
  137. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/cache.py +0 -0
  138. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/certdir.py +0 -0
  139. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/chop.py +0 -0
  140. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/cli.py +0 -0
  141. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/cmd.py +0 -0
  142. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/cmdr.py +0 -0
  143. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/config.py +0 -0
  144. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/const.py +0 -0
  145. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/coro.py +0 -0
  146. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/crypto/__init__.py +0 -0
  147. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/crypto/coin.py +0 -0
  148. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/crypto/ecc.py +0 -0
  149. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/crypto/passwd.py +0 -0
  150. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/crypto/rsa.py +0 -0
  151. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/crypto/tinfoil.py +0 -0
  152. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/datfile.py +0 -0
  153. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/drive.py +0 -0
  154. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/dyndeps.py +0 -0
  155. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/encoding.py +0 -0
  156. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/gis.py +0 -0
  157. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/grammar.py +0 -0
  158. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/hashitem.py +0 -0
  159. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/hashset.py +0 -0
  160. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/health.py +0 -0
  161. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/hive.py +0 -0
  162. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/hiveauth.py +0 -0
  163. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/httpapi.py +0 -0
  164. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/ingest.py +0 -0
  165. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/interval.py +0 -0
  166. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/jsonstor.py +0 -0
  167. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/layer.py +0 -0
  168. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/link.py +0 -0
  169. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/lmdbslab.py +0 -0
  170. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/modelrev.py +0 -0
  171. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/module.py +0 -0
  172. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/msgpack.py +0 -0
  173. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/multislabseqn.py +0 -0
  174. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/nexus.py +0 -0
  175. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/node.py +0 -0
  176. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/oauth.py +0 -0
  177. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/output.py +0 -0
  178. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/platforms/__init__.py +0 -0
  179. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/platforms/common.py +0 -0
  180. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/platforms/darwin.py +0 -0
  181. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/platforms/freebsd.py +0 -0
  182. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/platforms/linux.py +0 -0
  183. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/platforms/windows.py +0 -0
  184. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/queue.py +0 -0
  185. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/ratelimit.py +0 -0
  186. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/reflect.py +0 -0
  187. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/rstorm.py +0 -0
  188. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/schemas.py +0 -0
  189. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/scope.py +0 -0
  190. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/scrape.py +0 -0
  191. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/share.py +0 -0
  192. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/slaboffs.py +0 -0
  193. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/slabseqn.py +0 -0
  194. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/spooled.py +0 -0
  195. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormctrl.py +0 -0
  196. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormhttp.py +0 -0
  197. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/__init__.py +0 -0
  198. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/aha.py +0 -0
  199. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/auth.py +0 -0
  200. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/backup.py +0 -0
  201. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/basex.py +0 -0
  202. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/cache.py +0 -0
  203. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/cell.py +0 -0
  204. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/compression.py +0 -0
  205. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/cortex.py +0 -0
  206. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/easyperm.py +0 -0
  207. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/env.py +0 -0
  208. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/ethereum.py +0 -0
  209. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/gen.py +0 -0
  210. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/gis.py +0 -0
  211. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/hashes.py +0 -0
  212. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/hex.py +0 -0
  213. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/imap.py +0 -0
  214. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/infosec.py +0 -0
  215. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/ipv6.py +0 -0
  216. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/iters.py +0 -0
  217. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/json.py +0 -0
  218. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/log.py +0 -0
  219. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/macro.py +0 -0
  220. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/math.py +0 -0
  221. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/mime.py +0 -0
  222. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/model.py +0 -0
  223. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/modelext.py +0 -0
  224. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/notifications.py +0 -0
  225. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/oauth.py +0 -0
  226. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/pack.py +0 -0
  227. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/project.py +0 -0
  228. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/random.py +0 -0
  229. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/scrape.py +0 -0
  230. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/smtp.py +0 -0
  231. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/spooled.py +0 -0
  232. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/stats.py +0 -0
  233. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/storm.py +0 -0
  234. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/tabular.py +0 -0
  235. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/vault.py +0 -0
  236. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/version.py +0 -0
  237. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/xml.py +0 -0
  238. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormlib/yaml.py +0 -0
  239. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/stormsvc.py +0 -0
  240. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/structlog.py +0 -0
  241. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/task.py +0 -0
  242. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/thishost.py +0 -0
  243. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/thisplat.py +0 -0
  244. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/threads.py +0 -0
  245. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/time.py +0 -0
  246. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/trigger.py +0 -0
  247. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/types.py +0 -0
  248. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/urlhelp.py +0 -0
  249. {synapse-2.183.0 → synapse-2.185.0}/synapse/lib/view.py +0 -0
  250. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/__init__.py +0 -0
  251. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/cvss.py +0 -0
  252. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/iana.py +0 -0
  253. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/iso3166.py +0 -0
  254. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/macho.py +0 -0
  255. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/pe.py +0 -0
  256. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/phonenum.py +0 -0
  257. {synapse-2.183.0 → synapse-2.185.0}/synapse/lookup/timezones.py +0 -0
  258. {synapse-2.183.0 → synapse-2.185.0}/synapse/mindmeld.py +0 -0
  259. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/__init__.py +0 -0
  260. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/auth.py +0 -0
  261. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/base.py +0 -0
  262. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/belief.py +0 -0
  263. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/biz.py +0 -0
  264. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/crypto.py +0 -0
  265. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/dns.py +0 -0
  266. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/economic.py +0 -0
  267. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/entity.py +0 -0
  268. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/files.py +0 -0
  269. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/geopol.py +0 -0
  270. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/geospace.py +0 -0
  271. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/gov/__init__.py +0 -0
  272. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/gov/cn.py +0 -0
  273. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/gov/intl.py +0 -0
  274. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/gov/us.py +0 -0
  275. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/inet.py +0 -0
  276. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/language.py +0 -0
  277. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/material.py +0 -0
  278. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/math.py +0 -0
  279. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/person.py +0 -0
  280. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/planning.py +0 -0
  281. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/science.py +0 -0
  282. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/telco.py +0 -0
  283. {synapse-2.183.0 → synapse-2.185.0}/synapse/models/transport.py +0 -0
  284. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/__init__.py +0 -0
  285. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/aha.py +0 -0
  286. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/axon.py +0 -0
  287. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/cell.py +0 -0
  288. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/cortex.py +0 -0
  289. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/cryotank.py +0 -0
  290. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/jsonstor.py +0 -0
  291. {synapse-2.183.0 → synapse-2.185.0}/synapse/servers/stemcell.py +0 -0
  292. {synapse-2.183.0 → synapse-2.185.0}/synapse/telepath.py +0 -0
  293. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/__init__.py +0 -0
  294. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/TestUtilsGetrefs.test_basics.yaml +0 -0
  295. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/__init__.py +0 -0
  296. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/aha/certs/cas/synapse.crt +0 -0
  297. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/aha/certs/cas/synapse.key +0 -0
  298. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.crt +0 -0
  299. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/aha/certs/hosts/00.aha.loop.vertex.link.key +0 -0
  300. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/aha/certs/users/root@synapse.crt +0 -0
  301. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/aha/certs/users/root@synapse.key +0 -0
  302. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/attack_flow/CISA AA22-138B VMWare Workspace (Alt).json +0 -0
  303. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/attack_flow/CISA_Iranian_APT.json +0 -0
  304. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/cas/ca.crt +0 -0
  305. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/cas/ca.key +0 -0
  306. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/hosts/localhost.crt +0 -0
  307. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/hosts/localhost.key +0 -0
  308. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/users/root.crt +0 -0
  309. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/users/root.key +0 -0
  310. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/users/user.crt +0 -0
  311. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/certdir/users/user.key +0 -0
  312. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/changelog/model_2.176.0_16ee721a6b7221344eaf946c3ab4602dda546b1a.yaml.gz +0 -0
  313. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/changelog/model_2.176.0_2a25c58bbd344716cd7cbc3f4304d8925b0f4ef2.yaml.gz +0 -0
  314. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/cpedata.json +0 -0
  315. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/rstorm/httpresp1.json +0 -0
  316. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/rstorm/httpresp2.json +0 -0
  317. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/rstorm/httpresp3.json +0 -0
  318. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/rstorm/httprespmulti.yaml +0 -0
  319. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/rstorm/testsvc.py +0 -0
  320. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stix_export/basic.json +0 -0
  321. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stix_export/custom0.json +0 -0
  322. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stix_export/risk0.json +0 -0
  323. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stix_import/apt1.json +0 -0
  324. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stix_import/oasis-example-00.json +0 -0
  325. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/argvquery.storm +0 -0
  326. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/dupesubs.storm +0 -0
  327. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/lookup.storm +0 -0
  328. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/pivot.storm +0 -0
  329. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/pragma-nocov.storm +0 -0
  330. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/spin.storm +0 -0
  331. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormcov/stormctrl.storm +0 -0
  332. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormmod/common +0 -0
  333. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/badapidef.yaml +0 -0
  334. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/badcmdname.yaml +0 -0
  335. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/badjsonpkg.yaml +0 -0
  336. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/docs/foobar.md +0 -0
  337. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/docs/foobar.svg +0 -0
  338. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/dotstorm/dotstorm.yaml +0 -0
  339. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/dotstorm/storm/commands/dotstorm.bar.storm +0 -0
  340. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/dotstorm/storm/modules/dotstorm.foo.storm +0 -0
  341. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/nocontent.yaml +0 -0
  342. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/nomime.yaml +0 -0
  343. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/nopath.yaml +0 -0
  344. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/nosuchfile.yaml +0 -0
  345. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/notitle.yaml +0 -0
  346. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/optic/index.html +0 -0
  347. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/storm/commands/invalidCMD +0 -0
  348. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/storm/commands/testpkg.baz +0 -0
  349. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/storm/commands/testpkgcmd +0 -0
  350. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/storm/modules/apimod +0 -0
  351. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/storm/modules/testmod +0 -0
  352. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/testpkg.yaml +0 -0
  353. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/workflows/testpkg-bam.newp +0 -0
  354. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/workflows/testpkg-baz.yaml +0 -0
  355. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/stormpkg/workflows/testpkg-foo.yaml +0 -0
  356. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/test.dat +0 -0
  357. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/files/testcore/cell.yaml +0 -0
  358. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/nopmod.py +0 -0
  359. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_assets.py +0 -0
  360. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_axon.py +0 -0
  361. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_cmds_boss.py +0 -0
  362. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_cmds_cortex.py +0 -0
  363. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_cmds_hive.py +0 -0
  364. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_common.py +0 -0
  365. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_cryotank.py +0 -0
  366. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_daemon.py +0 -0
  367. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_data.py +0 -0
  368. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_datamodel.py +0 -0
  369. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_exc.py +0 -0
  370. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_glob.py +0 -0
  371. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_init.py +0 -0
  372. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_agenda.py +0 -0
  373. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_aha.py +0 -0
  374. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_auth.py +0 -0
  375. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_base.py +0 -0
  376. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_boss.py +0 -0
  377. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_cache.py +0 -0
  378. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_certdir.py +0 -0
  379. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_chop.py +0 -0
  380. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_cli.py +0 -0
  381. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_config.py +0 -0
  382. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_const.py +0 -0
  383. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_coro.py +0 -0
  384. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_crypto_coin.py +0 -0
  385. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_crypto_ecc.py +0 -0
  386. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_crypto_passwd.py +0 -0
  387. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_crypto_tinfoil.py +0 -0
  388. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_datfile.py +0 -0
  389. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_dyndeps.py +0 -0
  390. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_encoding.py +0 -0
  391. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_gis.py +0 -0
  392. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_hashitem.py +0 -0
  393. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_hashset.py +0 -0
  394. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_health.py +0 -0
  395. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_hive.py +0 -0
  396. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_httpapi.py +0 -0
  397. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_interval.py +0 -0
  398. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_jsonstor.py +0 -0
  399. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_layer.py +0 -0
  400. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_link.py +0 -0
  401. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_lmdbslab.py +0 -0
  402. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_modelrev.py +0 -0
  403. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_module.py +0 -0
  404. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_msgpack.py +0 -0
  405. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_multislabseqn.py +0 -0
  406. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_nexus.py +0 -0
  407. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_node.py +0 -0
  408. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_output.py +0 -0
  409. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_platforms_linux.py +0 -0
  410. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_queue.py +0 -0
  411. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_ratelimit.py +0 -0
  412. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_reflect.py +0 -0
  413. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_rstorm.py +0 -0
  414. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_scope.py +0 -0
  415. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_scrape.py +0 -0
  416. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_slaboffs.py +0 -0
  417. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_slabseqn.py +0 -0
  418. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_snap.py +0 -0
  419. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_spooled.py +0 -0
  420. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_storm_format.py +0 -0
  421. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormhttp.py +0 -0
  422. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_aha.py +0 -0
  423. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_auth.py +0 -0
  424. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_backup.py +0 -0
  425. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_basex.py +0 -0
  426. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_cache.py +0 -0
  427. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_cell.py +0 -0
  428. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_compression.py +0 -0
  429. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_cortex.py +0 -0
  430. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_easyperm.py +0 -0
  431. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_env.py +0 -0
  432. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_ethereum.py +0 -0
  433. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_gen.py +0 -0
  434. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_gis.py +0 -0
  435. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_hashes.py +0 -0
  436. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_hex.py +0 -0
  437. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_imap.py +0 -0
  438. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_infosec.py +0 -0
  439. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_ipv6.py +0 -0
  440. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_iters.py +0 -0
  441. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_json.py +0 -0
  442. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_log.py +0 -0
  443. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_macro.py +0 -0
  444. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_mime.py +0 -0
  445. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_model.py +0 -0
  446. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_oauth.py +0 -0
  447. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_pack.py +0 -0
  448. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_random.py +0 -0
  449. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_scrape.py +0 -0
  450. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_smtp.py +0 -0
  451. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_spooled.py +0 -0
  452. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_stats.py +0 -0
  453. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_storm.py +0 -0
  454. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_tabular.py +0 -0
  455. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_vault.py +0 -0
  456. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_xml.py +0 -0
  457. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormlib_yaml.py +0 -0
  458. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormsvc.py +0 -0
  459. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_stormtypes.py +0 -0
  460. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_structlog.py +0 -0
  461. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_task.py +0 -0
  462. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_thishost.py +0 -0
  463. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_time.py +0 -0
  464. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_trigger.py +0 -0
  465. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_types.py +0 -0
  466. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_urlhelp.py +0 -0
  467. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_version.py +0 -0
  468. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lib_view.py +0 -0
  469. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lookup_iso3166.py +0 -0
  470. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_lookup_phonenum.py +0 -0
  471. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_mindmeld.py +0 -0
  472. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_auth.py +0 -0
  473. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_base.py +0 -0
  474. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_belief.py +0 -0
  475. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_biz.py +0 -0
  476. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_crypto.py +0 -0
  477. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_dns.py +0 -0
  478. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_economic.py +0 -0
  479. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_files.py +0 -0
  480. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_geopol.py +0 -0
  481. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_geospace.py +0 -0
  482. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_gov_cn.py +0 -0
  483. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_gov_intl.py +0 -0
  484. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_gov_us.py +0 -0
  485. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_inet.py +0 -0
  486. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_language.py +0 -0
  487. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_material.py +0 -0
  488. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_math.py +0 -0
  489. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_media.py +0 -0
  490. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_person.py +0 -0
  491. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_planning.py +0 -0
  492. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_proj.py +0 -0
  493. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_science.py +0 -0
  494. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_telco.py +0 -0
  495. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_model_transport.py +0 -0
  496. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_servers_axon.py +0 -0
  497. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_servers_cortex.py +0 -0
  498. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_servers_cryotank.py +0 -0
  499. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_servers_stemcell.py +0 -0
  500. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_servers_univ.py +0 -0
  501. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_telepath.py +0 -0
  502. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_aha.py +0 -0
  503. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_autodoc.py +0 -0
  504. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_axon2axon.py +0 -0
  505. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_backup.py +0 -0
  506. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_cellauth.py +0 -0
  507. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_changelog.py +0 -0
  508. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_cryo_cat.py +0 -0
  509. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_cryo_list.py +0 -0
  510. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_csvtool.py +0 -0
  511. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_docker_validate.py +0 -0
  512. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_easycert.py +0 -0
  513. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_feed.py +0 -0
  514. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_genpkg.py +0 -0
  515. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_guid.py +0 -0
  516. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_healthcheck.py +0 -0
  517. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_hiveload.py +0 -0
  518. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_hivesave.py +0 -0
  519. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_json2mpk.py +0 -0
  520. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_livebackup.py +0 -0
  521. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_modrole.py +0 -0
  522. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_moduser.py +0 -0
  523. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_pullfile.py +0 -0
  524. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_pushfile.py +0 -0
  525. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_reload.py +0 -0
  526. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_rstorm.py +0 -0
  527. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_tools_storm.py +0 -0
  528. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_utils.py +0 -0
  529. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_utils_getrefs.py +0 -0
  530. {synapse-2.183.0 → synapse-2.185.0}/synapse/tests/test_utils_stormcov.py +0 -0
  531. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/__init__.py +0 -0
  532. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/__init__.py +0 -0
  533. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/clone.py +0 -0
  534. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/easycert.py +0 -0
  535. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/enroll.py +0 -0
  536. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/list.py +0 -0
  537. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/provision/__init__.py +0 -0
  538. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/provision/service.py +0 -0
  539. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/aha/provision/user.py +0 -0
  540. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/autodoc.py +0 -0
  541. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/axon2axon.py +0 -0
  542. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/backup.py +0 -0
  543. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/cellauth.py +0 -0
  544. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/changelog.py +0 -0
  545. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/cmdr.py +0 -0
  546. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/cryo/__init__.py +0 -0
  547. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/cryo/cat.py +0 -0
  548. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/cryo/list.py +0 -0
  549. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/csvtool.py +0 -0
  550. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/docker/__init__.py +0 -0
  551. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/docker/validate.py +0 -0
  552. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/easycert.py +0 -0
  553. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/feed.py +0 -0
  554. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/genpkg.py +0 -0
  555. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/guid.py +0 -0
  556. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/healthcheck.py +0 -0
  557. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/hive/__init__.py +0 -0
  558. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/hive/load.py +0 -0
  559. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/hive/save.py +0 -0
  560. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/json2mpk.py +0 -0
  561. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/livebackup.py +0 -0
  562. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/modrole.py +0 -0
  563. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/moduser.py +0 -0
  564. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/pullfile.py +0 -0
  565. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/pushfile.py +0 -0
  566. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/reload.py +0 -0
  567. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/rstorm.py +0 -0
  568. {synapse-2.183.0 → synapse-2.185.0}/synapse/tools/storm.py +0 -0
  569. {synapse-2.183.0 → synapse-2.185.0}/synapse/utils/__init__.py +0 -0
  570. {synapse-2.183.0 → synapse-2.185.0}/synapse/utils/getrefs.py +0 -0
  571. {synapse-2.183.0 → synapse-2.185.0}/synapse/utils/stormcov/__init__.py +0 -0
  572. {synapse-2.183.0 → synapse-2.185.0}/synapse/utils/stormcov/plugin.py +0 -0
  573. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/__init__.py +0 -0
  574. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/LICENSE +0 -0
  575. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/__init__.py +0 -0
  576. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/base58.py +0 -0
  577. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/convert.py +0 -0
  578. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/crypto.py +0 -0
  579. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/tests/__init__.py +0 -0
  580. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cashaddress/tests/test_cashaddress.py +0 -0
  581. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/LICENSE +0 -0
  582. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/__init__.py +0 -0
  583. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/__init__.py +0 -0
  584. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/email/__init__.py +0 -0
  585. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/email/_parseaddr.py +0 -0
  586. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/email/utils.py +0 -0
  587. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/ipaddress.py +0 -0
  588. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/test/__init__.py +0 -0
  589. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/test/support/__init__.py +0 -0
  590. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  591. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/test/test_email/test_email.py +0 -0
  592. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/test/test_email/test_utils.py +0 -0
  593. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/cpython/lib/test/test_ipaddress.py +0 -0
  594. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/substrateinterface/LICENSE +0 -0
  595. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/substrateinterface/__init__.py +0 -0
  596. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/substrateinterface/tests/__init__.py +0 -0
  597. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/substrateinterface/tests/test_ss58.py +0 -0
  598. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/substrateinterface/utils/__init__.py +0 -0
  599. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/substrateinterface/utils/ss58.py +0 -0
  600. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/utils.py +0 -0
  601. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/LICENSE +0 -0
  602. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/__init__.py +0 -0
  603. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/constants.py +0 -0
  604. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/core/__init__.py +0 -0
  605. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/core/addresscodec/__init__.py +0 -0
  606. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/core/addresscodec/codec.py +0 -0
  607. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/core/addresscodec/exceptions.py +0 -0
  608. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/core/addresscodec/main.py +0 -0
  609. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/core/addresscodec/utils.py +0 -0
  610. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/tests/__init__.py +0 -0
  611. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/tests/test_codec.py +0 -0
  612. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/tests/test_main.py +0 -0
  613. {synapse-2.183.0 → synapse-2.185.0}/synapse/vendor/xrpl/tests/test_main_test_cases.py +0 -0
  614. {synapse-2.183.0 → synapse-2.185.0}/synapse.egg-info/dependency_links.txt +0 -0
  615. {synapse-2.183.0 → synapse-2.185.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.183.0
3
+ Version: 2.185.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
@@ -59,15 +59,10 @@ Requires-Dist: bump2version<1.1.0,>=1.0.1; extra == "dev"
59
59
  Requires-Dist: pytest-xdist<4.0.0,>=3.0.2; extra == "dev"
60
60
  Requires-Dist: coverage<8.0.0,>=7.0.0; extra == "dev"
61
61
  Provides-Extra: docs
62
- Requires-Dist: nbconvert<8.0.0,>=7.3.1; extra == "docs"
63
- Requires-Dist: jupyter-client<=8.2.0; extra == "docs"
64
- Requires-Dist: jupyter<2.0.0,>=1.0.0; extra == "docs"
65
- Requires-Dist: hide-code<0.8.0,>=0.7.0; extra == "docs"
66
- Requires-Dist: nbstripout<1.0.0,>=0.3.3; extra == "docs"
67
- Requires-Dist: sphinx<7.0.0,>=6.2.0; extra == "docs"
68
- Requires-Dist: sphinx-rtd-theme<2.0.0,>=1.0.0; extra == "docs"
69
- Requires-Dist: sphinx-notfound-page==0.8.3; extra == "docs"
70
- Requires-Dist: jinja2<3.1.0; extra == "docs"
62
+ Requires-Dist: sphinx<9.0.0,>=8.0.0; extra == "docs"
63
+ Requires-Dist: sphinx-rtd-theme<4.0.0,>=3.0.0; extra == "docs"
64
+ Requires-Dist: sphinx-notfound-page<2.0.0,>=1.0.4; extra == "docs"
65
+ Requires-Dist: jinja2<4.0.0,>=3.1.4; extra == "docs"
71
66
 
72
67
  Synapse
73
68
  =======
@@ -4,7 +4,7 @@ build-backend = 'setuptools.build_meta'
4
4
 
5
5
  [project]
6
6
  name = 'synapse'
7
- version = '2.183.0'
7
+ version = '2.185.0'
8
8
  authors = [
9
9
  { name = 'The Vertex Project LLC', email = 'root@vertex.link'},
10
10
  ]
@@ -67,15 +67,10 @@ dev = [
67
67
  'coverage>=7.0.0,<8.0.0',
68
68
  ]
69
69
  docs = [
70
- 'nbconvert>=7.3.1,<8.0.0',
71
- 'jupyter-client<=8.2.0',
72
- 'jupyter>=1.0.0,<2.0.0',
73
- 'hide-code>=0.7.0,<0.8.0',
74
- 'nbstripout>=0.3.3,<1.0.0',
75
- 'sphinx>=6.2.0,<7.0.0',
76
- 'sphinx-rtd-theme>=1.0.0,<2.0.0',
77
- 'sphinx-notfound-page==0.8.3',
78
- 'jinja2<3.1.0',
70
+ 'sphinx>=8.0.0,<9.0.0',
71
+ 'sphinx-rtd-theme>=3.0.0,<4.0.0',
72
+ 'sphinx-notfound-page>=1.0.4,<2.0.0',
73
+ 'jinja2>=3.1.4,<4.0.0',
79
74
  ]
80
75
 
81
76
  [project.urls]
@@ -946,7 +946,7 @@ class Cortex(s_oauth.OAuthMixin, s_cell.Cell): # type: ignore
946
946
  self._exthttpapicache = s_cache.FixedCache(self._getHttpExtApiByPath, size=1000)
947
947
  self._initCortexExtHttpApi()
948
948
 
949
- self.model = s_datamodel.Model()
949
+ self.model = s_datamodel.Model(core=self)
950
950
 
951
951
  await self._bumpCellVers('cortex:extmodel', (
952
952
  (1, self._migrateTaxonomyIface),
@@ -482,8 +482,9 @@ class Model:
482
482
  '''
483
483
  The data model used by a Cortex hypergraph.
484
484
  '''
485
- def __init__(self):
485
+ def __init__(self, core=None):
486
486
 
487
+ self.core = core
487
488
  self.types = {} # name: Type()
488
489
  self.forms = {} # name: Form()
489
490
  self.props = {} # (form,name): Prop() and full: Prop()
@@ -653,13 +654,16 @@ class Model:
653
654
  self.formprefixcache[prefix] = forms
654
655
  return forms
655
656
 
656
- def reqProp(self, name):
657
+ def reqProp(self, name, extra=None):
657
658
  prop = self.prop(name)
658
659
  if prop is not None:
659
660
  return prop
660
661
 
661
- mesg = f'No property named {name}.'
662
- raise s_exc.NoSuchProp(mesg=mesg, name=name)
662
+ exc = s_exc.NoSuchProp.init(name)
663
+ if extra is not None:
664
+ exc = extra(exc)
665
+
666
+ raise exc
663
667
 
664
668
  def reqUniv(self, name):
665
669
  prop = self.univ(name)
@@ -987,7 +991,17 @@ class Model:
987
991
  if form is None:
988
992
  return
989
993
 
990
- formprops = [p for p in form.props.values() if p.univ is None]
994
+ ifaceprops = set()
995
+ for iface in form.ifaces.values():
996
+ for prop in iface.get('props', ()):
997
+ ifaceprops.add(prop[0])
998
+
999
+ formprops = []
1000
+ for propname, prop in form.props.items():
1001
+ if prop.univ is not None or propname in ifaceprops:
1002
+ continue
1003
+ formprops.append(prop)
1004
+
991
1005
  if formprops:
992
1006
  propnames = ', '.join(prop.name for prop in formprops)
993
1007
  mesg = f'Form has extended properties: {propnames}'
@@ -996,8 +1010,8 @@ class Model:
996
1010
  if isinstance(form.type, s_types.Array):
997
1011
  self.arraysbytype[form.type.arraytype.name].pop(form.name, None)
998
1012
 
999
- for ifname in form.ifaces.keys():
1000
- self.formsbyiface[ifname].remove(formname)
1013
+ for ifname in form.type.info.get('interfaces', ()):
1014
+ self._delFormIface(form, ifname)
1001
1015
 
1002
1016
  self.forms.pop(formname, None)
1003
1017
  self.props.pop(formname, None)
@@ -1072,6 +1086,30 @@ class Model:
1072
1086
  self.props[prop.full] = prop
1073
1087
  return prop
1074
1088
 
1089
+ def _prepFormIface(self, form, iface):
1090
+
1091
+ template = iface.get('template', {})
1092
+ template.update(form.type.info.get('template', {}))
1093
+
1094
+ def convert(item):
1095
+
1096
+ if isinstance(item, str):
1097
+
1098
+ if item == '$self':
1099
+ return form.name
1100
+
1101
+ return item.format(**template)
1102
+
1103
+ if isinstance(item, dict):
1104
+ return {convert(k): convert(v) for (k, v) in item.items()}
1105
+
1106
+ if isinstance(item, (list, tuple)):
1107
+ return tuple([convert(v) for v in item])
1108
+
1109
+ return item
1110
+
1111
+ return convert(iface)
1112
+
1075
1113
  def _addFormIface(self, form, name, subifaces=None):
1076
1114
 
1077
1115
  iface = self.ifaces.get(name)
@@ -1084,9 +1122,14 @@ class Model:
1084
1122
  mesg = f'Form {form.name} depends on deprecated interface {name} which will be removed in 3.0.0'
1085
1123
  logger.warning(mesg)
1086
1124
 
1125
+ iface = self._prepFormIface(form, iface)
1126
+
1087
1127
  for propname, typedef, propinfo in iface.get('props', ()):
1088
- if typedef[0] == '$self':
1089
- typedef = (form.name, typedef[1])
1128
+
1129
+ # allow form props to take precedence
1130
+ if form.prop(propname) is not None:
1131
+ continue
1132
+
1090
1133
  prop = self._addFormProp(form, propname, typedef, propinfo)
1091
1134
  self.ifaceprops[f'{name}:{propname}'].append(prop.full)
1092
1135
 
@@ -1108,6 +1151,36 @@ class Model:
1108
1151
  for ifname in ifaces:
1109
1152
  self._addFormIface(form, ifname, subifaces=subifaces)
1110
1153
 
1154
+ def _delFormIface(self, form, name, subifaces=None):
1155
+
1156
+ if (iface := self.ifaces.get(name)) is None:
1157
+ return
1158
+
1159
+ iface = self._prepFormIface(form, iface)
1160
+
1161
+ for propname, typedef, propinfo in iface.get('props', ()):
1162
+ fullprop = f'{form.name}:{propname}'
1163
+ self.delFormProp(form.name, propname)
1164
+ self.ifaceprops[f'{name}:{propname}'].remove(fullprop)
1165
+
1166
+ if subifaces is not None:
1167
+ for subi in subifaces:
1168
+ self.ifaceprops[f'{subi}:{propname}'].remove(fullprop)
1169
+
1170
+ form.ifaces.pop(name, None)
1171
+ self.formsbyiface[name].remove(form.name)
1172
+
1173
+ if (ifaces := iface.get('interfaces')) is not None:
1174
+ if subifaces is None:
1175
+ subifaces = []
1176
+ else:
1177
+ subifaces = list(subifaces)
1178
+
1179
+ subifaces.append(name)
1180
+
1181
+ for ifname in ifaces:
1182
+ self._delFormIface(form, ifname, subifaces=subifaces)
1183
+
1111
1184
  def delTagProp(self, name):
1112
1185
  return self.tagprops.pop(name)
1113
1186
 
@@ -1302,8 +1302,9 @@ class VarListSetOper(Oper):
1302
1302
  names = self.kids[0].value()
1303
1303
  vkid = self.kids[1]
1304
1304
 
1305
+ anynodes = False
1305
1306
  async for node, path in genr:
1306
-
1307
+ anynodes = True
1307
1308
  item = await vkid.compute(runt, path)
1308
1309
  item = [i async for i in s_stormtypes.toiter(item)]
1309
1310
 
@@ -1318,7 +1319,7 @@ class VarListSetOper(Oper):
1318
1319
 
1319
1320
  yield node, path
1320
1321
 
1321
- if vkid.isRuntSafe(runt):
1322
+ if not anynodes and vkid.isRuntSafe(runt):
1322
1323
 
1323
1324
  item = await vkid.compute(runt, None)
1324
1325
  item = [i async for i in s_stormtypes.toiter(item)]
@@ -1425,6 +1426,32 @@ class LiftOper(Oper):
1425
1426
  self.astinfo = astinfo
1426
1427
  self.reverse = True
1427
1428
 
1429
+ def getPivNames(self, runt, prop, pivs):
1430
+ pivnames = []
1431
+ typename = prop.type.name
1432
+ for piv in pivs:
1433
+ pivprop = runt.model.reqProp(f'{typename}:{piv}', extra=self.kids[0].addExcInfo)
1434
+ pivnames.append(pivprop.full)
1435
+ typename = pivprop.type.name
1436
+
1437
+ return pivnames
1438
+
1439
+ async def pivlift(self, runt, props, pivnames, genr):
1440
+
1441
+ async def pivvals(prop, pivgenr):
1442
+ async for node in pivgenr:
1443
+ async for pivo in runt.snap.nodesByPropValu(prop, '=', node.ndef[1], reverse=self.reverse):
1444
+ yield pivo
1445
+
1446
+ for pivname in pivnames[-2::-1]:
1447
+ genr = pivvals(pivname, genr)
1448
+
1449
+ async for node in genr:
1450
+ valu = node.ndef[1]
1451
+ for prop in props:
1452
+ async for node in runt.snap.nodesByPropValu(prop.full, '=', valu, reverse=self.reverse):
1453
+ yield node
1454
+
1428
1455
  async def run(self, runt, genr):
1429
1456
 
1430
1457
  if self.isRuntSafe(runt):
@@ -1583,30 +1610,52 @@ class LiftByArray(LiftOper):
1583
1610
  cmpr = await self.kids[1].compute(runt, path)
1584
1611
  valu = await s_stormtypes.tostor(await self.kids[2].compute(runt, path))
1585
1612
 
1586
- prop = runt.model.props.get(name)
1587
- if prop is not None:
1588
- async for node in runt.snap.nodesByPropArray(name, cmpr, valu, reverse=self.reverse):
1589
- yield node
1590
- return
1613
+ pivs = None
1614
+ if name.find('::') != -1:
1615
+ parts = name.split('::')
1616
+ name, pivs = parts[0], parts[1:]
1591
1617
 
1592
- proplist = runt.model.ifaceprops.get(name)
1593
- if proplist is None:
1594
- raise self.kids[0].addExcInfo(s_exc.NoSuchProp.init(name))
1618
+ if (prop := runt.model.props.get(name)) is not None:
1619
+ props = (prop,)
1620
+ else:
1621
+ proplist = runt.model.ifaceprops.get(name)
1622
+ if proplist is None:
1623
+ raise self.kids[0].addExcInfo(s_exc.NoSuchProp.init(name))
1595
1624
 
1596
- props = []
1597
- for propname in proplist:
1598
- props.append(runt.model.props.get(propname))
1625
+ props = []
1626
+ for propname in proplist:
1627
+ props.append(runt.model.props.get(propname))
1599
1628
 
1600
- relname = props[0].name
1601
- def cmprkey(node):
1602
- return node.props.get(relname)
1629
+ try:
1630
+ if pivs is not None:
1631
+ pivnames = self.getPivNames(runt, props[0], pivs)
1603
1632
 
1604
- genrs = []
1605
- for prop in props:
1606
- genrs.append(runt.snap.nodesByPropArray(prop.full, cmpr, valu, reverse=self.reverse))
1633
+ genr = runt.snap.nodesByPropArray(pivnames[-1], cmpr, valu, reverse=self.reverse)
1634
+ async for node in self.pivlift(runt, props, pivnames, genr):
1635
+ yield node
1636
+ return
1607
1637
 
1608
- async for node in s_common.merggenr2(genrs, cmprkey, reverse=self.reverse):
1609
- yield node
1638
+ if len(props) == 1:
1639
+ async for node in runt.snap.nodesByPropArray(name, cmpr, valu, reverse=self.reverse):
1640
+ yield node
1641
+ return
1642
+
1643
+ relname = props[0].name
1644
+ def cmprkey(node):
1645
+ return node.props.get(relname)
1646
+
1647
+ genrs = []
1648
+ for prop in props:
1649
+ genrs.append(runt.snap.nodesByPropArray(prop.full, cmpr, valu, reverse=self.reverse))
1650
+
1651
+ async for node in s_common.merggenr2(genrs, cmprkey, reverse=self.reverse):
1652
+ yield node
1653
+
1654
+ except s_exc.BadTypeValu as e:
1655
+ raise self.kids[2].addExcInfo(e)
1656
+
1657
+ except s_exc.SynErr as e:
1658
+ raise self.addExcInfo(e)
1610
1659
 
1611
1660
  class LiftTagProp(LiftOper):
1612
1661
  '''
@@ -1838,6 +1887,11 @@ class LiftPropBy(LiftOper):
1838
1887
  if not isinstance(valu, s_node.Node):
1839
1888
  valu = await s_stormtypes.tostor(valu)
1840
1889
 
1890
+ pivs = None
1891
+ if name.find('::') != -1:
1892
+ parts = name.split('::')
1893
+ name, pivs = parts[0], parts[1:]
1894
+
1841
1895
  prop = runt.model.props.get(name)
1842
1896
  if prop is not None:
1843
1897
  props = (prop,)
@@ -1851,6 +1905,14 @@ class LiftPropBy(LiftOper):
1851
1905
  props.append(runt.model.props.get(propname))
1852
1906
 
1853
1907
  try:
1908
+ if pivs is not None:
1909
+ pivnames = self.getPivNames(runt, props[0], pivs)
1910
+
1911
+ genr = runt.snap.nodesByPropValu(pivnames[-1], cmpr, valu, reverse=self.reverse)
1912
+ async for node in self.pivlift(runt, props, pivnames, genr):
1913
+ yield node
1914
+ return
1915
+
1854
1916
  if len(props) == 1:
1855
1917
  prop = props[0]
1856
1918
  async for node in runt.snap.nodesByPropValu(prop.full, cmpr, valu, reverse=self.reverse):
@@ -3793,7 +3855,7 @@ class ExprDict(Value):
3793
3855
 
3794
3856
  def prepare(self):
3795
3857
  self.const = None
3796
- if all(isinstance(k, Const) for k in self.kids):
3858
+ if all(isinstance(k, Const) and not isinstance(k, EmbedQuery) for k in self.kids):
3797
3859
  valu = {}
3798
3860
  for i in range(0, len(self.kids), 2):
3799
3861
  valu[self.kids[i].value()] = self.kids[i + 1].value()
@@ -3823,7 +3885,7 @@ class ExprList(Value):
3823
3885
 
3824
3886
  def prepare(self):
3825
3887
  self.const = None
3826
- if all(isinstance(k, Const) for k in self.kids):
3888
+ if all(isinstance(k, Const) and not isinstance(k, EmbedQuery) for k in self.kids):
3827
3889
  self.const = s_msgpack.en([k.value() for k in self.kids])
3828
3890
 
3829
3891
  async def compute(self, runt, path):
@@ -264,6 +264,19 @@ class Auth(s_nexus.Pusher):
264
264
  def _getRoleIden(self, name):
265
265
  return self.roleidenbyname.get(name)
266
266
 
267
+ # TODO convert getUserByName() and getRoleByName()
268
+ # back from async? These were plumbed to avoid infecting
269
+ # type norm/repr functions with async...
270
+ def _getRoleByName(self, name):
271
+ roleiden = self.roleidenbynamecache.get(name)
272
+ if roleiden is not None:
273
+ return self.role(roleiden)
274
+
275
+ def _getUserByName(self, name):
276
+ useriden = self.useridenbynamecache.get(name)
277
+ if useriden is not None:
278
+ return self.user(useriden)
279
+
267
280
  @s_nexus.Pusher.onPushAuto('user:profile:set')
268
281
  async def setUserProfileValu(self, iden, name, valu):
269
282
  user = await self.reqUser(iden)
@@ -464,6 +464,7 @@ def docStormTypes(page, docinfo, linkprefix, islib=False, lvl=1,
464
464
 
465
465
  locls = info.get('locals', ())
466
466
  locls = sorted(locls, key=lambda x: x.get('name'))
467
+ libdepr = info.get('deprecated')
467
468
 
468
469
  for locl in locls:
469
470
 
@@ -478,6 +479,8 @@ def docStormTypes(page, docinfo, linkprefix, islib=False, lvl=1,
478
479
  lines = []
479
480
  if depr := locl.get('deprecated'):
480
481
  lines.extend(genDeprecationWarning(f'${loclname}', depr, True))
482
+ elif libdepr is not None:
483
+ lines.extend(genDeprecationWarning(f'${loclname}', libdepr, True))
481
484
 
482
485
  if isinstance(rtype, dict):
483
486
  rname = rtype.get('type')
@@ -576,6 +579,7 @@ def runtimeDocStormTypes(page, docinfo, islib=False, lvl=1,
576
579
 
577
580
  page.addLines(*preamble)
578
581
 
582
+ libdepr = info.get('deprecated')
579
583
  locls = info.get('locals', ())
580
584
  locls = sorted(locls, key=lambda x: x.get('name'))
581
585
 
@@ -624,8 +628,11 @@ def runtimeDocStormTypes(page, docinfo, islib=False, lvl=1,
624
628
  assert rtype is not None
625
629
 
626
630
  lines = []
627
- if (depr := locl.get('deprecated')) and not oneline:
628
- lines.extend(genDeprecationWarning(f'${loclname}', depr))
631
+ if not oneline:
632
+ if (depr := locl.get('deprecated')):
633
+ lines.extend(genDeprecationWarning(f'${loclname}', depr))
634
+ elif libdepr is not None:
635
+ lines.extend(genDeprecationWarning(f'${loclname}', libdepr))
629
636
 
630
637
  if isinstance(rtype, dict):
631
638
  rname = rtype.get('type')
@@ -2118,6 +2118,13 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
2118
2118
  Hand off leadership to a mirror in a transactional fashion.
2119
2119
  '''
2120
2120
  _dispname = f' ahaname={self.conf.get("aha:name")}' if self.conf.get('aha:name') else ''
2121
+
2122
+ if not self.isactive:
2123
+ mesg = f'HANDOFF: {_dispname} is not the current leader and cannot handoff leadership to' \
2124
+ f' {s_urlhelp.sanitizeUrl(turl)}.'
2125
+ logger.error(mesg)
2126
+ raise s_exc.BadState(mesg=mesg, turl=turl, cursvc=_dispname)
2127
+
2121
2128
  logger.warning(f'HANDOFF: Performing leadership handoff to {s_urlhelp.sanitizeUrl(turl)}{_dispname}.')
2122
2129
  async with await s_telepath.openurl(turl) as cell:
2123
2130
 
@@ -3560,7 +3567,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
3560
3567
  item.setdefault('permissions', {})
3561
3568
  item['permissions'].setdefault('users', {})
3562
3569
  item['permissions'].setdefault('roles', {})
3563
- item['permissions']['default'] = default
3570
+ item['permissions'].setdefault('default', default)
3564
3571
 
3565
3572
  async def getTeleApi(self, link, mesg, path):
3566
3573
 
@@ -4439,6 +4446,11 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
4439
4446
  Returns:
4440
4447
  Dict: A Dictionary of metadata.
4441
4448
  '''
4449
+
4450
+ mirror = self.conf.get('mirror')
4451
+ if mirror is not None:
4452
+ mirror = s_urlhelp.sanitizeUrl(mirror)
4453
+
4442
4454
  ret = {
4443
4455
  'synapse': {
4444
4456
  'commit': s_version.commit,
@@ -4458,6 +4470,7 @@ class Cell(s_nexus.Pusher, s_telepath.Aware):
4458
4470
  'cellvers': dict(self.cellvers.items()),
4459
4471
  'nexsindx': await self.getNexsIndx(),
4460
4472
  'uplink': self.nexsroot.miruplink.is_set(),
4473
+ 'mirror': mirror,
4461
4474
  'aha': {
4462
4475
  'name': self.conf.get('aha:name'),
4463
4476
  'leader': self.conf.get('aha:leader'),
@@ -2,6 +2,7 @@
2
2
  Module which implements the synapse module API/convention.
3
3
  '''
4
4
  coremods = (
5
+ 'synapse.models.doc.DocModule',
5
6
  'synapse.models.dns.DnsModule',
6
7
  'synapse.models.orgs.OuModule',
7
8
  'synapse.models.syn.SynModule',
@@ -46,6 +46,7 @@ terminalEnglishMap = {
46
46
  'DOT': '.',
47
47
  'DOUBLEQUOTEDSTRING': 'double-quoted string',
48
48
  'ELIF': 'elif',
49
+ 'EMBEDPROPS': 'absolute property name with embed properties',
49
50
  'EQNOSPACE': '=',
50
51
  'EQSPACE': '=',
51
52
  'EQUAL': '=',
@@ -1692,6 +1692,7 @@ class Snap(s_base.Base):
1692
1692
 
1693
1693
  todo = s_common.todo('runRuntLift', full, valu, cmpr, self.view.iden)
1694
1694
  async for sode in self.core.dyniter('cortex', todo):
1695
+ await asyncio.sleep(0)
1695
1696
 
1696
1697
  node = s_node.Node(self, sode)
1697
1698
  node.isrunt = True
@@ -222,9 +222,9 @@ liftreverse: _REVERSE "(" (liftformtag | liftpropby | liftprop | liftbyarray | l
222
222
  _DEREF.3: /\*(?=\$)/
223
223
 
224
224
  liftformtag: ((PROPS | UNIVNAME | WILDPROPS) | _DEREF _varvalu) tagname [_cmpr _valu]
225
- liftpropby: ((PROPS | UNIVNAME) | _DEREF _varvalu) _cmpr _valu
225
+ liftpropby: ((PROPS | EMBEDPROPS | UNIVNAME) | _DEREF _varvalu) _cmpr _valu
226
226
  liftprop: ((PROPS | UNIVNAME | WILDPROPS) | _DEREF _varvalu)
227
- liftbyarray: ((PROPS | UNIVNAME) | _DEREF _varvalu) "*[" _safe_cmpr _valu "]"
227
+ liftbyarray: ((PROPS | EMBEDPROPS | UNIVNAME) | _DEREF _varvalu) "*[" _safe_cmpr _valu "]"
228
228
  lifttagtag: (_HASH | _HASHSPACE) tagname [_cmpr _valu]
229
229
  liftbytag: (tagname | tagnamewithspace) [_cmpr _valu]
230
230
  liftbytagprop: (tagprop | tagpropwithspace) [_cmpr _valu]
@@ -321,10 +321,10 @@ _valu: _basevalu | NONQUOTEWORD
321
321
  evalvalu: _valu
322
322
  exprdict: "{" ((_exprvalu | VARTOKN) (":" | _EXPRCOLONNOSPACE) (_exprvalu | VARTOKN) ("," (_exprvalu | VARTOKN) (":" | _EXPRCOLONNOSPACE) (_exprvalu | VARTOKN))* ","? )? "}"
323
323
  exprlist: "[" ((_exprvalu | VARTOKN) ("," (_exprvalu | VARTOKN))* ","? )? "]"
324
- // Just like _valu, but doesn't allow valu lists or unquoted strings or queries
324
+ // Just like _valu, but doesn't allow valu lists or unquoted strings
325
325
  _exprvalu: NUMBER | HEXNUMBER | OCTNUMBER | BOOL | NULL | exprlist | exprdict | _exprvarvalu | exprrelpropvalu
326
326
  | exprunivpropvalu | exprtagvalu | exprtagpropvalu | TRIPLEQUOTEDSTRING | DOUBLEQUOTEDSTRING
327
- | SINGLEQUOTEDSTRING | formatstring | _innerdollarexprs
327
+ | SINGLEQUOTEDSTRING | formatstring | _innerdollarexprs | embedquery
328
328
 
329
329
  // Expr versions of rules to avoid invalid state merges
330
330
  _innerdollarexprs: "$"? innerdollaroper
@@ -454,8 +454,14 @@ formatstring: "`" (_formatexpr | FORMATTEXT)* "`"
454
454
 
455
455
  // Must be kept consistent with same regexes in synapse/lib/grammar.py
456
456
  // A full property. Must contain at least 1 colon
457
- PROPS.2: /[a-z_][a-z0-9_]*(:[a-z0-9_]+)+([:.][a-z0-9_]+)*(?![:.a-z0-9_\-])/
458
- WILDPROPS.2: /[a-z_][a-z0-9_]*(:\*|(:[a-z0-9_]+)+([:.][a-z0-9_]+)*:?\*)(?![:.a-z0-9_\-\[])/
457
+ PROPS.3: /[a-z_][a-z0-9_]*(:[a-z0-9_]+)+([:.][a-z0-9_]+)*(?![:.a-z0-9_\-])/
458
+
459
+ // A full property containing a wildcard
460
+ WILDPROPS.3: /[a-z_][a-z0-9_]*(:\*|(:[a-z0-9_]+)+([:.][a-z0-9_]+)*:?\*)(?![:.a-z0-9_\-\[])/
461
+
462
+ // A full property with embed properties
463
+ EMBEDPROPS.2: /[a-z_][a-z0-9_]*(:[a-z0-9_]+)+((\:\:|\:|\.)[a-z0-9_]+)*(?![:.a-z0-9_\-])/
464
+
459
465
  // A universal property
460
466
  UNIVNAME.2: /(?<=^|[\s\|\{\(\[+=-])\.[a-z_][a-z0-9_]*([:.][a-z0-9_]+)*/
461
467
  univprop: UNIVNAME | "." _varvalu
@@ -1778,8 +1778,10 @@ class StormDmon(s_base.Base):
1778
1778
 
1779
1779
  text = self.ddef.get('storm')
1780
1780
  opts = self.ddef.get('stormopts', {})
1781
- vars = opts.setdefault('vars', {})
1781
+
1782
+ vars = await s_stormtypes.toprim(opts.get('vars', {}), use_list=True)
1782
1783
  vars.setdefault('auto', {'iden': self.iden, 'type': 'dmon'})
1784
+ opts['vars'] = vars
1783
1785
 
1784
1786
  viewiden = opts.get('view')
1785
1787
 
@@ -2732,15 +2734,28 @@ class Parser:
2732
2734
  self.exited = True
2733
2735
  return False
2734
2736
 
2737
+ def _wrap_text(self, text, width):
2738
+ lines, curline, curlen = [], [], 0
2739
+ for word in text.split():
2740
+ if curlen + len(word) + bool(curline) > width:
2741
+ lines.append(' '.join(curline))
2742
+ curline, curlen = [word], len(word)
2743
+ else:
2744
+ curline.append(word)
2745
+ curlen += len(word) + bool(curline)
2746
+ if curline:
2747
+ lines.append(' '.join(curline))
2748
+ return lines
2749
+
2735
2750
  def _print_optarg(self, names, argdef):
2736
2751
 
2737
2752
  dest = self._get_dest_str(argdef)
2738
2753
  oact = argdef.get('action', 'store')
2739
2754
 
2740
2755
  if oact in ('store_true', 'store_false'):
2741
- base = f' {names[0]}'.ljust(30)
2756
+ base = f' {names[0]}'
2742
2757
  else:
2743
- base = f' {names[0]} {dest}'.ljust(30)
2758
+ base = f' {names[0]} {dest}'
2744
2759
 
2745
2760
  defval = argdef.get('default', s_common.novalu)
2746
2761
  choices = argdef.get('choices')
@@ -2748,12 +2763,14 @@ class Parser:
2748
2763
 
2749
2764
  if defval is not s_common.novalu and oact not in ('store_true', 'store_false'):
2750
2765
  if isinstance(defval, (tuple, list, dict)):
2751
- defval = pprint.pformat(defval, indent=34, width=100)
2752
- if '\n' in defval:
2753
- defval = '\n' + defval
2766
+ defval_ls = pprint.pformat(defval, width=120).split('\n')
2767
+ defval = '\n'.join(ln.strip() for ln in defval_ls)
2754
2768
 
2755
2769
  if choices is None:
2756
- helpstr = f'{helpstr} (default: {defval})'
2770
+ if (lambda tst: '\n' in tst if isinstance(tst, str) else False)(defval):
2771
+ helpstr = f'{helpstr} (default: \n{defval})'
2772
+ else:
2773
+ helpstr = f'{helpstr} (default: {defval})'
2757
2774
  else:
2758
2775
  cstr = ', '.join(str(c) for c in choices)
2759
2776
  helpstr = f'{helpstr} (default: {defval}, choices: {cstr})'
@@ -2762,7 +2779,26 @@ class Parser:
2762
2779
  cstr = ', '.join(str(c) for c in choices)
2763
2780
  helpstr = f'{helpstr} (choices: {cstr})'
2764
2781
 
2765
- self._printf(f'{base}: {helpstr}')
2782
+ helplst = helpstr.split('\n')
2783
+ if helplst and not helplst[0].strip():
2784
+ helplst = helplst[1:]
2785
+ min_space = min((len(ln) - len(ln.lstrip()) for ln in helplst if ln.strip()), default=0)
2786
+
2787
+ base_w = 32
2788
+ wrap_w = 120 - base_w
2789
+
2790
+ first = helplst[0][min_space:]
2791
+ wrap_first = self._wrap_text(first, wrap_w)
2792
+ self._printf(f'{base:<{base_w-2}}: {wrap_first[0]}')
2793
+
2794
+ for ln in wrap_first[1:]: self._printf(f'{"":<{base_w}}{ln}')
2795
+ for ln in helplst[1:]:
2796
+ lead_s = len(ln) - len(ln.lstrip())
2797
+ rel_ind = lead_s - min_space
2798
+ ind = ' ' * (base_w + rel_ind)
2799
+ wrapped = self._wrap_text(ln.lstrip(), wrap_w - rel_ind)
2800
+ for wl in wrapped:
2801
+ self._printf(f'{ind}{wl}')
2766
2802
 
2767
2803
  def _print_posarg(self, name, argdef):
2768
2804
  dest = self._get_dest_str(argdef)
@@ -5232,7 +5268,7 @@ class BackgroundCmd(Cmd):
5232
5268
  async for item in genr:
5233
5269
  yield item
5234
5270
 
5235
- runtprims = await s_stormtypes.toprim(self.runt.getScopeVars())
5271
+ runtprims = await s_stormtypes.toprim(self.runt.getScopeVars(), use_list=True)
5236
5272
  runtvars = {k: v for (k, v) in runtprims.items() if s_msgpack.isok(v)}
5237
5273
 
5238
5274
  opts = {
@@ -29,6 +29,7 @@ TerminalPygMap = {
29
29
  'DOT': p_t.Punctuation,
30
30
  'DOUBLEQUOTEDSTRING': p_t.Literal.String,
31
31
  'ELIF': p_t.Keyword,
32
+ 'EMBEDPROPS': p_t.Name,
32
33
  'EQNOSPACE': p_t.Punctuation,
33
34
  'EQSPACE': p_t.Punctuation,
34
35
  'EQUAL': p_t.Punctuation,