crate 0.29.0__py2.py3-none-any.whl → 0.30.1__py2.py3-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.
- crate/client/__init__.py +1 -1
- crate/client/_pep440.py +501 -0
- crate/client/connection.py +3 -3
- crate/client/sqlalchemy/__init__.py +24 -0
- crate/client/sqlalchemy/compat/__init__.py +0 -0
- crate/client/sqlalchemy/compat/api13.py +156 -0
- crate/client/sqlalchemy/compat/core10.py +264 -0
- crate/client/sqlalchemy/compat/core14.py +359 -0
- crate/client/sqlalchemy/compat/core20.py +447 -0
- crate/client/sqlalchemy/compiler.py +1 -481
- crate/client/sqlalchemy/dialect.py +32 -17
- crate/client/sqlalchemy/sa_version.py +4 -3
- crate/client/sqlalchemy/tests/__init__.py +17 -6
- crate/client/sqlalchemy/tests/array_test.py +6 -3
- crate/client/sqlalchemy/tests/bulk_test.py +7 -4
- crate/client/sqlalchemy/tests/compiler_test.py +10 -9
- crate/client/sqlalchemy/tests/connection_test.py +25 -11
- crate/client/sqlalchemy/tests/create_table_test.py +19 -16
- crate/client/sqlalchemy/tests/datetime_test.py +6 -3
- crate/client/sqlalchemy/tests/dialect_test.py +42 -13
- crate/client/sqlalchemy/tests/dict_test.py +17 -13
- crate/client/sqlalchemy/tests/function_test.py +6 -3
- crate/client/sqlalchemy/tests/insert_from_select_test.py +9 -6
- crate/client/sqlalchemy/tests/match_test.py +6 -3
- crate/client/sqlalchemy/tests/update_test.py +6 -3
- crate/client/sqlalchemy/tests/warnings_test.py +33 -0
- crate/client/test_connection.py +25 -0
- crate/client/tests.py +98 -119
- crate/testing/layer.py +1 -1
- crate/testing/settings.py +51 -0
- crate/testing/test_layer.py +188 -2
- crate/testing/tests.py +2 -38
- crate/testing/util.py +20 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/METADATA +10 -8
- crate-0.30.1.dist-info/RECORD +53 -0
- crate-0.29.0.dist-info/RECORD +0 -44
- /crate-0.29.0-py3.9-nspkg.pth → /crate-0.30.1-py3.9-nspkg.pth +0 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/LICENSE +0 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/NOTICE +0 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/WHEEL +0 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/entry_points.txt +0 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/namespace_packages.txt +0 -0
- {crate-0.29.0.dist-info → crate-0.30.1.dist-info}/top_level.txt +0 -0
crate/testing/test_layer.py
CHANGED
@@ -22,12 +22,15 @@ import json
|
|
22
22
|
import os
|
23
23
|
import tempfile
|
24
24
|
import urllib
|
25
|
-
from
|
25
|
+
from crate.client._pep440 import Version
|
26
26
|
from unittest import TestCase, mock
|
27
27
|
from io import BytesIO
|
28
28
|
|
29
|
+
import urllib3
|
30
|
+
|
29
31
|
import crate
|
30
32
|
from .layer import CrateLayer, prepend_http, http_url_from_host_port, wait_for_http_url
|
33
|
+
from .settings import crate_path
|
31
34
|
|
32
35
|
|
33
36
|
class LayerUtilsTest(TestCase):
|
@@ -72,7 +75,7 @@ class LayerUtilsTest(TestCase):
|
|
72
75
|
versions = json.loads(response.read().decode())
|
73
76
|
version = versions["crate_testing"]
|
74
77
|
|
75
|
-
self.assertGreaterEqual(
|
78
|
+
self.assertGreaterEqual(Version(version), Version("4.5.0"))
|
76
79
|
|
77
80
|
uri = "https://cdn.crate.io/downloads/releases/crate-{}.tar.gz".format(version)
|
78
81
|
layer = CrateLayer.from_uri(uri, name="crate-by-uri", http_port=42203)
|
@@ -102,3 +105,186 @@ class LayerUtilsTest(TestCase):
|
|
102
105
|
os.environ['JAVA_HOME'] = java_11_home
|
103
106
|
layer = CrateLayer('java-home-test', tmpdir, env={'JAVA_HOME': java_12_home})
|
104
107
|
self.assertEqual(layer.env['JAVA_HOME'], java_12_home)
|
108
|
+
|
109
|
+
|
110
|
+
class LayerTest(TestCase):
|
111
|
+
|
112
|
+
def test_basic(self):
|
113
|
+
"""
|
114
|
+
This layer starts and stops a ``Crate`` instance on a given host, port,
|
115
|
+
a given crate node name and, optionally, a given cluster name::
|
116
|
+
"""
|
117
|
+
|
118
|
+
port = 44219
|
119
|
+
transport_port = 44319
|
120
|
+
|
121
|
+
layer = CrateLayer('crate',
|
122
|
+
crate_home=crate_path(),
|
123
|
+
host='127.0.0.1',
|
124
|
+
port=port,
|
125
|
+
transport_port=transport_port,
|
126
|
+
cluster_name='my_cluster'
|
127
|
+
)
|
128
|
+
|
129
|
+
# The working directory is defined on layer instantiation.
|
130
|
+
# It is sometimes required to know it before starting the layer.
|
131
|
+
self.assertRegex(layer.wdPath(), r".+/crate_layer/crate")
|
132
|
+
|
133
|
+
# Start the layer.
|
134
|
+
layer.start()
|
135
|
+
|
136
|
+
# The urls of the crate servers to be instantiated can be obtained
|
137
|
+
# via `crate_servers`.
|
138
|
+
self.assertEqual(layer.crate_servers, ["http://127.0.0.1:44219"])
|
139
|
+
|
140
|
+
# Access the CrateDB instance on the HTTP interface.
|
141
|
+
|
142
|
+
http = urllib3.PoolManager()
|
143
|
+
|
144
|
+
stats_uri = "http://127.0.0.1:{0}/".format(port)
|
145
|
+
response = http.request('GET', stats_uri)
|
146
|
+
self.assertEqual(response.status, 200)
|
147
|
+
|
148
|
+
# The layer can be shutdown using its `stop()` method.
|
149
|
+
layer.stop()
|
150
|
+
|
151
|
+
def test_dynamic_http_port(self):
|
152
|
+
"""
|
153
|
+
It is also possible to define a port range instead of a static HTTP port for the layer.
|
154
|
+
|
155
|
+
Crate will start with the first available port in the given range and the test
|
156
|
+
layer obtains the chosen port from the startup logs of the Crate process.
|
157
|
+
Note, that this feature requires a logging configuration with at least loglevel
|
158
|
+
``INFO`` on ``http``.
|
159
|
+
"""
|
160
|
+
port = '44200-44299'
|
161
|
+
layer = CrateLayer('crate', crate_home=crate_path(), port=port)
|
162
|
+
layer.start()
|
163
|
+
self.assertRegex(layer.crate_servers[0], r"http://127.0.0.1:442\d\d")
|
164
|
+
layer.stop()
|
165
|
+
|
166
|
+
def test_default_settings(self):
|
167
|
+
"""
|
168
|
+
Starting a CrateDB layer leaving out optional parameters will apply the following
|
169
|
+
defaults.
|
170
|
+
|
171
|
+
The default http port is the first free port in the range of ``4200-4299``,
|
172
|
+
the default transport port is the first free port in the range of ``4300-4399``,
|
173
|
+
the host defaults to ``127.0.0.1``.
|
174
|
+
|
175
|
+
The command to call is ``bin/crate`` inside the ``crate_home`` path.
|
176
|
+
The default config file is ``config/crate.yml`` inside ``crate_home``.
|
177
|
+
The default cluster name will be auto generated using the HTTP port.
|
178
|
+
"""
|
179
|
+
layer = CrateLayer('crate_defaults', crate_home=crate_path())
|
180
|
+
layer.start()
|
181
|
+
self.assertEqual(layer.crate_servers[0], "http://127.0.0.1:4200")
|
182
|
+
layer.stop()
|
183
|
+
|
184
|
+
def test_additional_settings(self):
|
185
|
+
"""
|
186
|
+
The ``Crate`` layer can be started with additional settings as well.
|
187
|
+
Add a dictionary for keyword argument ``settings`` which contains your settings.
|
188
|
+
Those additional setting will override settings given as keyword argument.
|
189
|
+
|
190
|
+
The settings will be handed over to the ``Crate`` process with the ``-C`` flag.
|
191
|
+
So the setting ``threadpool.bulk.queue_size: 100`` becomes
|
192
|
+
the command line flag: ``-Cthreadpool.bulk.queue_size=100``::
|
193
|
+
"""
|
194
|
+
layer = CrateLayer(
|
195
|
+
'custom',
|
196
|
+
crate_path(),
|
197
|
+
port=44401,
|
198
|
+
settings={
|
199
|
+
"cluster.graceful_stop.min_availability": "none",
|
200
|
+
"http.port": 44402
|
201
|
+
}
|
202
|
+
)
|
203
|
+
layer.start()
|
204
|
+
self.assertEqual(layer.crate_servers[0], "http://127.0.0.1:44402")
|
205
|
+
self.assertIn("-Ccluster.graceful_stop.min_availability=none", layer.start_cmd)
|
206
|
+
layer.stop()
|
207
|
+
|
208
|
+
def test_verbosity(self):
|
209
|
+
"""
|
210
|
+
The test layer hides the standard output of Crate per default. To increase the
|
211
|
+
verbosity level the additional keyword argument ``verbose`` needs to be set
|
212
|
+
to ``True``::
|
213
|
+
"""
|
214
|
+
layer = CrateLayer('crate',
|
215
|
+
crate_home=crate_path(),
|
216
|
+
verbose=True)
|
217
|
+
layer.start()
|
218
|
+
self.assertTrue(layer.verbose)
|
219
|
+
layer.stop()
|
220
|
+
|
221
|
+
def test_environment_variables(self):
|
222
|
+
"""
|
223
|
+
It is possible to provide environment variables for the ``Crate`` testing
|
224
|
+
layer.
|
225
|
+
"""
|
226
|
+
layer = CrateLayer('crate',
|
227
|
+
crate_home=crate_path(),
|
228
|
+
env={"CRATE_HEAP_SIZE": "300m"})
|
229
|
+
|
230
|
+
layer.start()
|
231
|
+
|
232
|
+
sql_uri = layer.crate_servers[0] + "/_sql"
|
233
|
+
|
234
|
+
http = urllib3.PoolManager()
|
235
|
+
response = http.urlopen('POST', sql_uri,
|
236
|
+
body='{"stmt": "select heap[\'max\'] from sys.nodes"}')
|
237
|
+
json_response = json.loads(response.data.decode('utf-8'))
|
238
|
+
|
239
|
+
self.assertEqual(json_response["rows"][0][0], 314572800)
|
240
|
+
|
241
|
+
layer.stop()
|
242
|
+
|
243
|
+
def test_cluster(self):
|
244
|
+
"""
|
245
|
+
To start a cluster of ``Crate`` instances, give each instance the same
|
246
|
+
``cluster_name``. If you want to start instances on the same machine then
|
247
|
+
use value ``_local_`` for ``host`` and give every node different ports::
|
248
|
+
"""
|
249
|
+
cluster_layer1 = CrateLayer(
|
250
|
+
'crate1',
|
251
|
+
crate_path(),
|
252
|
+
host='_local_',
|
253
|
+
cluster_name='my_cluster',
|
254
|
+
)
|
255
|
+
cluster_layer2 = CrateLayer(
|
256
|
+
'crate2',
|
257
|
+
crate_path(),
|
258
|
+
host='_local_',
|
259
|
+
cluster_name='my_cluster',
|
260
|
+
settings={"discovery.initial_state_timeout": "10s"}
|
261
|
+
)
|
262
|
+
|
263
|
+
# If we start both layers, they will, after a small amount of time, find each other
|
264
|
+
# and form a cluster.
|
265
|
+
cluster_layer1.start()
|
266
|
+
cluster_layer2.start()
|
267
|
+
|
268
|
+
# We can verify that by checking the number of nodes a node knows about.
|
269
|
+
http = urllib3.PoolManager()
|
270
|
+
|
271
|
+
def num_cluster_nodes(crate_layer):
|
272
|
+
sql_uri = crate_layer.crate_servers[0] + "/_sql"
|
273
|
+
response = http.urlopen('POST', sql_uri, body='{"stmt":"select count(*) from sys.nodes"}')
|
274
|
+
json_response = json.loads(response.data.decode('utf-8'))
|
275
|
+
return json_response["rows"][0][0]
|
276
|
+
|
277
|
+
# We might have to wait a moment before the cluster is finally created.
|
278
|
+
num_nodes = num_cluster_nodes(cluster_layer1)
|
279
|
+
import time
|
280
|
+
retries = 0
|
281
|
+
while num_nodes < 2: # pragma: no cover
|
282
|
+
time.sleep(1)
|
283
|
+
num_nodes = num_cluster_nodes(cluster_layer1)
|
284
|
+
retries += 1
|
285
|
+
if retries == 30:
|
286
|
+
break
|
287
|
+
self.assertEqual(num_nodes, 2)
|
288
|
+
|
289
|
+
cluster_layer1.stop()
|
290
|
+
cluster_layer2.stop()
|
crate/testing/tests.py
CHANGED
@@ -20,48 +20,12 @@
|
|
20
20
|
# with Crate these terms will supersede the license and you may use the
|
21
21
|
# software solely pursuant to the terms of the relevant commercial agreement.
|
22
22
|
|
23
|
-
import os
|
24
23
|
import unittest
|
25
|
-
import
|
26
|
-
import tempfile
|
27
|
-
from .test_layer import LayerUtilsTest
|
28
|
-
|
29
|
-
|
30
|
-
def docs_path(*parts):
|
31
|
-
return os.path.abspath(
|
32
|
-
os.path.join(
|
33
|
-
os.path.dirname(os.path.dirname(__file__)), *parts
|
34
|
-
)
|
35
|
-
)
|
36
|
-
|
37
|
-
|
38
|
-
def project_root(*parts):
|
39
|
-
return os.path.abspath(
|
40
|
-
os.path.join(docs_path("..", ".."), *parts)
|
41
|
-
)
|
42
|
-
|
43
|
-
|
44
|
-
def crate_path(*parts):
|
45
|
-
return os.path.abspath(
|
46
|
-
project_root("parts", "crate", *parts)
|
47
|
-
)
|
48
|
-
|
49
|
-
|
50
|
-
def setUp(test):
|
51
|
-
test.globs['project_root'] = project_root
|
52
|
-
test.globs['crate_path'] = crate_path
|
53
|
-
test.globs['tempfile'] = tempfile
|
54
|
-
test.globs['os'] = os
|
24
|
+
from .test_layer import LayerUtilsTest, LayerTest
|
55
25
|
|
56
26
|
|
57
27
|
def test_suite():
|
58
28
|
suite = unittest.TestSuite()
|
59
|
-
s = doctest.DocFileSuite(
|
60
|
-
'doctests/layer.txt',
|
61
|
-
setUp=setUp,
|
62
|
-
optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS,
|
63
|
-
encoding='utf-8'
|
64
|
-
)
|
65
|
-
suite.addTest(s)
|
66
29
|
suite.addTest(unittest.makeSuite(LayerUtilsTest))
|
30
|
+
suite.addTest(unittest.makeSuite(LayerTest))
|
67
31
|
return suite
|
crate/testing/util.py
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
class ExtraAssertions:
|
2
|
+
"""
|
3
|
+
Additional assert methods for unittest.
|
4
|
+
|
5
|
+
- https://github.com/python/cpython/issues/71339
|
6
|
+
- https://bugs.python.org/issue14819
|
7
|
+
- https://bugs.python.org/file43047/extra_assertions.patch
|
8
|
+
"""
|
9
|
+
|
10
|
+
def assertIsSubclass(self, cls, superclass, msg=None):
|
11
|
+
try:
|
12
|
+
r = issubclass(cls, superclass)
|
13
|
+
except TypeError:
|
14
|
+
if not isinstance(cls, type):
|
15
|
+
self.fail(self._formatMessage(msg,
|
16
|
+
'%r is not a class' % (cls,)))
|
17
|
+
raise
|
18
|
+
if not r:
|
19
|
+
self.fail(self._formatMessage(msg,
|
20
|
+
'%r is not a subclass of %r' % (cls, superclass)))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: crate
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.30.1
|
4
4
|
Summary: CrateDB Python Client
|
5
5
|
Home-page: https://github.com/crate/crate-python
|
6
6
|
Author: Crate.io
|
@@ -28,20 +28,22 @@ License-File: LICENSE
|
|
28
28
|
License-File: NOTICE
|
29
29
|
Requires-Dist: urllib3 (<2,>=1.9)
|
30
30
|
Provides-Extra: doc
|
31
|
-
Requires-Dist: sphinx (<
|
32
|
-
Requires-Dist: crate-docs-theme ; extra == 'doc'
|
31
|
+
Requires-Dist: sphinx (<7,>=3.5) ; extra == 'doc'
|
32
|
+
Requires-Dist: crate-docs-theme (>=0.26.5) ; extra == 'doc'
|
33
33
|
Provides-Extra: sqlalchemy
|
34
|
-
Requires-Dist: sqlalchemy (<1
|
35
|
-
Requires-Dist: geojson (<
|
34
|
+
Requires-Dist: sqlalchemy (<2.1,>=1.0) ; extra == 'sqlalchemy'
|
35
|
+
Requires-Dist: geojson (<4,>=2.5.0) ; extra == 'sqlalchemy'
|
36
36
|
Requires-Dist: backports.zoneinfo (<1) ; (python_version < "3.9") and extra == 'sqlalchemy'
|
37
37
|
Provides-Extra: test
|
38
|
-
Requires-Dist: tox (<
|
39
|
-
Requires-Dist: zope.testing (<
|
38
|
+
Requires-Dist: tox (<5,>=3) ; extra == 'test'
|
39
|
+
Requires-Dist: zope.testing (<6,>=4) ; extra == 'test'
|
40
40
|
Requires-Dist: zope.testrunner (<6,>=5) ; extra == 'test'
|
41
41
|
Requires-Dist: zc.customdoctests (<2,>=1.0.1) ; extra == 'test'
|
42
42
|
Requires-Dist: createcoverage (<2,>=1) ; extra == 'test'
|
43
43
|
Requires-Dist: stopit (<2,>=1.1.2) ; extra == 'test'
|
44
|
-
Requires-Dist: flake8 (<
|
44
|
+
Requires-Dist: flake8 (<7,>=4) ; extra == 'test'
|
45
|
+
Requires-Dist: pytz ; extra == 'test'
|
46
|
+
Requires-Dist: setuptools (<57) ; extra == 'test'
|
45
47
|
|
46
48
|
=====================
|
47
49
|
CrateDB Python Client
|
@@ -0,0 +1,53 @@
|
|
1
|
+
crate-0.30.1-py3.9-nspkg.pth,sha256=nqN0-lx5dVfXKgm9N7WRgI0lrvtTYi2PUOtTjfAMtjY,534
|
2
|
+
crate/client/__init__.py,sha256=aMAGsfGO3MHvq3jgbmIS_lW8HceoBkyDx2-yuzPwsiQ,1305
|
3
|
+
crate/client/_pep440.py,sha256=5KfZQ9kC9qfVK2YhRaMCuTETTbu-d3bMUOuC4RgHM38,14585
|
4
|
+
crate/client/blob.py,sha256=plTwGEULg5s1VdKIMW6a0Zljdkng7xw0WXkXyiwNaSU,3496
|
5
|
+
crate/client/connection.py,sha256=evWWrPFzI0lg2gPVz3Oy8PIo5AwfR-NhCSHowlpnYlw,8297
|
6
|
+
crate/client/converter.py,sha256=9_-FBp8l9LwCfBsoWO0YOW0ASkwJ-le-YJFfJMLKCew,4301
|
7
|
+
crate/client/cursor.py,sha256=qnrNM9QDQgo9RFVGU7HPmCxK15EFUWiOxW3BNlZcuNw,10758
|
8
|
+
crate/client/exceptions.py,sha256=RINQtVF9jD5f_tcKpZ8A1haztKilf9HUwjESYx-W1Bk,2242
|
9
|
+
crate/client/http.py,sha256=LFlfGra1K3LrEC0p_qK2e-ma8VdfQjaekcioL6PWdeo,20900
|
10
|
+
crate/client/test_connection.py,sha256=BUh6FmpH4tPNWk-HuDxx0Pgt5SCoPWddmdoRjYiCRRE,2808
|
11
|
+
crate/client/test_cursor.py,sha256=Q9Npq55zTY4g51kf3P7DnmTsYdv0iRwqDptKOj9ffxA,12858
|
12
|
+
crate/client/test_http.py,sha256=lm9hUnHjFFE4e188rcGxKF8ooZ-IuYlfWR8ciMQj_0U,21783
|
13
|
+
crate/client/test_util.py,sha256=xR9bdoHZplNBqIPnXSkHPNIo6bzUeKLnyqxcCmy-4Jw,1639
|
14
|
+
crate/client/tests.py,sha256=UBRgBRskvPNHfiyXF1PywVkjfZUdtFzW2Wm-nx-RrPE,12986
|
15
|
+
crate/client/sqlalchemy/__init__.py,sha256=RKwu3filTgFGaw-X200qaQa89gRutnFaG-vlxjA6elU,1965
|
16
|
+
crate/client/sqlalchemy/compiler.py,sha256=DL6exuoe-liZR4BqbAyYfi2PzlXnl3ccf1gfFJEh8Rc,7837
|
17
|
+
crate/client/sqlalchemy/dialect.py,sha256=Kz83VQNJNYdqxlLL4Sg4H0n7jN_Kg17-L-fSxb3SMgA,12940
|
18
|
+
crate/client/sqlalchemy/sa_version.py,sha256=exLPKCalcinLZ9geiqPX_pFWOoxnDkkxTy5AOabf9zw,1181
|
19
|
+
crate/client/sqlalchemy/types.py,sha256=8aXPln79WQ5QNqDJZL2TSvG31XO0pWo9EqF2XOzzgYU,8257
|
20
|
+
crate/client/sqlalchemy/compat/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
+
crate/client/sqlalchemy/compat/api13.py,sha256=koqqq48UmAmrjXOyc5lV7gaVEl8xmi5xHUqTBVE5f5s,5687
|
22
|
+
crate/client/sqlalchemy/compat/core10.py,sha256=7JQZte_PXqK20znpLFJZJR_FbooJ6RJFjPTG5Z6uYWY,8641
|
23
|
+
crate/client/sqlalchemy/compat/core14.py,sha256=9cAbzR3jexN7x-iFTmr-7OjlfL7fPX4w6tGG-tZGOR4,11611
|
24
|
+
crate/client/sqlalchemy/compat/core20.py,sha256=GVHzALhSX4WV3PQvltT_RnsGtab5lR92wcs9yRZgbMU,15150
|
25
|
+
crate/client/sqlalchemy/predicates/__init__.py,sha256=HT7tHF7PxX71G8m91lqpH732iVQZtO8_NPZUIsllcys,3622
|
26
|
+
crate/client/sqlalchemy/tests/__init__.py,sha256=JhFEQQYu0QGVmUAWzhD2tTCKDcpgGn3GvCTF_O7WwL8,1933
|
27
|
+
crate/client/sqlalchemy/tests/array_test.py,sha256=9qGFk2QbtJQYNHALb0P3wOndJosUoSfVVDzBOGs07w4,4052
|
28
|
+
crate/client/sqlalchemy/tests/bulk_test.py,sha256=HBt0oCcJSjK79LEKb0vLNnKrRwmia-7e-3DuNyi8fNY,2793
|
29
|
+
crate/client/sqlalchemy/tests/compiler_test.py,sha256=M62a0h23jDjfO5Ohkw4pv_8eahKabC2hT-pQzp6DuYk,4092
|
30
|
+
crate/client/sqlalchemy/tests/connection_test.py,sha256=LW2hIlEbhQWopZZ-Zp1nejRxEfMmaGwFbxwfQFQ8sBk,4596
|
31
|
+
crate/client/sqlalchemy/tests/create_table_test.py,sha256=nvVphw-shsf8JMUopQk66-jJN89AVxYSIiAPV43KmtI,9176
|
32
|
+
crate/client/sqlalchemy/tests/datetime_test.py,sha256=E84Xd-g7kIshKdGQ6J2RMvuao-Od0iCpz11JLfyA5s8,3170
|
33
|
+
crate/client/sqlalchemy/tests/dialect_test.py,sha256=ugTljMQZ5Qkloxop3G5ptkCuBLSR_2h_2UZaiX8Dl2c,6275
|
34
|
+
crate/client/sqlalchemy/tests/dict_test.py,sha256=SJPBUs3-MPZ3XxYPF1KGz7bxbWKCArZz0dvtqhysuWk,16600
|
35
|
+
crate/client/sqlalchemy/tests/function_test.py,sha256=XQrPW8WKPI_aLgZo9kpfO2Wjx6dWp3ureqtgkghl2xk,1824
|
36
|
+
crate/client/sqlalchemy/tests/insert_from_select_test.py,sha256=UeSk-34qh_mrZNr4q1uriFI9UxPieFPJ2eKjNhHkEPc,3256
|
37
|
+
crate/client/sqlalchemy/tests/match_test.py,sha256=DpGOl5xhDdhgqyjmmPEQLUp21SwruwbLJ6wYptZXP5o,5193
|
38
|
+
crate/client/sqlalchemy/tests/update_test.py,sha256=HLLTnw3kQxtTkP6IDhnuIuaHhiWYYPwG8c8S9sD82k8,4155
|
39
|
+
crate/client/sqlalchemy/tests/warnings_test.py,sha256=KazBLNiWtNCGKL6jI5fDhVL6AAaAcUMestY49NiRPRg,1302
|
40
|
+
crate/testing/__init__.py,sha256=UnxmjVrk-eNORsitiM48W0pB6yfsaErOak8RYh_ELt8,10
|
41
|
+
crate/testing/layer.py,sha256=rIIcliZl_Elx1yQFKP-4IFcwb5jLIBKlJf8puW6oOWs,13378
|
42
|
+
crate/testing/settings.py,sha256=YTqod79NO4Lv_agPgMLGlB_fMe6baAhLXFKBZnuytBk,1652
|
43
|
+
crate/testing/test_layer.py,sha256=9x3FiyJcsB9oSY5vVzMaL_DvwJt91a_hquXS7gbDYdQ,11525
|
44
|
+
crate/testing/tests.py,sha256=seACn7a4HbQIGxJmKXiUDkuE9ossO7UsSMTwMYimOA0,1287
|
45
|
+
crate/testing/util.py,sha256=qtc72rKfvfTA9VMKjE2JSukffobd7ffCcddoTiAdO6A,690
|
46
|
+
crate-0.30.1.dist-info/LICENSE,sha256=1QGh4tR_JmDKn33ztoDv2UkER0Q4Zh1kC5J3vMWwRso,12854
|
47
|
+
crate-0.30.1.dist-info/METADATA,sha256=_BAElXFOJzZY9u7hMcU-PEHoUCxuocEDwTjYAYw2XIU,4526
|
48
|
+
crate-0.30.1.dist-info/NOTICE,sha256=vwbBS8sykCOndA1kjuu8dUInljH27kk3lcPBzQ2SMns,1159
|
49
|
+
crate-0.30.1.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
50
|
+
crate-0.30.1.dist-info/entry_points.txt,sha256=DN4zBP45-6hmDwuOAR9LFoxzrg-A9MqPh1Hn6UXEFPQ,68
|
51
|
+
crate-0.30.1.dist-info/namespace_packages.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
|
52
|
+
crate-0.30.1.dist-info/top_level.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
|
53
|
+
crate-0.30.1.dist-info/RECORD,,
|
crate-0.29.0.dist-info/RECORD
DELETED
@@ -1,44 +0,0 @@
|
|
1
|
-
crate-0.29.0-py3.9-nspkg.pth,sha256=nqN0-lx5dVfXKgm9N7WRgI0lrvtTYi2PUOtTjfAMtjY,534
|
2
|
-
crate/client/__init__.py,sha256=1RIji7qpUc70hiVboUbUBneANt_rvD0arD9S9__nOhY,1305
|
3
|
-
crate/client/blob.py,sha256=plTwGEULg5s1VdKIMW6a0Zljdkng7xw0WXkXyiwNaSU,3496
|
4
|
-
crate/client/connection.py,sha256=vuQb1utU2iMto1S2rYweF47HNO37QrRYP9fGEP8Bars,8324
|
5
|
-
crate/client/converter.py,sha256=9_-FBp8l9LwCfBsoWO0YOW0ASkwJ-le-YJFfJMLKCew,4301
|
6
|
-
crate/client/cursor.py,sha256=qnrNM9QDQgo9RFVGU7HPmCxK15EFUWiOxW3BNlZcuNw,10758
|
7
|
-
crate/client/exceptions.py,sha256=RINQtVF9jD5f_tcKpZ8A1haztKilf9HUwjESYx-W1Bk,2242
|
8
|
-
crate/client/http.py,sha256=LFlfGra1K3LrEC0p_qK2e-ma8VdfQjaekcioL6PWdeo,20900
|
9
|
-
crate/client/test_connection.py,sha256=1e9E7o0MIgAUqJVwR2muNsVv9mj2WgKFeyb00j8prq0,1930
|
10
|
-
crate/client/test_cursor.py,sha256=Q9Npq55zTY4g51kf3P7DnmTsYdv0iRwqDptKOj9ffxA,12858
|
11
|
-
crate/client/test_http.py,sha256=lm9hUnHjFFE4e188rcGxKF8ooZ-IuYlfWR8ciMQj_0U,21783
|
12
|
-
crate/client/test_util.py,sha256=xR9bdoHZplNBqIPnXSkHPNIo6bzUeKLnyqxcCmy-4Jw,1639
|
13
|
-
crate/client/tests.py,sha256=HfeeUu-dFFrZ8OThKLHFgCXDNqOYFVoT5uYAS9feKZg,14030
|
14
|
-
crate/client/sqlalchemy/__init__.py,sha256=qiHELEgWc43AaqQS3xZ_3KFYVbwgO61PuVlCg-50N4g,1090
|
15
|
-
crate/client/sqlalchemy/compiler.py,sha256=KnCbG6izEd8EwXlj2fLH8BtGAVfEetmlQG7X_o5SrIg,23405
|
16
|
-
crate/client/sqlalchemy/dialect.py,sha256=X9rEKzmxn26YwTiqpgrLN9KWtQqIr_T7v12AF3vaXgU,12420
|
17
|
-
crate/client/sqlalchemy/sa_version.py,sha256=PcAU7KNHhdkqicyAmqPHrU-A063sCstQH3yy0u7E2Wo,1151
|
18
|
-
crate/client/sqlalchemy/types.py,sha256=8aXPln79WQ5QNqDJZL2TSvG31XO0pWo9EqF2XOzzgYU,8257
|
19
|
-
crate/client/sqlalchemy/predicates/__init__.py,sha256=HT7tHF7PxX71G8m91lqpH732iVQZtO8_NPZUIsllcys,3622
|
20
|
-
crate/client/sqlalchemy/tests/__init__.py,sha256=nOT7g6ykr_HErjXMoLHOG1q2_NGUMshQ8c09_-X8HeA,1386
|
21
|
-
crate/client/sqlalchemy/tests/array_test.py,sha256=qoX4Rfq3FTqmmE0wliobRxBTF36XFxLS6j3kjyRz6Fs,3975
|
22
|
-
crate/client/sqlalchemy/tests/bulk_test.py,sha256=tKeWyR80dMAO0TRUz7aZ0T1LvSYeu1OlCXvCEVJl_5Y,2708
|
23
|
-
crate/client/sqlalchemy/tests/compiler_test.py,sha256=FsU8w0lDwKhmHAFsUO_c0OHbgUFM9wGKteR4DxBHIUA,3936
|
24
|
-
crate/client/sqlalchemy/tests/connection_test.py,sha256=bCR4NQhBq5ERtYxJOgl_U7ri3qejInZ16TPdmUoIjzA,4197
|
25
|
-
crate/client/sqlalchemy/tests/create_table_test.py,sha256=Tz41NBpCNFPHhvLYblLFd2Gx1Lcf4cG25vPaYQYL7L4,8897
|
26
|
-
crate/client/sqlalchemy/tests/datetime_test.py,sha256=N8oqdsWG2s875wNbtCctgGK78QbBpiqHdsIczccTHt0,3093
|
27
|
-
crate/client/sqlalchemy/tests/dialect_test.py,sha256=C4EbFXBLQsoc4SSzyMFoXRnwumgm5FlgVH9FY10dQL0,4979
|
28
|
-
crate/client/sqlalchemy/tests/dict_test.py,sha256=YyjvOQtvaTJhLcOT9Tv6yNUCYZlLPjVmerwy0n5UrFU,16565
|
29
|
-
crate/client/sqlalchemy/tests/function_test.py,sha256=nVcVroqY-NDvjidwvC_UQfR9k3mfypRNqTJJ0kZ-FVM,1770
|
30
|
-
crate/client/sqlalchemy/tests/insert_from_select_test.py,sha256=HlqtmhyRfGWVaRw07byr7dj6Djxor-YQYaeCe79ffc0,3155
|
31
|
-
crate/client/sqlalchemy/tests/match_test.py,sha256=JF9_VAYDCAvgQCeL0Z5f2mybL74ud4Lrn6zNZ0Yb9k0,5116
|
32
|
-
crate/client/sqlalchemy/tests/update_test.py,sha256=hPcfy7GtB58yyI_OfOLOOLbxPw3LZittAjDRdq33Xkw,4078
|
33
|
-
crate/testing/__init__.py,sha256=UnxmjVrk-eNORsitiM48W0pB6yfsaErOak8RYh_ELt8,10
|
34
|
-
crate/testing/layer.py,sha256=Vv9TNpHYGseYizLpoVzrVzH6x8V5qAiAD5WmmNhxOPA,13378
|
35
|
-
crate/testing/test_layer.py,sha256=8lw9kYx3ZmDA7V14pUhJpQirRPsNX9SfewAGJPzckGw,4668
|
36
|
-
crate/testing/tests.py,sha256=JzEa5An4GBISVx_q_Fpj6b7XsYJ3estFwtA1peT9SRk,2016
|
37
|
-
crate-0.29.0.dist-info/LICENSE,sha256=1QGh4tR_JmDKn33ztoDv2UkER0Q4Zh1kC5J3vMWwRso,12854
|
38
|
-
crate-0.29.0.dist-info/METADATA,sha256=KsV00FTRoyhifMOOKz5VJzyON5yfvzip6IoU3ImhRCc,4427
|
39
|
-
crate-0.29.0.dist-info/NOTICE,sha256=vwbBS8sykCOndA1kjuu8dUInljH27kk3lcPBzQ2SMns,1159
|
40
|
-
crate-0.29.0.dist-info/WHEEL,sha256=bb2Ot9scclHKMOLDEHY6B2sicWOgugjFKaJsT7vwMQo,110
|
41
|
-
crate-0.29.0.dist-info/entry_points.txt,sha256=DN4zBP45-6hmDwuOAR9LFoxzrg-A9MqPh1Hn6UXEFPQ,68
|
42
|
-
crate-0.29.0.dist-info/namespace_packages.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
|
43
|
-
crate-0.29.0.dist-info/top_level.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
|
44
|
-
crate-0.29.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|