synapse 2.180.0__py311-none-any.whl → 2.181.0__py311-none-any.whl

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 (88) hide show
  1. synapse/assets/__init__.py +35 -0
  2. synapse/assets/storm/migrations/model-0.2.28.storm +355 -0
  3. synapse/common.py +2 -1
  4. synapse/cortex.py +49 -35
  5. synapse/cryotank.py +1 -1
  6. synapse/datamodel.py +30 -0
  7. synapse/lib/ast.py +12 -7
  8. synapse/lib/cell.py +1 -1
  9. synapse/lib/certdir.py +4 -4
  10. synapse/lib/chop.py +0 -1
  11. synapse/lib/drive.py +8 -8
  12. synapse/lib/layer.py +55 -13
  13. synapse/lib/lmdbslab.py +26 -5
  14. synapse/lib/modelrev.py +28 -1
  15. synapse/lib/modules.py +1 -0
  16. synapse/lib/nexus.py +1 -1
  17. synapse/lib/node.py +5 -0
  18. synapse/lib/parser.py +23 -16
  19. synapse/lib/scrape.py +1 -1
  20. synapse/lib/slabseqn.py +2 -2
  21. synapse/lib/snap.py +129 -0
  22. synapse/lib/storm.lark +16 -2
  23. synapse/lib/storm.py +3 -0
  24. synapse/lib/storm_format.py +1 -0
  25. synapse/lib/stormhttp.py +34 -1
  26. synapse/lib/stormlib/auth.py +1 -1
  27. synapse/lib/stormlib/cortex.py +5 -2
  28. synapse/lib/stormlib/ipv6.py +2 -2
  29. synapse/lib/stormlib/model.py +114 -12
  30. synapse/lib/stormlib/project.py +1 -1
  31. synapse/lib/stormtypes.py +81 -7
  32. synapse/lib/types.py +7 -0
  33. synapse/lib/version.py +2 -2
  34. synapse/lib/view.py +47 -0
  35. synapse/models/inet.py +10 -3
  36. synapse/models/infotech.py +2 -1
  37. synapse/models/language.py +4 -0
  38. synapse/models/math.py +50 -0
  39. synapse/models/orgs.py +8 -0
  40. synapse/models/risk.py +9 -0
  41. synapse/tests/files/stormcov/pragma-nocov.storm +18 -0
  42. synapse/tests/test_assets.py +25 -0
  43. synapse/tests/test_cortex.py +129 -0
  44. synapse/tests/test_datamodel.py +6 -0
  45. synapse/tests/test_lib_aha.py +2 -1
  46. synapse/tests/test_lib_certdir.py +9 -0
  47. synapse/tests/test_lib_grammar.py +7 -1
  48. synapse/tests/test_lib_layer.py +35 -0
  49. synapse/tests/test_lib_lmdbslab.py +11 -9
  50. synapse/tests/test_lib_modelrev.py +655 -1
  51. synapse/tests/test_lib_slabseqn.py +5 -4
  52. synapse/tests/test_lib_snap.py +4 -0
  53. synapse/tests/test_lib_storm.py +72 -1
  54. synapse/tests/test_lib_stormhttp.py +99 -1
  55. synapse/tests/test_lib_stormlib_cortex.py +21 -4
  56. synapse/tests/test_lib_stormlib_iters.py +8 -5
  57. synapse/tests/test_lib_stormlib_model.py +45 -6
  58. synapse/tests/test_lib_stormtypes.py +158 -2
  59. synapse/tests/test_lib_types.py +6 -0
  60. synapse/tests/test_model_inet.py +10 -0
  61. synapse/tests/test_model_language.py +4 -0
  62. synapse/tests/test_model_math.py +22 -0
  63. synapse/tests/test_model_orgs.py +6 -2
  64. synapse/tests/test_model_risk.py +4 -0
  65. synapse/tests/test_utils_stormcov.py +5 -0
  66. synapse/tests/utils.py +18 -5
  67. synapse/utils/stormcov/plugin.py +31 -1
  68. synapse/vendor/cpython/LICENSE +279 -0
  69. synapse/vendor/cpython/__init__.py +0 -0
  70. synapse/vendor/cpython/lib/__init__.py +0 -0
  71. synapse/vendor/cpython/lib/email/__init__.py +0 -0
  72. synapse/vendor/cpython/lib/email/_parseaddr.py +560 -0
  73. synapse/vendor/cpython/lib/email/utils.py +505 -0
  74. synapse/vendor/cpython/lib/ipaddress.py +2366 -0
  75. synapse/vendor/cpython/lib/test/__init__.py +0 -0
  76. synapse/vendor/cpython/lib/test/support/__init__.py +114 -0
  77. synapse/vendor/cpython/lib/test/test_email/__init__.py +0 -0
  78. synapse/vendor/cpython/lib/test/test_email/test_email.py +480 -0
  79. synapse/vendor/cpython/lib/test/test_email/test_utils.py +167 -0
  80. synapse/vendor/cpython/lib/test/test_ipaddress.py +2672 -0
  81. synapse/vendor/utils.py +4 -3
  82. {synapse-2.180.0.dist-info → synapse-2.181.0.dist-info}/METADATA +2 -2
  83. {synapse-2.180.0.dist-info → synapse-2.181.0.dist-info}/RECORD +86 -69
  84. {synapse-2.180.0.dist-info → synapse-2.181.0.dist-info}/WHEEL +1 -1
  85. synapse/lib/jupyter.py +0 -505
  86. synapse/tests/test_lib_jupyter.py +0 -224
  87. {synapse-2.180.0.dist-info → synapse-2.181.0.dist-info}/LICENSE +0 -0
  88. {synapse-2.180.0.dist-info → synapse-2.181.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,167 @@
1
+ ##############################################################################
2
+ # Taken from the cpython 3.11 source branch after the 3.11.10 release.
3
+ # It has been modified for vendored imports and vendored test harness.
4
+ ##############################################################################
5
+
6
+ import datetime
7
+ import time
8
+ import unittest
9
+ import sys
10
+ import os.path
11
+ import zoneinfo
12
+
13
+ from synapse.vendor.cpython.lib.email import utils
14
+
15
+ import synapse.vendor.utils as s_v_utils
16
+ import synapse.vendor.cpython.lib.test.support as t_support
17
+
18
+
19
+ class DateTimeTests(s_v_utils.VendorTest):
20
+
21
+ datestring = 'Sun, 23 Sep 2001 20:10:55'
22
+ dateargs = (2001, 9, 23, 20, 10, 55)
23
+ offsetstring = ' -0700'
24
+ utcoffset = datetime.timedelta(hours=-7)
25
+ tz = datetime.timezone(utcoffset)
26
+ naive_dt = datetime.datetime(*dateargs)
27
+ aware_dt = datetime.datetime(*dateargs, tzinfo=tz)
28
+
29
+ def test_naive_datetime(self):
30
+ self.assertEqual(utils.format_datetime(self.naive_dt),
31
+ self.datestring + ' -0000')
32
+
33
+ def test_aware_datetime(self):
34
+ self.assertEqual(utils.format_datetime(self.aware_dt),
35
+ self.datestring + self.offsetstring)
36
+
37
+ def test_usegmt(self):
38
+ utc_dt = datetime.datetime(*self.dateargs,
39
+ tzinfo=datetime.timezone.utc)
40
+ self.assertEqual(utils.format_datetime(utc_dt, usegmt=True),
41
+ self.datestring + ' GMT')
42
+
43
+ def test_usegmt_with_naive_datetime_raises(self):
44
+ with self.assertRaises(ValueError):
45
+ utils.format_datetime(self.naive_dt, usegmt=True)
46
+
47
+ def test_usegmt_with_non_utc_datetime_raises(self):
48
+ with self.assertRaises(ValueError):
49
+ utils.format_datetime(self.aware_dt, usegmt=True)
50
+
51
+ def test_parsedate_to_datetime(self):
52
+ self.assertEqual(
53
+ utils.parsedate_to_datetime(self.datestring + self.offsetstring),
54
+ self.aware_dt)
55
+
56
+ def test_parsedate_to_datetime_naive(self):
57
+ self.assertEqual(
58
+ utils.parsedate_to_datetime(self.datestring + ' -0000'),
59
+ self.naive_dt)
60
+
61
+ def test_parsedate_to_datetime_with_invalid_raises_valueerror(self):
62
+ # See also test_parsedate_returns_None_for_invalid_strings in test_email.
63
+ invalid_dates = [
64
+ '',
65
+ ' ',
66
+ '0',
67
+ 'A Complete Waste of Time',
68
+ 'Wed, 3 Apr 2002 12.34.56.78+0800'
69
+ 'Tue, 06 Jun 2017 27:39:33 +0600',
70
+ 'Tue, 06 Jun 2017 07:39:33 +2600',
71
+ 'Tue, 06 Jun 2017 27:39:33',
72
+ '17 June , 2022',
73
+ 'Friday, -Nov-82 16:14:55 EST',
74
+ 'Friday, Nov--82 16:14:55 EST',
75
+ 'Friday, 19-Nov- 16:14:55 EST',
76
+ ]
77
+ for dtstr in invalid_dates:
78
+ with self.subTest(dtstr=dtstr):
79
+ self.assertRaises(ValueError, utils.parsedate_to_datetime, dtstr)
80
+
81
+ class LocaltimeTests(s_v_utils.VendorTest):
82
+
83
+ def test_localtime_is_tz_aware_daylight_true(self):
84
+ t_support.patch(self, time, 'daylight', True)
85
+ t = utils.localtime()
86
+ self.assertIsNotNone(t.tzinfo)
87
+
88
+ def test_localtime_is_tz_aware_daylight_false(self):
89
+ t_support.patch(self, time, 'daylight', False)
90
+ t = utils.localtime()
91
+ self.assertIsNotNone(t.tzinfo)
92
+
93
+ def test_localtime_daylight_true_dst_false(self):
94
+ t_support.patch(self, time, 'daylight', True)
95
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
96
+ t1 = utils.localtime(t0, isdst=-1)
97
+ t2 = utils.localtime(t1)
98
+ self.assertEqual(t1, t2)
99
+
100
+ def test_localtime_daylight_false_dst_false(self):
101
+ t_support.patch(self, time, 'daylight', False)
102
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
103
+ t1 = utils.localtime(t0, isdst=-1)
104
+ t2 = utils.localtime(t1)
105
+ self.assertEqual(t1, t2)
106
+
107
+ @t_support.run_with_tz('Europe/Minsk')
108
+ def test_localtime_daylight_true_dst_true(self):
109
+ t_support.patch(self, time, 'daylight', True)
110
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
111
+ t1 = utils.localtime(t0, isdst=1)
112
+ t2 = utils.localtime(t1)
113
+ self.assertEqual(t1, t2)
114
+
115
+ @t_support.run_with_tz('Europe/Minsk')
116
+ def test_localtime_daylight_false_dst_true(self):
117
+ t_support.patch(self, time, 'daylight', False)
118
+ t0 = datetime.datetime(2012, 3, 12, 1, 1)
119
+ t1 = utils.localtime(t0, isdst=1)
120
+ t2 = utils.localtime(t1)
121
+ self.assertEqual(t1, t2)
122
+
123
+ @t_support.run_with_tz('EST+05EDT,M3.2.0,M11.1.0')
124
+ def test_localtime_epoch_utc_daylight_true(self):
125
+ t_support.patch(self, time, 'daylight', True)
126
+ t0 = datetime.datetime(1990, 1, 1, tzinfo=datetime.timezone.utc)
127
+ t1 = utils.localtime(t0)
128
+ t2 = t0 - datetime.timedelta(hours=5)
129
+ t2 = t2.replace(tzinfo=datetime.timezone(datetime.timedelta(hours=-5)))
130
+ self.assertEqual(t1, t2)
131
+
132
+ @t_support.run_with_tz('EST+05EDT,M3.2.0,M11.1.0')
133
+ def test_localtime_epoch_utc_daylight_false(self):
134
+ t_support.patch(self, time, 'daylight', False)
135
+ t0 = datetime.datetime(1990, 1, 1, tzinfo=datetime.timezone.utc)
136
+ t1 = utils.localtime(t0)
137
+ t2 = t0 - datetime.timedelta(hours=5)
138
+ t2 = t2.replace(tzinfo=datetime.timezone(datetime.timedelta(hours=-5)))
139
+ self.assertEqual(t1, t2)
140
+
141
+ def test_localtime_epoch_notz_daylight_true(self):
142
+ t_support.patch(self, time, 'daylight', True)
143
+ t0 = datetime.datetime(1990, 1, 1)
144
+ t1 = utils.localtime(t0)
145
+ t2 = utils.localtime(t0.replace(tzinfo=None))
146
+ self.assertEqual(t1, t2)
147
+
148
+ def test_localtime_epoch_notz_daylight_false(self):
149
+ t_support.patch(self, time, 'daylight', False)
150
+ t0 = datetime.datetime(1990, 1, 1)
151
+ t1 = utils.localtime(t0)
152
+ t2 = utils.localtime(t0.replace(tzinfo=None))
153
+ self.assertEqual(t1, t2)
154
+
155
+ @t_support.run_with_tz('Europe/Kyiv')
156
+ def test_variable_tzname(self):
157
+ t0 = datetime.datetime(1984, 1, 1, tzinfo=datetime.timezone.utc)
158
+ t1 = utils.localtime(t0)
159
+ if t1.tzname() in ('Europe', 'UTC'):
160
+ self.skipTest("Can't find a Kyiv timezone database")
161
+ self.assertEqual(t1.tzname(), 'MSK')
162
+ t0 = datetime.datetime(1994, 1, 1, tzinfo=datetime.timezone.utc)
163
+ t1 = utils.localtime(t0)
164
+ self.assertEqual(t1.tzname(), 'EET')
165
+
166
+ if __name__ == '__main__': # pragma: no cover
167
+ unittest.main()