databricks-sql-connector 4.1.0__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.
Files changed (64) hide show
  1. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/CHANGELOG.md +4 -0
  2. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/PKG-INFO +3 -1
  3. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/README.md +2 -0
  4. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/pyproject.toml +1 -1
  5. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/__init__.py +1 -1
  6. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/http_client.py +4 -1
  7. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/unified_http_client.py +12 -4
  8. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/LICENSE +0 -0
  9. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/__init__.py +0 -0
  10. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/__init__.py +0 -0
  11. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/auth.py +0 -0
  12. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/authenticators.py +0 -0
  13. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/common.py +0 -0
  14. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/endpoint.py +0 -0
  15. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/oauth.py +0 -0
  16. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/oauth_http_handler.py +0 -0
  17. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/retry.py +0 -0
  18. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/auth/thrift_http_client.py +0 -0
  19. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/databricks_client.py +0 -0
  20. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/backend.py +0 -0
  21. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/__init__.py +0 -0
  22. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/base.py +0 -0
  23. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/requests.py +0 -0
  24. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/models/responses.py +0 -0
  25. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/queue.py +0 -0
  26. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/result_set.py +0 -0
  27. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/constants.py +0 -0
  28. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/conversion.py +0 -0
  29. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/filters.py +0 -0
  30. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/sea/utils/normalize.py +0 -0
  31. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/thrift_backend.py +0 -0
  32. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/types.py +0 -0
  33. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/utils/__init__.py +0 -0
  34. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/backend/utils/guid_utils.py +0 -0
  35. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/client.py +0 -0
  36. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/cloudfetch/download_manager.py +0 -0
  37. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/cloudfetch/downloader.py +0 -0
  38. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/feature_flag.py +0 -0
  39. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/http.py +0 -0
  40. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/common/http_utils.py +0 -0
  41. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/exc.py +0 -0
  42. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/experimental/__init__.py +0 -0
  43. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/experimental/oauth_persistence.py +0 -0
  44. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/parameters/__init__.py +0 -0
  45. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/parameters/native.py +0 -0
  46. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/parameters/py.typed +0 -0
  47. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/py.typed +0 -0
  48. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/result_set.py +0 -0
  49. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/session.py +0 -0
  50. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/latency_logger.py +0 -0
  51. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/endpoint_models.py +0 -0
  52. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/enums.py +0 -0
  53. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/event.py +0 -0
  54. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/models/frontend_logs.py +0 -0
  55. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/telemetry_client.py +0 -0
  56. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/telemetry/utils.py +0 -0
  57. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/TCLIService-remote +0 -0
  58. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/TCLIService.py +0 -0
  59. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/__init__.py +0 -0
  60. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/constants.py +0 -0
  61. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/TCLIService/ttypes.py +0 -0
  62. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/thrift_api/__init__.py +0 -0
  63. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/types.py +0 -0
  64. {databricks_sql_connector-4.1.0 → databricks_sql_connector-4.1.1}/src/databricks/sql/utils.py +0 -0
@@ -1,5 +1,9 @@
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
+
3
7
  # 4.1.0 (2025-08-18)
4
8
  - Removed Codeowners (databricks/databricks-sql-python#623 by @jprakash-db)
5
9
  - Azure Service Principal Credential Provider (databricks/databricks-sql-python#621 by @jprakash-db)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: databricks-sql-connector
3
- Version: 4.1.0
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
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "databricks-sql-connector"
3
- version = "4.1.0"
3
+ version = "4.1.1"
4
4
  description = "Databricks SQL Connector for Python"
5
5
  authors = ["Databricks <databricks-sql-connector-maintainers@databricks.com>"]
6
6
  license = "Apache-2.0"
@@ -68,7 +68,7 @@ DATETIME = DBAPITypeObject("timestamp")
68
68
  DATE = DBAPITypeObject("date")
69
69
  ROWID = DBAPITypeObject()
70
70
 
71
- __version__ = "4.1.0"
71
+ __version__ = "4.1.1"
72
72
  USER_AGENT_NAME = "PyDatabricksSqlConnector"
73
73
 
74
74
  # These two functions are pyhive legacy
@@ -255,7 +255,10 @@ class SeaHttpClient:
255
255
  ) as response:
256
256
  # Handle successful responses
257
257
  if 200 <= response.status < 300:
258
- return response.json()
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[urllib3.BaseHTTPResponse, None, None]:
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
- urllib3.BaseHTTPResponse: The HTTP response object
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
- ) -> urllib3.BaseHTTPResponse:
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
- urllib3.BaseHTTPResponse: The HTTP response object with data and metadata pre-loaded
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