databricks-sql-connector 4.0.6__tar.gz → 4.1.1__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.
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/CHANGELOG.md +28 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/PKG-INFO +3 -1
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/README.md +2 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/pyproject.toml +1 -1
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/__init__.py +1 -1
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/http_client.py +4 -1
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/unified_http_client.py +12 -4
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/LICENSE +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/auth.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/authenticators.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/common.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/endpoint.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/oauth.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/oauth_http_handler.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/retry.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/thrift_http_client.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/databricks_client.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/backend.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/base.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/requests.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/responses.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/queue.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/result_set.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/constants.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/conversion.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/filters.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/normalize.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/thrift_backend.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/types.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/utils/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/utils/guid_utils.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/client.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/cloudfetch/download_manager.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/cloudfetch/downloader.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/feature_flag.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/http.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/http_utils.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/exc.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/experimental/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/experimental/oauth_persistence.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/parameters/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/parameters/native.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/parameters/py.typed +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/py.typed +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/result_set.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/session.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/latency_logger.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/endpoint_models.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/enums.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/event.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/frontend_logs.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/telemetry_client.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/utils.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/TCLIService-remote +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/TCLIService.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/constants.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/ttypes.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/__init__.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/types.py +0 -0
- {databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/utils.py +0 -0
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Release History
|
|
2
2
|
|
|
3
|
+
# 4.1.1 (2025-08-21)
|
|
4
|
+
- Add documentation for proxy support (databricks/databricks-sql-python#680 by @vikrantpuppala)
|
|
5
|
+
- Fix compatibility with urllib3<2 and add CI actions to improve dependency checks (databricks/databricks-sql-python#678 by @vikrantpuppala)
|
|
6
|
+
|
|
7
|
+
# 4.1.0 (2025-08-18)
|
|
8
|
+
- Removed Codeowners (databricks/databricks-sql-python#623 by @jprakash-db)
|
|
9
|
+
- Azure Service Principal Credential Provider (databricks/databricks-sql-python#621 by @jprakash-db)
|
|
10
|
+
- Add optional telemetry support to the python connector (databricks/databricks-sql-python#628 by @saishreeeee)
|
|
11
|
+
- Fix potential resource leak in `CloudFetchQueue` (databricks/databricks-sql-python#624 by @varun-edachali-dbx)
|
|
12
|
+
- Generalise Backend Layer (databricks/databricks-sql-python#604 by @varun-edachali-dbx)
|
|
13
|
+
- Arrow performance optimizations (databricks/databricks-sql-python#638 by @jprakash-db)
|
|
14
|
+
- Connection errors to unauthenticated telemetry endpoint (databricks/databricks-sql-python#619 by @saishreeeee)
|
|
15
|
+
- SEA: Execution Phase (databricks/databricks-sql-python#645 by @varun-edachali-dbx)
|
|
16
|
+
- Add retry mechanism to telemetry requests (databricks/databricks-sql-python#617 by @saishreeeee)
|
|
17
|
+
- SEA: Fetch Phase (databricks/databricks-sql-python#650 by @varun-edachali-dbx)
|
|
18
|
+
- added logs for cloud fetch speed (databricks/databricks-sql-python#654 by @shivam2680)
|
|
19
|
+
- Make telemetry batch size configurable and add time-based flush (databricks/databricks-sql-python#622 by @saishreeeee)
|
|
20
|
+
- Normalise type code (databricks/databricks-sql-python#652 by @varun-edachali-dbx)
|
|
21
|
+
- Testing for telemetry (databricks/databricks-sql-python#616 by @saishreeeee)
|
|
22
|
+
- Bug fixes in telemetry (databricks/databricks-sql-python#659 by @saishreeeee)
|
|
23
|
+
- Telemetry server-side flag integration (databricks/databricks-sql-python#646 by @saishreeeee)
|
|
24
|
+
- Enhance SEA HTTP Client (databricks/databricks-sql-python#618 by @varun-edachali-dbx)
|
|
25
|
+
- SEA: Allow large metadata responses (databricks/databricks-sql-python#653 by @varun-edachali-dbx)
|
|
26
|
+
- Added code coverage workflow to test the code coverage from unit and e2e tests (databricks/databricks-sql-python#657 by @msrathore-db)
|
|
27
|
+
- Concat tables to be backward compatible (databricks/databricks-sql-python#647 by @jprakash-db)
|
|
28
|
+
- Refactor codebase to use a unified http client (databricks/databricks-sql-python#673 by @vikrantpuppala)
|
|
29
|
+
- Add kerberos support for proxy auth (databricks/databricks-sql-python#675 by @vikrantpuppala)
|
|
30
|
+
|
|
3
31
|
# 4.0.5 (2025-06-24)
|
|
4
32
|
- Fix: Reverted change in cursor close handling which led to errors impacting users (databricks/databricks-sql-python#613 by @madhav-db)
|
|
5
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: databricks-sql-connector
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.1.1
|
|
4
4
|
Summary: Databricks SQL Connector for Python
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
Author: Databricks
|
|
@@ -40,6 +40,8 @@ The Databricks SQL Connector for Python allows you to develop Python application
|
|
|
40
40
|
|
|
41
41
|
This connector uses Arrow as the data-exchange format, and supports APIs (e.g. `fetchmany_arrow`) to directly fetch Arrow tables. Arrow tables are wrapped in the `ArrowQueue` class to provide a natural API to get several rows at a time. [PyArrow](https://arrow.apache.org/docs/python/index.html) is required to enable this and use these APIs, you can install it via `pip install pyarrow` or `pip install databricks-sql-connector[pyarrow]`.
|
|
42
42
|
|
|
43
|
+
The connector includes built-in support for HTTP/HTTPS proxy servers with multiple authentication methods including basic authentication and Kerberos/Negotiate authentication. See `docs/proxy.md` and `examples/proxy_authentication.py` for details.
|
|
44
|
+
|
|
43
45
|
You are welcome to file an issue here for general use cases. You can also contact Databricks Support [here](help.databricks.com).
|
|
44
46
|
|
|
45
47
|
## Requirements
|
|
@@ -7,6 +7,8 @@ The Databricks SQL Connector for Python allows you to develop Python application
|
|
|
7
7
|
|
|
8
8
|
This connector uses Arrow as the data-exchange format, and supports APIs (e.g. `fetchmany_arrow`) to directly fetch Arrow tables. Arrow tables are wrapped in the `ArrowQueue` class to provide a natural API to get several rows at a time. [PyArrow](https://arrow.apache.org/docs/python/index.html) is required to enable this and use these APIs, you can install it via `pip install pyarrow` or `pip install databricks-sql-connector[pyarrow]`.
|
|
9
9
|
|
|
10
|
+
The connector includes built-in support for HTTP/HTTPS proxy servers with multiple authentication methods including basic authentication and Kerberos/Negotiate authentication. See `docs/proxy.md` and `examples/proxy_authentication.py` for details.
|
|
11
|
+
|
|
10
12
|
You are welcome to file an issue here for general use cases. You can also contact Databricks Support [here](help.databricks.com).
|
|
11
13
|
|
|
12
14
|
## Requirements
|
|
@@ -255,7 +255,10 @@ class SeaHttpClient:
|
|
|
255
255
|
) as response:
|
|
256
256
|
# Handle successful responses
|
|
257
257
|
if 200 <= response.status < 300:
|
|
258
|
-
|
|
258
|
+
if response.data:
|
|
259
|
+
return json.loads(response.data.decode())
|
|
260
|
+
else:
|
|
261
|
+
return {}
|
|
259
262
|
|
|
260
263
|
error_message = f"SEA HTTP request failed with status {response.status}"
|
|
261
264
|
raise Exception(error_message)
|
|
@@ -10,6 +10,14 @@ from urllib3 import PoolManager, ProxyManager
|
|
|
10
10
|
from urllib3.util import make_headers
|
|
11
11
|
from urllib3.exceptions import MaxRetryError
|
|
12
12
|
|
|
13
|
+
# Compatibility import for different urllib3 versions
|
|
14
|
+
try:
|
|
15
|
+
# If urllib3~=2.0 is installed
|
|
16
|
+
from urllib3 import BaseHTTPResponse
|
|
17
|
+
except ImportError:
|
|
18
|
+
# If urllib3~=1.0 is installed
|
|
19
|
+
from urllib3 import HTTPResponse as BaseHTTPResponse
|
|
20
|
+
|
|
13
21
|
from databricks.sql.auth.retry import DatabricksRetryPolicy, CommandType
|
|
14
22
|
from databricks.sql.exc import RequestError
|
|
15
23
|
from databricks.sql.common.http import HttpMethod
|
|
@@ -222,7 +230,7 @@ class UnifiedHttpClient:
|
|
|
222
230
|
url: str,
|
|
223
231
|
headers: Optional[Dict[str, str]] = None,
|
|
224
232
|
**kwargs,
|
|
225
|
-
) -> Generator[
|
|
233
|
+
) -> Generator[BaseHTTPResponse, None, None]:
|
|
226
234
|
"""
|
|
227
235
|
Context manager for making HTTP requests with proper resource cleanup.
|
|
228
236
|
|
|
@@ -233,7 +241,7 @@ class UnifiedHttpClient:
|
|
|
233
241
|
**kwargs: Additional arguments passed to urllib3 request
|
|
234
242
|
|
|
235
243
|
Yields:
|
|
236
|
-
|
|
244
|
+
BaseHTTPResponse: The HTTP response object
|
|
237
245
|
"""
|
|
238
246
|
logger.debug(
|
|
239
247
|
"Making %s request to %s", method, urllib.parse.urlparse(url).netloc
|
|
@@ -270,7 +278,7 @@ class UnifiedHttpClient:
|
|
|
270
278
|
url: str,
|
|
271
279
|
headers: Optional[Dict[str, str]] = None,
|
|
272
280
|
**kwargs,
|
|
273
|
-
) ->
|
|
281
|
+
) -> BaseHTTPResponse:
|
|
274
282
|
"""
|
|
275
283
|
Make an HTTP request.
|
|
276
284
|
|
|
@@ -281,7 +289,7 @@ class UnifiedHttpClient:
|
|
|
281
289
|
**kwargs: Additional arguments passed to urllib3 request
|
|
282
290
|
|
|
283
291
|
Returns:
|
|
284
|
-
|
|
292
|
+
BaseHTTPResponse: The HTTP response object with data and metadata pre-loaded
|
|
285
293
|
"""
|
|
286
294
|
with self.request_context(method, url, headers=headers, **kwargs) as response:
|
|
287
295
|
# Read the response data to ensure it's available after context exit
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/auth.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/common.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/oauth.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/retry.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/http.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
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/py.typed
RENAMED
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/result_set.py
RENAMED
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/session.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/types.py
RENAMED
|
File without changes
|
{databricks_sql_connector-4.0.6 → databricks_sql_connector-4.1.1}/src/databricks/sql/utils.py
RENAMED
|
File without changes
|