e6data-python-connector 2.2.1rc4__tar.gz → 2.2.1rc5__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.
- {e6data_python_connector-2.2.1rc4/e6data_python_connector.egg-info → e6data_python_connector-2.2.1rc5}/PKG-INFO +4 -6
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/README.md +1 -1
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6data_grpc.py +18 -4
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5/e6data_python_connector.egg-info}/PKG-INFO +4 -6
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/requires.txt +2 -1
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/setup.py +4 -6
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/LICENSE +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/MANIFEST.in +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/__init__.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_manager.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_server/__init__.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_server/cluster_pb2.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_server/cluster_pb2_grpc.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/common.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/constants.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/datainputstream.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/date_time_utils.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/dialect.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6x_vector/__init__.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6x_vector/constants.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6x_vector/ttypes.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/exceptions.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/QueryEngineService.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/__init__.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/constants.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/e6x_engine_pb2.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/e6x_engine_pb2.pyi +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/e6x_engine_pb2_grpc.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/ttypes.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/typeId.py +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/SOURCES.txt +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/dependency_links.txt +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/entry_points.txt +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/top_level.txt +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/pyproject.toml +0 -0
- {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: e6data-python-connector
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1rc5
|
|
4
4
|
Summary: Client for the e6data distributed SQL Engine.
|
|
5
5
|
Home-page: https://github.com/e6x-labs/e6data-python-connector
|
|
6
6
|
Author: Uniphi, Inc.
|
|
@@ -13,9 +13,6 @@ Classifier: Programming Language :: Python :: 3.6
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.7
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.8
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
19
16
|
Description-Content-Type: text/markdown
|
|
20
17
|
License-File: LICENSE
|
|
21
18
|
Requires-Dist: sqlalchemy>=1.0.0
|
|
@@ -24,12 +21,13 @@ Requires-Dist: python-dateutil
|
|
|
24
21
|
Requires-Dist: pycryptodome
|
|
25
22
|
Requires-Dist: pytz
|
|
26
23
|
Requires-Dist: thrift
|
|
27
|
-
Requires-Dist: grpcio
|
|
24
|
+
Requires-Dist: grpcio
|
|
28
25
|
Requires-Dist: grpcio-tools
|
|
26
|
+
Requires-Dist: sqlalchemy
|
|
29
27
|
|
|
30
28
|
# e6data Python Connector
|
|
31
29
|
|
|
32
|
-

|
|
33
31
|
|
|
34
32
|
## Introduction
|
|
35
33
|
|
|
@@ -148,6 +148,8 @@ class Connection(object):
|
|
|
148
148
|
- max_receive_message_length: This parameter sets the maximum allowed size (in bytes) for incoming messages on the gRPC server.
|
|
149
149
|
- max_send_message_length: Similar to max_receive_message_length, this parameter sets the maximum allowed size (in bytes) for outgoing messages from the gRPC client
|
|
150
150
|
- grpc_prepare_timeout: Timeout for prepare statement API call (default to 10 minutes).
|
|
151
|
+
#keep-alive parameters
|
|
152
|
+
- keepalive_time_ms: This parameter defines the time, in milliseconds, Default to 30 seconds
|
|
151
153
|
"""
|
|
152
154
|
if not username or not password:
|
|
153
155
|
raise ValueError("username or password cannot be empty.")
|
|
@@ -168,16 +170,18 @@ class Connection(object):
|
|
|
168
170
|
self._auto_resume = auto_resume
|
|
169
171
|
|
|
170
172
|
self._keepalive_timeout_ms = 900000
|
|
173
|
+
self._keepalive_time_ms = 30000
|
|
171
174
|
self._max_receive_message_length = -1
|
|
172
175
|
self._max_send_message_length = 300 * 1024 * 1024 # mb
|
|
173
176
|
self.grpc_prepare_timeout = 10 * 60 # 10 minutes
|
|
174
177
|
|
|
175
|
-
if
|
|
178
|
+
if type(grpc_options) == dict:
|
|
176
179
|
self._keepalive_timeout_ms = grpc_options.get('keepalive_timeout_ms') or self._keepalive_timeout_ms
|
|
177
180
|
self._max_receive_message_length = grpc_options.get(
|
|
178
181
|
'max_receive_message_length') or self._max_receive_message_length
|
|
179
182
|
self._max_send_message_length = grpc_options.get('max_send_message_length') or self._max_send_message_length
|
|
180
183
|
self.grpc_prepare_timeout = grpc_options.get('grpc_prepare_timeout') or self.grpc_prepare_timeout
|
|
184
|
+
self._keepalive_time_ms = grpc_options.get('keepalive_time_ms') or self._keepalive_time_ms
|
|
181
185
|
self._create_client()
|
|
182
186
|
|
|
183
187
|
def _create_client(self):
|
|
@@ -187,7 +191,12 @@ class Connection(object):
|
|
|
187
191
|
options=[
|
|
188
192
|
("grpc.keepalive_timeout_ms", self._keepalive_timeout_ms),
|
|
189
193
|
('grpc.max_send_message_length', self._max_send_message_length),
|
|
190
|
-
('grpc.max_receive_message_length', self._max_receive_message_length)
|
|
194
|
+
('grpc.max_receive_message_length', self._max_receive_message_length),
|
|
195
|
+
('grpc.keepalive_time_ms', self._keepalive_time_ms),
|
|
196
|
+
('grpc.keepalive_permit_without_calls', 1), # Allow keep-alives with no active RPCs
|
|
197
|
+
('grpc.http2.max_pings_without_data', 0), # Unlimited pings without data
|
|
198
|
+
('grpc.http2.min_time_between_pings_ms', 15000), # Minimum 15 seconds between pings
|
|
199
|
+
('grpc.http2.min_ping_interval_without_data_ms', 15000)# Minimum 15 seconds between pings without data
|
|
191
200
|
],
|
|
192
201
|
credentials=grpc.ssl_channel_credentials()
|
|
193
202
|
)
|
|
@@ -197,7 +206,12 @@ class Connection(object):
|
|
|
197
206
|
options=[
|
|
198
207
|
("grpc.keepalive_timeout_ms", self._keepalive_timeout_ms),
|
|
199
208
|
('grpc.max_send_message_length', self._max_send_message_length),
|
|
200
|
-
('grpc.max_receive_message_length', self._max_receive_message_length)
|
|
209
|
+
('grpc.max_receive_message_length', self._max_receive_message_length),
|
|
210
|
+
('grpc.keepalive_time_ms', self._keepalive_time_ms),
|
|
211
|
+
('grpc.keepalive_permit_without_calls', 1), # Allow keep-alives with no active RPCs
|
|
212
|
+
('grpc.http2.max_pings_without_data', 0), # Unlimited pings without data
|
|
213
|
+
('grpc.http2.min_time_between_pings_ms', 15000), # Minimum 15 seconds between pings
|
|
214
|
+
('grpc.http2.min_ping_interval_without_data_ms', 15000)# Minimum 15 seconds between pings without data
|
|
201
215
|
]
|
|
202
216
|
)
|
|
203
217
|
self._client = e6x_engine_pb2_grpc.QueryEngineServiceStub(self._channel)
|
|
@@ -222,7 +236,7 @@ class Connection(object):
|
|
|
222
236
|
raise ValueError("Invalid credentials.")
|
|
223
237
|
except _InactiveRpcError as e:
|
|
224
238
|
if self._auto_resume:
|
|
225
|
-
if e.code() == grpc.StatusCode.
|
|
239
|
+
if e.code() == grpc.StatusCode.UNKNOWN and 'Stream removed' in e.details():
|
|
226
240
|
status = ClusterManager(
|
|
227
241
|
host=self._host,
|
|
228
242
|
port=self._port,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: e6data-python-connector
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1rc5
|
|
4
4
|
Summary: Client for the e6data distributed SQL Engine.
|
|
5
5
|
Home-page: https://github.com/e6x-labs/e6data-python-connector
|
|
6
6
|
Author: Uniphi, Inc.
|
|
@@ -13,9 +13,6 @@ Classifier: Programming Language :: Python :: 3.6
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.7
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.8
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
19
16
|
Description-Content-Type: text/markdown
|
|
20
17
|
License-File: LICENSE
|
|
21
18
|
Requires-Dist: sqlalchemy>=1.0.0
|
|
@@ -24,12 +21,13 @@ Requires-Dist: python-dateutil
|
|
|
24
21
|
Requires-Dist: pycryptodome
|
|
25
22
|
Requires-Dist: pytz
|
|
26
23
|
Requires-Dist: thrift
|
|
27
|
-
Requires-Dist: grpcio
|
|
24
|
+
Requires-Dist: grpcio
|
|
28
25
|
Requires-Dist: grpcio-tools
|
|
26
|
+
Requires-Dist: sqlalchemy
|
|
29
27
|
|
|
30
28
|
# e6data Python Connector
|
|
31
29
|
|
|
32
|
-

|
|
33
31
|
|
|
34
32
|
## Introduction
|
|
35
33
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
import setuptools
|
|
14
14
|
|
|
15
|
-
VERSION = [2, 2, 1,
|
|
15
|
+
VERSION = [2, 2, 1, "rc5"]
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
def get_long_desc():
|
|
@@ -40,8 +40,9 @@ setuptools.setup(
|
|
|
40
40
|
'pycryptodome',
|
|
41
41
|
'pytz',
|
|
42
42
|
'thrift',
|
|
43
|
-
'grpcio
|
|
43
|
+
'grpcio',
|
|
44
44
|
'grpcio-tools',
|
|
45
|
+
'sqlalchemy'
|
|
45
46
|
],
|
|
46
47
|
classifiers=[
|
|
47
48
|
"Operating System :: POSIX :: Linux",
|
|
@@ -50,10 +51,7 @@ setuptools.setup(
|
|
|
50
51
|
'Programming Language :: Python :: 3.6',
|
|
51
52
|
'Programming Language :: Python :: 3.7',
|
|
52
53
|
'Programming Language :: Python :: 3.8',
|
|
53
|
-
'Programming Language :: Python :: 3.9'
|
|
54
|
-
"Programming Language :: Python :: 3.10",
|
|
55
|
-
"Programming Language :: Python :: 3.11",
|
|
56
|
-
"Programming Language :: Python :: 3.12",
|
|
54
|
+
'Programming Language :: Python :: 3.9'
|
|
57
55
|
],
|
|
58
56
|
entry_points={
|
|
59
57
|
'sqlalchemy.dialects': [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|