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.
Files changed (36) hide show
  1. {e6data_python_connector-2.2.1rc4/e6data_python_connector.egg-info → e6data_python_connector-2.2.1rc5}/PKG-INFO +4 -6
  2. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/README.md +1 -1
  3. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6data_grpc.py +18 -4
  4. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5/e6data_python_connector.egg-info}/PKG-INFO +4 -6
  5. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/requires.txt +2 -1
  6. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/setup.py +4 -6
  7. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/LICENSE +0 -0
  8. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/MANIFEST.in +0 -0
  9. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/__init__.py +0 -0
  10. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_manager.py +0 -0
  11. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_server/__init__.py +0 -0
  12. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_server/cluster_pb2.py +0 -0
  13. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/cluster_server/cluster_pb2_grpc.py +0 -0
  14. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/common.py +0 -0
  15. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/constants.py +0 -0
  16. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/datainputstream.py +0 -0
  17. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/date_time_utils.py +0 -0
  18. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/dialect.py +0 -0
  19. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6x_vector/__init__.py +0 -0
  20. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6x_vector/constants.py +0 -0
  21. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/e6x_vector/ttypes.py +0 -0
  22. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/exceptions.py +0 -0
  23. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/QueryEngineService.py +0 -0
  24. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/__init__.py +0 -0
  25. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/constants.py +0 -0
  26. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/e6x_engine_pb2.py +0 -0
  27. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/e6x_engine_pb2.pyi +0 -0
  28. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/e6x_engine_pb2_grpc.py +0 -0
  29. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/server/ttypes.py +0 -0
  30. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector/typeId.py +0 -0
  31. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/SOURCES.txt +0 -0
  32. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/dependency_links.txt +0 -0
  33. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/entry_points.txt +0 -0
  34. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/e6data_python_connector.egg-info/top_level.txt +0 -0
  35. {e6data_python_connector-2.2.1rc4 → e6data_python_connector-2.2.1rc5}/pyproject.toml +0 -0
  36. {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.1rc4
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>=1.65.1
24
+ Requires-Dist: grpcio
28
25
  Requires-Dist: grpcio-tools
26
+ Requires-Dist: sqlalchemy
29
27
 
30
28
  # e6data Python Connector
31
29
 
32
- ![version](https://img.shields.io/badge/version-2.2.1rc4-blue.svg)
30
+ ![version](https://img.shields.io/badge/version-2.2.0-blue.svg)
33
31
 
34
32
  ## Introduction
35
33
 
@@ -1,6 +1,6 @@
1
1
  # e6data Python Connector
2
2
 
3
- ![version](https://img.shields.io/badge/version-2.2.1rc4-blue.svg)
3
+ ![version](https://img.shields.io/badge/version-2.2.0-blue.svg)
4
4
 
5
5
  ## Introduction
6
6
 
@@ -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 isinstance(grpc_options, dict):
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.UNAVAILABLE and 'status: 503' in e.details():
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.1rc4
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>=1.65.1
24
+ Requires-Dist: grpcio
28
25
  Requires-Dist: grpcio-tools
26
+ Requires-Dist: sqlalchemy
29
27
 
30
28
  # e6data Python Connector
31
29
 
32
- ![version](https://img.shields.io/badge/version-2.2.1rc4-blue.svg)
30
+ ![version](https://img.shields.io/badge/version-2.2.0-blue.svg)
33
31
 
34
32
  ## Introduction
35
33
 
@@ -4,5 +4,6 @@ python-dateutil
4
4
  pycryptodome
5
5
  pytz
6
6
  thrift
7
- grpcio>=1.65.1
7
+ grpcio
8
8
  grpcio-tools
9
+ sqlalchemy
@@ -12,7 +12,7 @@
12
12
 
13
13
  import setuptools
14
14
 
15
- VERSION = [2, 2, 1, 'rc4']
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>=1.65.1',
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': [