e6data-python-connector 2.3.9rc3__tar.gz → 2.3.9rc5__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.3.9rc3/e6data_python_connector.egg-info → e6data_python_connector-2.3.9rc5}/PKG-INFO +2 -2
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/README.md +1 -1
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/cluster_manager.py +16 -2
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/e6data_grpc.py +6 -1
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5/e6data_python_connector.egg-info}/PKG-INFO +2 -2
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/setup.py +1 -1
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/LICENSE +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/MANIFEST.in +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/cluster_server/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/cluster_server/cluster_pb2.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/cluster_server/cluster_pb2_grpc.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/common.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/constants.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/datainputstream.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/date_time_utils.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/dialect.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/e6x_vector/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/e6x_vector/constants.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/e6x_vector/ttypes.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/exceptions.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/QueryEngineService.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/constants.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/e6x_engine_pb2.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/e6x_engine_pb2.pyi +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/e6x_engine_pb2_grpc.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/server/ttypes.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/strategy.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector/typeId.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector.egg-info/SOURCES.txt +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector.egg-info/dependency_links.txt +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector.egg-info/entry_points.txt +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector.egg-info/requires.txt +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/e6data_python_connector.egg-info/top_level.txt +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/pyproject.toml +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/setup.cfg +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_38_nines.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_all_cases.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_binary.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_correct_value.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_fields.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/check_decimal_errors.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/cleanup_test_files.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/debug_38_nines.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/debug_binary.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/final_test.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/move_tests.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/quick_test.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_38_nines.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_all_decimal128_cases.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_cluster_manager_efficiency.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_cluster_manager_none_strategy.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_cluster_manager_strategy.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_comprehensive.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_current_implementation.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_decimal128_binary_parsing.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_decimal128_parsing.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_fix.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_improved_parsing.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_known_case.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_manual_analysis.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_mock_server.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_multiprocessing_fix.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_new_implementation.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_specific_binary.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_strategy.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_strategy_logic.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_strategy_persistence_fix.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_strategy_sharing_fix.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_user_binary_value.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/tests.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/tests_grpc.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/validate_decimal128.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/validate_implementation.py +0 -0
- {e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/verify_decimal_fix.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: e6data-python-connector
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.9rc5
|
|
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: e6data, Inc.
|
|
@@ -38,7 +38,7 @@ Dynamic: summary
|
|
|
38
38
|
|
|
39
39
|
# e6data Python Connector
|
|
40
40
|
|
|
41
|
-

|
|
42
42
|
|
|
43
43
|
## Introduction
|
|
44
44
|
|
|
@@ -213,25 +213,30 @@ class ClusterManager:
|
|
|
213
213
|
user=self._user,
|
|
214
214
|
password=self._password
|
|
215
215
|
)
|
|
216
|
+
print('STATUS', payload)
|
|
216
217
|
elif request_type == "resume":
|
|
217
218
|
payload = cluster_pb2.ResumeRequest(
|
|
218
219
|
user=self._user,
|
|
219
220
|
password=self._password
|
|
220
221
|
)
|
|
222
|
+
print('RESUME', payload)
|
|
221
223
|
|
|
222
224
|
# If we have an active strategy, use it first
|
|
223
225
|
if current_strategy is not None:
|
|
224
226
|
try:
|
|
225
227
|
if request_type == "status":
|
|
228
|
+
|
|
226
229
|
response = self._get_connection.status(
|
|
227
230
|
payload,
|
|
228
231
|
metadata=_get_grpc_header(cluster=self.cluster_uuid, strategy=current_strategy)
|
|
229
232
|
)
|
|
233
|
+
print('STATUS 2', response, payload)
|
|
230
234
|
elif request_type == "resume":
|
|
231
235
|
response = self._get_connection.resume(
|
|
232
236
|
payload,
|
|
233
237
|
metadata=_get_grpc_header(cluster=self.cluster_uuid, strategy=current_strategy)
|
|
234
238
|
)
|
|
239
|
+
print('RESUME 2', response, payload)
|
|
235
240
|
else:
|
|
236
241
|
raise ValueError(f"Unknown request type: {request_type}")
|
|
237
242
|
|
|
@@ -254,11 +259,13 @@ class ClusterManager:
|
|
|
254
259
|
payload,
|
|
255
260
|
metadata=_get_grpc_header(cluster=self.cluster_uuid, strategy=alternative_strategy)
|
|
256
261
|
)
|
|
262
|
+
print('STATUS 3', response, payload)
|
|
257
263
|
elif request_type == "resume":
|
|
258
264
|
response = self._get_connection.resume(
|
|
259
265
|
payload,
|
|
260
266
|
metadata=_get_grpc_header(cluster=self.cluster_uuid, strategy=alternative_strategy)
|
|
261
267
|
)
|
|
268
|
+
print('RESUME 3', response, payload)
|
|
262
269
|
|
|
263
270
|
# Update active strategy since the alternative worked
|
|
264
271
|
_set_active_strategy(alternative_strategy)
|
|
@@ -288,11 +295,13 @@ class ClusterManager:
|
|
|
288
295
|
payload,
|
|
289
296
|
metadata=_get_grpc_header(cluster=self.cluster_uuid, strategy=strategy)
|
|
290
297
|
)
|
|
298
|
+
print('STATUS 4', response, payload)
|
|
291
299
|
elif request_type == "resume":
|
|
292
300
|
response = self._get_connection.resume(
|
|
293
301
|
payload,
|
|
294
302
|
metadata=_get_grpc_header(cluster=self.cluster_uuid, strategy=strategy)
|
|
295
303
|
)
|
|
304
|
+
print('RESUME 4', response, payload)
|
|
296
305
|
else:
|
|
297
306
|
raise ValueError(f"Unknown request type: {request_type}")
|
|
298
307
|
|
|
@@ -365,13 +374,15 @@ class ClusterManager:
|
|
|
365
374
|
# Retrieve the current cluster status with strategy header
|
|
366
375
|
try:
|
|
367
376
|
current_status = self._try_cluster_request("status")
|
|
368
|
-
except _InactiveRpcError:
|
|
377
|
+
except _InactiveRpcError as e:
|
|
378
|
+
print('ERROR', e, 'Returning false1')
|
|
369
379
|
return False
|
|
370
380
|
if current_status.status == 'suspended':
|
|
371
381
|
# Send the resume request with strategy header
|
|
372
382
|
try:
|
|
373
383
|
response = self._try_cluster_request("resume")
|
|
374
|
-
except _InactiveRpcError:
|
|
384
|
+
except _InactiveRpcError as e:
|
|
385
|
+
print('ERROR', e, 'Returning false2')
|
|
375
386
|
return False
|
|
376
387
|
elif current_status.status == 'active':
|
|
377
388
|
return True
|
|
@@ -380,15 +391,18 @@ class ClusterManager:
|
|
|
380
391
|
If cluster cannot be resumed due to its current state,
|
|
381
392
|
or already in a process of resuming, terminate the operation.
|
|
382
393
|
"""
|
|
394
|
+
print('ERROR', '!resuming', 'Returning false3')
|
|
383
395
|
return False
|
|
384
396
|
|
|
385
397
|
for status in self._check_cluster_status():
|
|
386
398
|
if status == 'active':
|
|
387
399
|
return True
|
|
388
400
|
elif status == 'failed' or time.time() > self._timeout:
|
|
401
|
+
print('ERROR', 'timed-out', 'Returning false3')
|
|
389
402
|
return False
|
|
390
403
|
# Wait for 5 seconds before the next status check
|
|
391
404
|
time.sleep(5)
|
|
405
|
+
print('ERROR', 'Nothing worked', 'Returning false3')
|
|
392
406
|
return False
|
|
393
407
|
|
|
394
408
|
def suspend(self):
|
|
@@ -380,6 +380,7 @@ class Connection(object):
|
|
|
380
380
|
"""
|
|
381
381
|
self.grpc_auto_resume_timeout_seconds = self._grpc_options.pop('grpc_auto_resume_timeout_seconds')
|
|
382
382
|
self._create_client()
|
|
383
|
+
self._hash = str(datetime.datetime.now().timestamp()) + 'hash' + str(id(self))
|
|
383
384
|
|
|
384
385
|
@property
|
|
385
386
|
def _get_grpc_options(self):
|
|
@@ -520,6 +521,7 @@ class Connection(object):
|
|
|
520
521
|
_set_pending_strategy(new_strategy)
|
|
521
522
|
# Don't apply immediately - let new queries use fresh connections
|
|
522
523
|
except _InactiveRpcError as e:
|
|
524
|
+
print(self._hash, self.cluster_name, 'Error during authentication with active strategy:', active_strategy, file=sys.stderr)
|
|
523
525
|
if e.code() == grpc.StatusCode.UNKNOWN and 'status: 456' in e.details():
|
|
524
526
|
# Strategy changed, clear cache and retry
|
|
525
527
|
_clear_strategy_cache()
|
|
@@ -561,6 +563,7 @@ class Connection(object):
|
|
|
561
563
|
# Don't apply immediately - let new queries use fresh connections
|
|
562
564
|
break
|
|
563
565
|
except _InactiveRpcError as e:
|
|
566
|
+
print(self._hash, self.cluster_name, 'Error during authentication with strategy:', strategy, file=sys.stderr)
|
|
564
567
|
if e.code() == grpc.StatusCode.UNKNOWN and 'status: 456' in e.details():
|
|
565
568
|
# Wrong strategy, try the next one
|
|
566
569
|
last_error = e
|
|
@@ -587,6 +590,7 @@ class Connection(object):
|
|
|
587
590
|
cluster_uuid=self.cluster_name,
|
|
588
591
|
timeout=self.grpc_auto_resume_timeout_seconds
|
|
589
592
|
).resume()
|
|
593
|
+
print(self._hash, self.cluster_name, 'Cluster resume status:', status, file=sys.stderr)
|
|
590
594
|
if status:
|
|
591
595
|
# return self.get_session_id
|
|
592
596
|
authenticate_request = e6x_engine_pb2.AuthenticateRequest(
|
|
@@ -595,7 +599,7 @@ class Connection(object):
|
|
|
595
599
|
)
|
|
596
600
|
authenticate_response = self._client.authenticate(
|
|
597
601
|
authenticate_request,
|
|
598
|
-
metadata=_get_grpc_header(cluster=self.
|
|
602
|
+
metadata=_get_grpc_header(cluster=self.cluster_name, strategy=_get_active_strategy())
|
|
599
603
|
)
|
|
600
604
|
self._session_id = authenticate_response.sessionId
|
|
601
605
|
# Check for new strategy in authenticate response
|
|
@@ -611,6 +615,7 @@ class Connection(object):
|
|
|
611
615
|
else:
|
|
612
616
|
raise e
|
|
613
617
|
except Exception as e:
|
|
618
|
+
print(self._hash, self.cluster_name, 'Error during authentication:', e, file=sys.stderr)
|
|
614
619
|
self._channel.close()
|
|
615
620
|
raise e
|
|
616
621
|
return self._session_id
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: e6data-python-connector
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.9rc5
|
|
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: e6data, Inc.
|
|
@@ -38,7 +38,7 @@ Dynamic: summary
|
|
|
38
38
|
|
|
39
39
|
# e6data Python Connector
|
|
40
40
|
|
|
41
|
-

|
|
42
42
|
|
|
43
43
|
## Introduction
|
|
44
44
|
|
|
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
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_38_nines.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_all_cases.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_binary.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_correct_value.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/analyze_fields.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/check_decimal_errors.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/cleanup_test_files.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/debug_38_nines.py
RENAMED
|
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
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_comprehensive.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_improved_parsing.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_known_case.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_manual_analysis.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_mock_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_specific_binary.py
RENAMED
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_strategy_logic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/test_user_binary_value.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/validate_decimal128.py
RENAMED
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc3 → e6data_python_connector-2.3.9rc5}/test/verify_decimal_fix.py
RENAMED
|
File without changes
|