databricks-sql-connector 4.4.0__tar.gz → 4.5.0__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 (77) hide show
  1. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/CHANGELOG.md +9 -0
  2. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/PKG-INFO +8 -3
  3. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/README.md +6 -1
  4. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/pyproject.toml +10 -19
  5. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/__init__.py +1 -1
  6. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/databricks_client.py +7 -1
  7. databricks_sql_connector-4.5.0/src/databricks/sql/backend/kernel/auth_bridge.py +544 -0
  8. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/kernel/client.py +215 -63
  9. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/kernel/result_set.py +4 -7
  10. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/kernel/type_mapping.py +8 -2
  11. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/backend.py +18 -1
  12. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/queue.py +12 -1
  13. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/types.py +17 -2
  14. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/client.py +109 -24
  15. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/cloudfetch/download_manager.py +9 -2
  16. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/cloudfetch/downloader.py +11 -2
  17. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/parameters/native.py +56 -9
  18. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/session.py +131 -8
  19. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/telemetry_client.py +3 -0
  20. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/utils.py +17 -6
  21. databricks_sql_connector-4.4.0/src/databricks/sql/backend/kernel/auth_bridge.py +0 -268
  22. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/LICENSE +0 -0
  23. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/__init__.py +0 -0
  24. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/__init__.py +0 -0
  25. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/auth.py +0 -0
  26. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/auth_utils.py +0 -0
  27. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/authenticators.py +0 -0
  28. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/common.py +0 -0
  29. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/endpoint.py +0 -0
  30. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/oauth.py +0 -0
  31. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/oauth_http_handler.py +0 -0
  32. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/retry.py +0 -0
  33. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/thrift_http_client.py +0 -0
  34. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/auth/token_federation.py +0 -0
  35. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/kernel/__init__.py +0 -0
  36. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/kernel/_errors.py +0 -0
  37. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/models/__init__.py +0 -0
  38. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/models/base.py +0 -0
  39. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/models/requests.py +0 -0
  40. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/models/responses.py +0 -0
  41. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/result_set.py +0 -0
  42. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/utils/constants.py +0 -0
  43. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/utils/conversion.py +0 -0
  44. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/utils/filters.py +0 -0
  45. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/utils/http_client.py +0 -0
  46. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/sea/utils/normalize.py +0 -0
  47. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/thrift_backend.py +0 -0
  48. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/utils/__init__.py +0 -0
  49. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/backend/utils/guid_utils.py +0 -0
  50. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/common/agent.py +0 -0
  51. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/common/feature_flag.py +0 -0
  52. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/common/http.py +0 -0
  53. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/common/http_utils.py +0 -0
  54. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/common/unified_http_client.py +0 -0
  55. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/common/url_utils.py +0 -0
  56. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/exc.py +0 -0
  57. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/experimental/__init__.py +0 -0
  58. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/experimental/oauth_persistence.py +0 -0
  59. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/parameters/__init__.py +0 -0
  60. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/parameters/py.typed +0 -0
  61. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/py.typed +0 -0
  62. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/result_set.py +0 -0
  63. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/circuit_breaker_manager.py +0 -0
  64. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/latency_logger.py +0 -0
  65. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/models/endpoint_models.py +0 -0
  66. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/models/enums.py +0 -0
  67. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/models/event.py +0 -0
  68. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/models/frontend_logs.py +0 -0
  69. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/telemetry_push_client.py +0 -0
  70. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/telemetry/utils.py +0 -0
  71. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/thrift_api/TCLIService/TCLIService-remote +0 -0
  72. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/thrift_api/TCLIService/TCLIService.py +0 -0
  73. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/thrift_api/TCLIService/__init__.py +0 -0
  74. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/thrift_api/TCLIService/constants.py +0 -0
  75. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/thrift_api/TCLIService/ttypes.py +0 -0
  76. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/thrift_api/__init__.py +0 -0
  77. {databricks_sql_connector-4.4.0 → databricks_sql_connector-4.5.0}/src/databricks/sql/types.py +0 -0
@@ -1,5 +1,14 @@
1
1
  # Release History
2
2
 
3
+ # 4.5.0 (2026-09-01)
4
+ - Upgrade Databricks SQL Kernel to 1.0.0.
5
+ - Add JWT private-key M2M and Azure Entra authentication for kernel connections.
6
+ - Add `oauth_token_cache_enabled` for kernel U2M token caching.
7
+ - Forward kernel telemetry, socket timeout, OAuth, identity-federation, and row-limit settings.
8
+ - Preserve empty metadata filters and fix async statement telemetry.
9
+ - Lazy-load Apache Thrift for kernel and SEA connections.
10
+ - Deprecate SEA in favor of the kernel backend.
11
+
3
12
  # 4.4.0 (2026-07-22)
4
13
  - Raised the minimum supported Python version to 3.10, dropping the end-of-life 3.8/3.9, to update the lockfile and clear CVE-flagged dependencies in the repo (databricks/databricks-sql-python#798)
5
14
  - Fix: `REMOVE` staging operations no longer require `staging_allowed_local_path` to be set, since removing a remote file does not touch the local filesystem (databricks/databricks-sql-python#726)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-sql-connector
3
- Version: 4.4.0
3
+ Version: 4.5.0
4
4
  Summary: Databricks SQL Connector for Python
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.13
16
16
  Classifier: Programming Language :: Python :: 3.14
17
17
  Provides-Extra: kernel
18
18
  Provides-Extra: pyarrow
19
- Requires-Dist: databricks-sql-kernel (>=0.2.0,<0.3.0) ; (python_version >= "3.10") and (extra == "kernel")
19
+ Requires-Dist: databricks-sql-kernel (>=1.0.0,<2.0.0) ; (python_version >= "3.10") and (extra == "kernel")
20
20
  Requires-Dist: lz4 (>=4.0.2,<5.0.0) ; python_version >= "3.10" and python_version < "3.14"
21
21
  Requires-Dist: lz4 (>=4.4.5,<5.0.0) ; python_version >= "3.14"
22
22
  Requires-Dist: oauthlib (>=3.1.0,<4.0.0)
@@ -60,6 +60,10 @@ For the latest documentation, see
60
60
  - [Databricks](https://docs.databricks.com/dev-tools/python-sql-connector.html)
61
61
  - [Azure Databricks](https://docs.microsoft.com/en-us/azure/databricks/dev-tools/python-sql-connector)
62
62
 
63
+ For a full reference of every `sql.connect(...)` keyword argument — type,
64
+ default, per-backend support (Thrift vs Kernel), and meaning — see
65
+ [`CONNECTION_PARAMETERS.md`](CONNECTION_PARAMETERS.md).
66
+
63
67
  ## Quickstart
64
68
 
65
69
  ### Installing the core library
@@ -90,7 +94,8 @@ Notes:
90
94
  `cp310-abi3`). On older interpreters the `[kernel]` extra installs
91
95
  nothing and `use_kernel=True` raises an `ImportError`.
92
96
  - The extra also pulls in PyArrow, which the kernel result path requires.
93
- - Authentication supports PAT (`access_token`), OAuth M2M, and OAuth U2M.
97
+ - Authentication supports PAT (`access_token`), OAuth M2M/U2M, and SP-wide
98
+ workload identity federation (`identity_federation_client_id`).
94
99
 
95
100
 
96
101
  ```bash
@@ -22,6 +22,10 @@ For the latest documentation, see
22
22
  - [Databricks](https://docs.databricks.com/dev-tools/python-sql-connector.html)
23
23
  - [Azure Databricks](https://docs.microsoft.com/en-us/azure/databricks/dev-tools/python-sql-connector)
24
24
 
25
+ For a full reference of every `sql.connect(...)` keyword argument — type,
26
+ default, per-backend support (Thrift vs Kernel), and meaning — see
27
+ [`CONNECTION_PARAMETERS.md`](CONNECTION_PARAMETERS.md).
28
+
25
29
  ## Quickstart
26
30
 
27
31
  ### Installing the core library
@@ -52,7 +56,8 @@ Notes:
52
56
  `cp310-abi3`). On older interpreters the `[kernel]` extra installs
53
57
  nothing and `use_kernel=True` raises an `ImportError`.
54
58
  - The extra also pulls in PyArrow, which the kernel result path requires.
55
- - Authentication supports PAT (`access_token`), OAuth M2M, and OAuth U2M.
59
+ - Authentication supports PAT (`access_token`), OAuth M2M/U2M, and SP-wide
60
+ workload identity federation (`identity_federation_client_id`).
56
61
 
57
62
 
58
63
  ```bash
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "databricks-sql-connector"
3
- version = "4.4.0"
3
+ version = "4.5.0"
4
4
  description = "Databricks SQL Connector for Python"
5
5
  authors = ["Databricks <databricks-sql-connector-maintainers@databricks.com>"]
6
6
  license = "Apache-2.0"
@@ -48,26 +48,19 @@ pybreaker = "^1.0.0"
48
48
  requests-kerberos = {version = "^0.15.0", optional = true}
49
49
  # Optional Rust kernel backend for ``use_kernel=True`` (PyO3 wheel).
50
50
  # Pulled in only via the ``[kernel]`` extra below. The published wheel
51
- # is ``abi3`` with ``Requires-Python: >=3.10`` (built ``abi3-py310``),
52
- # so the dependency is gated to Python >= 3.10: on 3.8/3.9 the
53
- # ``[kernel]`` extra resolves to nothing and ``use_kernel=True`` raises
54
- # a clear ImportError at runtime (see backend/kernel/_errors.py).
51
+ # is ``abi3`` with ``Requires-Python: >=3.9`` (built ``abi3-py39``); the
52
+ # dependency remains gated to the connector's Python >= 3.10 support floor.
55
53
  #
56
- # Floor is 0.2.0 (``^0.2.0`` == ``>=0.2.0,<0.3.0``). The kernel is
57
- # pre-1.0, so each 0.x minor may carry breaking changes — the ``<0.3.0``
58
- # cap means we bump this deliberately when the kernel ships 0.3.0 rather
59
- # than letting a potentially-breaking minor flow in automatically. 0.2.0
60
- # keeps the same Requires-Python (>=3.10) and pyarrow (>=23.0.1,<24) pin
61
- # as 0.1.x, so the gating below is unchanged.
62
- databricks-sql-kernel = {version = "^0.2.0", optional = true, python = ">=3.10"}
54
+ # Floor is 1.0.0 (``^1.0.0`` == ``>=1.0.0,<2.0.0``), allowing compatible
55
+ # 1.x releases while keeping the next major upgrade deliberate. The kernel's
56
+ # pyarrow constraint remains >=23.0.1,<24.
57
+ databricks-sql-kernel = {version = "^1.0.0", optional = true, python = ">=3.10"}
63
58
 
64
59
 
65
60
  [tool.poetry.extras]
66
61
  pyarrow = ["pyarrow"]
67
62
  # ``pip install databricks-sql-connector[kernel]`` adds the Rust kernel
68
- # backend so ``use_kernel=True`` works. No-op on Python < 3.10 (the
69
- # wheel's floor) — those users get a runtime ImportError if they pass
70
- # ``use_kernel=True``.
63
+ # backend so ``use_kernel=True`` works.
71
64
  #
72
65
  # The kernel result path (``backend/kernel/result_set.py``) needs
73
66
  # pyarrow, but it is NOT listed in this extra on purpose: the published
@@ -75,10 +68,8 @@ pyarrow = ["pyarrow"]
75
68
  # dependency, so ``pip install ...[kernel]`` already pulls a compatible
76
69
  # pyarrow transitively. Listing bare ``pyarrow`` here additionally
77
70
  # forces poetry to co-resolve an unconstrained pyarrow against the
78
- # kernel's ``>=23.0.1,<24`` (which itself requires Python >=3.10) across
79
- # the connector's full 3.8–3.14 support matrix, which is unsatisfiable
80
- # on 3.8/3.9 and breaks ``poetry lock``. The kernel's own dependency
81
- # metadata is the single source of truth for the pyarrow floor.
71
+ # kernel's ``>=23.0.1,<24``. The kernel's own dependency metadata is the
72
+ # single source of truth for the pyarrow floor.
82
73
  kernel = ["databricks-sql-kernel"]
83
74
 
84
75
  [tool.poetry.group.dev.dependencies]
@@ -71,7 +71,7 @@ DATETIME = DBAPITypeObject("timestamp")
71
71
  DATE = DBAPITypeObject("date")
72
72
  ROWID = DBAPITypeObject()
73
73
 
74
- __version__ = "4.4.0"
74
+ __version__ = "4.5.0"
75
75
  USER_AGENT_NAME = "PyDatabricksSqlConnector"
76
76
 
77
77
  # These two functions are pyhive legacy
@@ -7,7 +7,13 @@ if TYPE_CHECKING:
7
7
  from databricks.sql.client import Cursor
8
8
  from databricks.sql.result_set import ResultSet
9
9
 
10
- from databricks.sql.thrift_api.TCLIService import ttypes
10
+ # Type-annotation-only import (deferred by ``from __future__ import
11
+ # annotations``). ``execute_command`` is typed with ``TSparkParameter`` for
12
+ # backwards compatibility, but this abstract base -- and the SEA/kernel
13
+ # implementations of it -- never import the Apache Thrift ``thrift`` package
14
+ # at load time. See ``test_lazy_thrift_import``.
15
+ from databricks.sql.thrift_api.TCLIService import ttypes
16
+
11
17
  from databricks.sql.backend.types import SessionId, CommandId, CommandState
12
18
 
13
19