crate 2.0.0.dev6__py3-none-any.whl → 2.1.0.dev0__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 CHANGED
@@ -29,7 +29,7 @@ __all__ = [
29
29
 
30
30
  # version string read from setup.py using a regex. Take care not to break the
31
31
  # regex!
32
- __version__ = "2.0.0.dev6"
32
+ __version__ = "2.1.0.dev0"
33
33
 
34
34
  # codeql[py/unused-global-variable]
35
35
  apilevel = "2.0"
@@ -18,8 +18,10 @@
18
18
  # However, if you have executed another commercial license agreement
19
19
  # with Crate these terms will supersede the license and you may use the
20
20
  # software solely pursuant to the terms of the relevant commercial agreement.
21
+ import json
21
22
 
22
23
  from verlib2 import Version
24
+ from verlib2.packaging.version import InvalidVersion
23
25
 
24
26
  from .blob import BlobContainer
25
27
  from .cursor import Cursor
@@ -197,14 +199,21 @@ class Connection:
197
199
 
198
200
  def _lowest_server_version(self):
199
201
  lowest = None
202
+ server_count = len(self.client.active_servers)
203
+ connection_errors = []
200
204
  for server in self.client.active_servers:
201
205
  try:
202
206
  _, _, version = self.client.server_infos(server)
203
207
  version = Version(version)
204
- except (ValueError, ConnectionError):
208
+ except ConnectionError as ex:
209
+ connection_errors.append(ex)
210
+ continue
211
+ except (ValueError, InvalidVersion):
205
212
  continue
206
213
  if not lowest or version < lowest:
207
214
  lowest = version
215
+ if connection_errors and len(connection_errors) == server_count:
216
+ raise ConnectionError(json.dumps(list(map(str, connection_errors))))
208
217
  return lowest or Version("0.0.0")
209
218
 
210
219
  def __repr__(self):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: crate
3
- Version: 2.0.0.dev6
3
+ Version: 2.1.0.dev0
4
4
  Summary: CrateDB Python Client
5
5
  Home-page: https://github.com/crate/crate-python
6
6
  Author: Crate.io
@@ -39,15 +39,14 @@ Provides-Extra: test
39
39
  Requires-Dist: backports.zoneinfo<1; python_version < "3.9" and extra == "test"
40
40
  Requires-Dist: certifi; extra == "test"
41
41
  Requires-Dist: createcoverage<2,>=1; extra == "test"
42
- Requires-Dist: mypy<1.15; extra == "test"
43
- Requires-Dist: poethepoet<0.33; extra == "test"
44
- Requires-Dist: ruff<0.10; extra == "test"
42
+ Requires-Dist: mypy<1.16; extra == "test"
43
+ Requires-Dist: poethepoet<1; extra == "test"
44
+ Requires-Dist: ruff<0.12; extra == "test"
45
45
  Requires-Dist: stopit<2,>=1.1.2; extra == "test"
46
- Requires-Dist: tox<5,>=3; extra == "test"
47
46
  Requires-Dist: pytz; extra == "test"
48
47
  Requires-Dist: zc.customdoctests<2,>=1.0.1; extra == "test"
49
48
  Requires-Dist: zope.testing<6,>=4; extra == "test"
50
- Requires-Dist: zope.testrunner<7,>=5; extra == "test"
49
+ Requires-Dist: zope.testrunner<8,>=5; extra == "test"
51
50
  Dynamic: author
52
51
  Dynamic: author-email
53
52
  Dynamic: classifier
@@ -56,6 +55,7 @@ Dynamic: description-content-type
56
55
  Dynamic: home-page
57
56
  Dynamic: keywords
58
57
  Dynamic: license
58
+ Dynamic: license-file
59
59
  Dynamic: platform
60
60
  Dynamic: provides-extra
61
61
  Dynamic: requires-dist
@@ -1,7 +1,7 @@
1
- crate/client/__init__.py,sha256=Mu7v8I3SFaCqVv2FueZnU6v0IZYjdUaihbaHTkATTLM,1349
1
+ crate/client/__init__.py,sha256=wwIu-g-AQn0SiBYFAo3-sOkejI_c7uT9rn-Zd1ddySo,1349
2
2
  crate/client/_pep440.py,sha256=iwY5wopxbgbwsT0ImANrwN3V_ZYQHhSr7lEdVT5dQRM,42
3
3
  crate/client/blob.py,sha256=aMo6ZNHGT3Zq_yR3gcpd3CKrJvfqUAhExhKtHUwC5Io,3460
4
- crate/client/connection.py,sha256=80v9_--YilDAaIQpejf3G_TWGz9iwUkixwHAL66sDm0,8098
4
+ crate/client/connection.py,sha256=uA-r_HLo4mjbouYirV0xIF6rp9GAtK-PtAJlyNxpvHA,8514
5
5
  crate/client/converter.py,sha256=Qci0MNcpz1jAnjquG8Ld9LI84_iHVInrv4HMb8r5zzg,4313
6
6
  crate/client/cursor.py,sha256=Mlk-TVLzM4zSSr7GxcHK4Mjbt1KQeMfNFNrPBtGjk-c,10741
7
7
  crate/client/exceptions.py,sha256=wMyJmOB3RP5kuPeW9f0fEb-1AKZcGSTyIGvN0HqpqUw,2557
@@ -9,9 +9,9 @@ crate/client/http.py,sha256=wNTlFOwYv9R4dMWvaZ7b-U-uzUwLNJB7pknwiE_QGkE,23270
9
9
  crate/testing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  crate/testing/layer.py,sha256=jvHRWTRE4Zal211UO0HWPFcbprAcaGB3WyAUDR7BKFQ,13376
11
11
  crate/testing/util.py,sha256=BPEZ8DavXwyOTCmOQnP5QjQlapEw3harzKK4w2HOTA4,3264
12
- crate-2.0.0.dev6.dist-info/LICENSE,sha256=s_w3FXmAYQuatqsgvyYLnGyC_13KOqp3W1DUEXO9RpY,10175
13
- crate-2.0.0.dev6.dist-info/METADATA,sha256=AEedSYqZFFHb7rO2c7pOXUE3S3d-zbU8CuRK-DoKADE,5655
14
- crate-2.0.0.dev6.dist-info/NOTICE,sha256=jfWOHkoZKjNATGXMfgpMJdL38ki_ZZTgR6M9CUUJxrM,1159
15
- crate-2.0.0.dev6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
16
- crate-2.0.0.dev6.dist-info/top_level.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
17
- crate-2.0.0.dev6.dist-info/RECORD,,
12
+ crate-2.1.0.dev0.dist-info/licenses/LICENSE,sha256=s_w3FXmAYQuatqsgvyYLnGyC_13KOqp3W1DUEXO9RpY,10175
13
+ crate-2.1.0.dev0.dist-info/licenses/NOTICE,sha256=jfWOHkoZKjNATGXMfgpMJdL38ki_ZZTgR6M9CUUJxrM,1159
14
+ crate-2.1.0.dev0.dist-info/METADATA,sha256=xAe-f67sKCkfH3YyY6HmDbeQJ8a2Of_4KFRKeuKxPhg,5632
15
+ crate-2.1.0.dev0.dist-info/WHEEL,sha256=0CuiUZ_p9E4cD6NyLD6UG80LBXYyiSYZOKDm5lp32xk,91
16
+ crate-2.1.0.dev0.dist-info/top_level.txt,sha256=2wP2HlpxdhgTLMl9ipi168xkm6FMq9_2bf0xGGxF_OI,6
17
+ crate-2.1.0.dev0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (80.3.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5