e6data-python-connector 2.3.9rc10__tar.gz → 2.3.10rc1__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.9rc10/e6data_python_connector.egg-info → e6data_python_connector-2.3.10rc1}/PKG-INFO +2 -2
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/README.md +1 -1
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/cluster_manager.py +1 -1
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/e6data_grpc.py +45 -24
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1/e6data_python_connector.egg-info}/PKG-INFO +2 -2
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/setup.py +1 -1
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/LICENSE +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/MANIFEST.in +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/cluster_server/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/cluster_server/cluster_pb2.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/cluster_server/cluster_pb2_grpc.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/common.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/constants.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/datainputstream.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/date_time_utils.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/dialect.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/e6x_vector/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/e6x_vector/constants.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/e6x_vector/ttypes.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/exceptions.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/QueryEngineService.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/constants.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/e6x_engine_pb2.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/e6x_engine_pb2.pyi +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/e6x_engine_pb2_grpc.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/server/ttypes.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/strategy.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector/typeId.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector.egg-info/SOURCES.txt +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector.egg-info/dependency_links.txt +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector.egg-info/entry_points.txt +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector.egg-info/requires.txt +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/e6data_python_connector.egg-info/top_level.txt +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/pyproject.toml +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/setup.cfg +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/__init__.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_38_nines.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_all_cases.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_binary.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_correct_value.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_fields.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/check_decimal_errors.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/cleanup_test_files.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/debug_38_nines.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/debug_binary.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/final_test.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/move_tests.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/quick_test.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_38_nines.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_all_decimal128_cases.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_cluster_manager_efficiency.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_cluster_manager_none_strategy.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_cluster_manager_strategy.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_comprehensive.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_current_implementation.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_decimal128_binary_parsing.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_decimal128_parsing.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_fix.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_improved_parsing.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_known_case.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_manual_analysis.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_mock_server.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_multiprocessing_fix.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_new_implementation.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_specific_binary.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_strategy.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_strategy_logic.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_strategy_persistence_fix.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_strategy_sharing_fix.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_user_binary_value.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/tests.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/tests_grpc.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/validate_decimal128.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/validate_implementation.py +0 -0
- {e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/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.10rc1
|
|
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
|
|
|
@@ -365,7 +365,7 @@ class ClusterManager:
|
|
|
365
365
|
# Retrieve the current cluster status with strategy header
|
|
366
366
|
try:
|
|
367
367
|
current_status = self._try_cluster_request("status")
|
|
368
|
-
except _InactiveRpcError
|
|
368
|
+
except _InactiveRpcError:
|
|
369
369
|
return False
|
|
370
370
|
if current_status.status == 'suspended':
|
|
371
371
|
# Send the resume request with strategy header
|
|
@@ -137,16 +137,6 @@ def _strategy_debug_log(message):
|
|
|
137
137
|
print(f"[E6DATA_STRATEGY_DEBUG] {time.strftime('%Y-%m-%d %H:%M:%S')} - {message}")
|
|
138
138
|
|
|
139
139
|
|
|
140
|
-
def _get_normalised_strategy_with_validate(strategy):
|
|
141
|
-
if not strategy:
|
|
142
|
-
return False
|
|
143
|
-
# Normalize strategy to lowercase and validate
|
|
144
|
-
normalized_strategy = strategy.lower()
|
|
145
|
-
if normalized_strategy not in ['blue', 'green']:
|
|
146
|
-
return False
|
|
147
|
-
return normalized_strategy
|
|
148
|
-
|
|
149
|
-
|
|
150
140
|
def _get_shared_strategy():
|
|
151
141
|
"""Get or create the shared strategy storage."""
|
|
152
142
|
return _local_strategy_cache
|
|
@@ -167,8 +157,11 @@ def _get_active_strategy():
|
|
|
167
157
|
|
|
168
158
|
def _set_active_strategy(strategy):
|
|
169
159
|
"""Set the active deployment strategy in shared memory."""
|
|
170
|
-
|
|
171
|
-
|
|
160
|
+
if not strategy:
|
|
161
|
+
return
|
|
162
|
+
# Normalize strategy to lowercase and validate
|
|
163
|
+
normalized_strategy = strategy.lower()
|
|
164
|
+
if normalized_strategy not in ['blue', 'green']:
|
|
172
165
|
return
|
|
173
166
|
|
|
174
167
|
with _strategy_lock:
|
|
@@ -201,8 +194,11 @@ def _clear_strategy_cache():
|
|
|
201
194
|
|
|
202
195
|
def _set_pending_strategy(strategy):
|
|
203
196
|
"""Set the pending strategy to be used for the next query."""
|
|
204
|
-
|
|
205
|
-
|
|
197
|
+
if not strategy:
|
|
198
|
+
return
|
|
199
|
+
# Normalize strategy to lowercase and validate
|
|
200
|
+
normalized_strategy = strategy.lower()
|
|
201
|
+
if normalized_strategy not in ['blue', 'green']:
|
|
206
202
|
return
|
|
207
203
|
|
|
208
204
|
with _strategy_lock:
|
|
@@ -247,8 +243,11 @@ def _invalidate_all_sessions():
|
|
|
247
243
|
|
|
248
244
|
def _register_query_strategy(query_id, strategy):
|
|
249
245
|
"""Register the strategy used for a specific query."""
|
|
250
|
-
|
|
251
|
-
|
|
246
|
+
if not query_id or not strategy:
|
|
247
|
+
return
|
|
248
|
+
# Normalize strategy to lowercase and validate
|
|
249
|
+
normalized_strategy = strategy.lower()
|
|
250
|
+
if normalized_strategy not in ['blue', 'green']:
|
|
252
251
|
return
|
|
253
252
|
|
|
254
253
|
with _strategy_lock:
|
|
@@ -373,6 +372,7 @@ class Connection(object):
|
|
|
373
372
|
self.database = database
|
|
374
373
|
self.cluster_name = cluster_name
|
|
375
374
|
self._session_id = None
|
|
375
|
+
self._session_strategy = None # Track which strategy was used for current session
|
|
376
376
|
self._host = host
|
|
377
377
|
self._port = port
|
|
378
378
|
|
|
@@ -495,6 +495,7 @@ class Connection(object):
|
|
|
495
495
|
# Check if session was invalidated globally
|
|
496
496
|
if self._session_id and session_invalidated:
|
|
497
497
|
self._session_id = None
|
|
498
|
+
self._session_strategy = None
|
|
498
499
|
self.close()
|
|
499
500
|
self._create_client()
|
|
500
501
|
# Clear the invalidation flag
|
|
@@ -508,8 +509,18 @@ class Connection(object):
|
|
|
508
509
|
_apply_pending_strategy()
|
|
509
510
|
# Force complete reconnection with new strategy
|
|
510
511
|
self._session_id = None
|
|
512
|
+
self._session_strategy = None
|
|
511
513
|
self.close()
|
|
512
514
|
self._create_client()
|
|
515
|
+
|
|
516
|
+
# Check if session strategy matches current active strategy
|
|
517
|
+
elif self._session_id and self._session_strategy and self._session_strategy != _get_active_strategy():
|
|
518
|
+
# Session was created with different strategy, need to re-authenticate
|
|
519
|
+
_strategy_debug_log(f"Session strategy mismatch: session created with {self._session_strategy}, current active is {_get_active_strategy()}")
|
|
520
|
+
self._session_id = None
|
|
521
|
+
self._session_strategy = None
|
|
522
|
+
self.close()
|
|
523
|
+
self._create_client()
|
|
513
524
|
|
|
514
525
|
if not self._session_id:
|
|
515
526
|
try:
|
|
@@ -534,14 +545,16 @@ class Connection(object):
|
|
|
534
545
|
self._session_id = authenticate_response.sessionId
|
|
535
546
|
if not self._session_id:
|
|
536
547
|
raise ValueError("Invalid credentials.")
|
|
548
|
+
# Track which strategy was used for this session
|
|
549
|
+
self._session_strategy = active_strategy
|
|
537
550
|
# Check for new strategy in authenticate response
|
|
538
551
|
if hasattr(authenticate_response, 'new_strategy') and authenticate_response.new_strategy:
|
|
539
552
|
new_strategy = authenticate_response.new_strategy.lower()
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
_set_pending_strategy(normalized_strategy)
|
|
553
|
+
if new_strategy != active_strategy:
|
|
554
|
+
_set_pending_strategy(new_strategy)
|
|
543
555
|
_apply_pending_strategy()
|
|
544
556
|
self._session_id = None
|
|
557
|
+
self._session_strategy = None
|
|
545
558
|
self.close()
|
|
546
559
|
self._create_client()
|
|
547
560
|
return self.get_session_id
|
|
@@ -581,17 +594,19 @@ class Connection(object):
|
|
|
581
594
|
# Success! Cache this strategy
|
|
582
595
|
_strategy_debug_log(f"Authentication successful with strategy: {strategy}")
|
|
583
596
|
_set_active_strategy(strategy)
|
|
597
|
+
# Track which strategy was used for this session
|
|
598
|
+
self._session_strategy = strategy
|
|
584
599
|
|
|
585
600
|
# Check for new strategy in authenticate response
|
|
586
601
|
if hasattr(authenticate_response, 'new_strategy') and authenticate_response.new_strategy:
|
|
587
602
|
new_strategy = authenticate_response.new_strategy.lower()
|
|
588
|
-
|
|
589
|
-
if normalized_strategy and normalized_strategy != active_strategy:
|
|
603
|
+
if new_strategy != strategy:
|
|
590
604
|
_set_pending_strategy(new_strategy)
|
|
591
605
|
_apply_pending_strategy()
|
|
592
606
|
self.close()
|
|
593
607
|
self._create_client()
|
|
594
608
|
self._session_id = None
|
|
609
|
+
self._session_strategy = None
|
|
595
610
|
return self.get_session_id
|
|
596
611
|
break
|
|
597
612
|
except _InactiveRpcError as e:
|
|
@@ -622,7 +637,6 @@ class Connection(object):
|
|
|
622
637
|
cluster_uuid=self.cluster_name,
|
|
623
638
|
timeout=self.grpc_auto_resume_timeout_seconds
|
|
624
639
|
).resume()
|
|
625
|
-
print('starus', status)
|
|
626
640
|
if status:
|
|
627
641
|
return self.get_session_id
|
|
628
642
|
else:
|
|
@@ -670,6 +684,7 @@ class Connection(object):
|
|
|
670
684
|
self._channel.close()
|
|
671
685
|
self._channel = None
|
|
672
686
|
self._session_id = None
|
|
687
|
+
self._session_strategy = None
|
|
673
688
|
|
|
674
689
|
# Remove from debug connections if debug was enabled
|
|
675
690
|
if self._debug:
|
|
@@ -961,8 +976,14 @@ class Cursor(DBAPICursor):
|
|
|
961
976
|
Returns:
|
|
962
977
|
list: A list of tuples containing gRPC metadata.
|
|
963
978
|
"""
|
|
964
|
-
# Use query-specific strategy if available, otherwise use active strategy
|
|
965
|
-
|
|
979
|
+
# Use query-specific strategy if available, otherwise use session strategy, otherwise use active strategy
|
|
980
|
+
if self._query_id:
|
|
981
|
+
strategy = _get_query_strategy(self._query_id)
|
|
982
|
+
elif self.connection._session_strategy:
|
|
983
|
+
# Use the strategy that was used to create the current session
|
|
984
|
+
strategy = self.connection._session_strategy
|
|
985
|
+
else:
|
|
986
|
+
strategy = _get_active_strategy()
|
|
966
987
|
return _get_grpc_header(engine_ip=self._engine_ip, cluster=self.connection.cluster_name, strategy=strategy)
|
|
967
988
|
|
|
968
989
|
@property
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: e6data-python-connector
|
|
3
|
-
Version: 2.3.
|
|
3
|
+
Version: 2.3.10rc1
|
|
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.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_38_nines.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_all_cases.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_binary.py
RENAMED
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/analyze_fields.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/check_decimal_errors.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/cleanup_test_files.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/debug_38_nines.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/debug_binary.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_38_nines.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_comprehensive.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_known_case.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_manual_analysis.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_mock_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_specific_binary.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_strategy.py
RENAMED
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/test_strategy_logic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/validate_decimal128.py
RENAMED
|
File without changes
|
|
File without changes
|
{e6data_python_connector-2.3.9rc10 → e6data_python_connector-2.3.10rc1}/test/verify_decimal_fix.py
RENAMED
|
File without changes
|