databricks-sql-connector 4.0.0b3__tar.gz → 4.0.0b4__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 (35) hide show
  1. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/CHANGELOG.md +5 -0
  2. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/PKG-INFO +21 -8
  3. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/README.md +20 -3
  4. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/pyproject.toml +2 -11
  5. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/client.py +7 -0
  6. databricks_sql_connector-4.0.0b3/src/databricks/sqlalchemy/__init__.py +0 -6
  7. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/LICENSE +0 -0
  8. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/__init__.py +0 -0
  9. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/__init__.py +0 -0
  10. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/__init__.py +0 -0
  11. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/auth.py +0 -0
  12. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/authenticators.py +0 -0
  13. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/endpoint.py +0 -0
  14. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/oauth.py +0 -0
  15. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/oauth_http_handler.py +0 -0
  16. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/retry.py +0 -0
  17. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/auth/thrift_http_client.py +0 -0
  18. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/cloudfetch/download_manager.py +0 -0
  19. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/cloudfetch/downloader.py +0 -0
  20. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/exc.py +0 -0
  21. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/experimental/__init__.py +0 -0
  22. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/experimental/oauth_persistence.py +0 -0
  23. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/parameters/__init__.py +0 -0
  24. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/parameters/native.py +0 -0
  25. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/parameters/py.typed +0 -0
  26. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/py.typed +0 -0
  27. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_api/TCLIService/TCLIService-remote +0 -0
  28. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_api/TCLIService/TCLIService.py +0 -0
  29. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_api/TCLIService/__init__.py +0 -0
  30. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_api/TCLIService/constants.py +0 -0
  31. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_api/TCLIService/ttypes.py +0 -0
  32. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_api/__init__.py +0 -0
  33. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/thrift_backend.py +0 -0
  34. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/types.py +0 -0
  35. {databricks_sql_connector-4.0.0b3 → databricks_sql_connector-4.0.0b4}/src/databricks/sql/utils.py +0 -0
@@ -1,5 +1,10 @@
1
1
  # Release History
2
2
 
3
+ # 4.0.0
4
+
5
+ - Split the connector into two separate packages: `databricks-sql-connector` and `databricks-sqlalchemy`. The `databricks-sql-connector` package contains the core functionality of the connector, while the `databricks-sqlalchemy` package contains the SQLAlchemy dialect for the connector.
6
+ - Pyarrow dependency is now optional in `databricks-sql-connector`. Users needing arrow are supposed to explicitly install pyarrow
7
+
3
8
  # 3.6.0 (2024-10-25)
4
9
 
5
10
  - Support encryption headers in the cloud fetch request (https://github.com/databricks/databricks-sql-python/pull/460 by @jackyhu-db)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: databricks-sql-connector
3
- Version: 4.0.0b3
3
+ Version: 4.0.0b4
4
4
  Summary: Databricks SQL Connector for Python
5
5
  License: Apache-2.0
6
6
  Author: Databricks
@@ -13,11 +13,7 @@ Classifier: Programming Language :: Python :: 3.9
13
13
  Classifier: Programming Language :: Python :: 3.10
14
14
  Classifier: Programming Language :: Python :: 3.11
15
15
  Classifier: Programming Language :: Python :: 3.12
16
- Provides-Extra: alembic
17
- Provides-Extra: databricks-sqlalchemy
18
16
  Provides-Extra: pyarrow
19
- Requires-Dist: alembic (>=1.0.11,<2.0.0) ; extra == "alembic"
20
- Requires-Dist: databricks-sqlalchemy (>=2.0.0) ; extra == "databricks-sqlalchemy" or extra == "alembic"
21
17
  Requires-Dist: lz4 (>=4.0.2,<5.0.0)
22
18
  Requires-Dist: numpy (>=1.16.6,<2.0.0) ; python_version >= "3.8" and python_version < "3.11"
23
19
  Requires-Dist: numpy (>=1.23.4,<2.0.0) ; python_version >= "3.11"
@@ -37,9 +33,9 @@ Description-Content-Type: text/markdown
37
33
  [![PyPI](https://img.shields.io/pypi/v/databricks-sql-connector?style=flat-square)](https://pypi.org/project/databricks-sql-connector/)
38
34
  [![Downloads](https://pepy.tech/badge/databricks-sql-connector)](https://pepy.tech/project/databricks-sql-connector)
39
35
 
40
- The Databricks SQL Connector for Python allows you to develop Python applications that connect to Databricks clusters and SQL warehouses. It is a Thrift-based client with no dependencies on ODBC or JDBC. It conforms to the [Python DB API 2.0 specification](https://www.python.org/dev/peps/pep-0249/) and exposes a [SQLAlchemy](https://www.sqlalchemy.org/) dialect for use with tools like `pandas` and `alembic` which use SQLAlchemy to execute DDL. Use `pip install databricks-sql-connector[sqlalchemy]` to install with SQLAlchemy's dependencies. `pip install databricks-sql-connector[alembic]` will install alembic's dependencies.
36
+ The Databricks SQL Connector for Python allows you to develop Python applications that connect to Databricks clusters and SQL warehouses. It is a Thrift-based client with no dependencies on ODBC or JDBC. It conforms to the [Python DB API 2.0 specification](https://www.python.org/dev/peps/pep-0249/).
41
37
 
42
- This connector uses Arrow as the data-exchange format, and supports APIs 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.
38
+ 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]`.
43
39
 
44
40
  You are welcome to file an issue here for general use cases. You can also contact Databricks Support [here](help.databricks.com).
45
41
 
@@ -56,7 +52,12 @@ For the latest documentation, see
56
52
 
57
53
  ## Quickstart
58
54
 
59
- Install the library with `pip install databricks-sql-connector`
55
+ ### Installing the core library
56
+ Install using `pip install databricks-sql-connector`
57
+
58
+ ### Installing the core library with PyArrow
59
+ Install using `pip install databricks-sql-connector[pyarrow]`
60
+
60
61
 
61
62
  ```bash
62
63
  export DATABRICKS_HOST=********.databricks.com
@@ -94,6 +95,18 @@ or to a Databricks Runtime interactive cluster (e.g. /sql/protocolv1/o/123456789
94
95
  > to authenticate the target Databricks user account and needs to open the browser for authentication. So it
95
96
  > can only run on the user's machine.
96
97
 
98
+ ## SQLAlchemy
99
+ Starting from `databricks-sql-connector` version 4.0.0 SQLAlchemy support has been extracted to a new library `databricks-sqlalchemy`.
100
+
101
+ - Github repository [databricks-sqlalchemy github](https://github.com/databricks/databricks-sqlalchemy)
102
+ - PyPI [databricks-sqlalchemy pypi](https://pypi.org/project/databricks-sqlalchemy/)
103
+
104
+ ### Quick SQLAlchemy guide
105
+ Users can now choose between using the SQLAlchemy v1 or SQLAlchemy v2 dialects with the connector core
106
+
107
+ - Install the latest SQLAlchemy v1 using `pip install databricks-sqlalchemy~=1.0`
108
+ - Install SQLAlchemy v2 using `pip install databricks-sqlalchemy`
109
+
97
110
 
98
111
  ## Contributing
99
112
 
@@ -3,9 +3,9 @@
3
3
  [![PyPI](https://img.shields.io/pypi/v/databricks-sql-connector?style=flat-square)](https://pypi.org/project/databricks-sql-connector/)
4
4
  [![Downloads](https://pepy.tech/badge/databricks-sql-connector)](https://pepy.tech/project/databricks-sql-connector)
5
5
 
6
- The Databricks SQL Connector for Python allows you to develop Python applications that connect to Databricks clusters and SQL warehouses. It is a Thrift-based client with no dependencies on ODBC or JDBC. It conforms to the [Python DB API 2.0 specification](https://www.python.org/dev/peps/pep-0249/) and exposes a [SQLAlchemy](https://www.sqlalchemy.org/) dialect for use with tools like `pandas` and `alembic` which use SQLAlchemy to execute DDL. Use `pip install databricks-sql-connector[sqlalchemy]` to install with SQLAlchemy's dependencies. `pip install databricks-sql-connector[alembic]` will install alembic's dependencies.
6
+ The Databricks SQL Connector for Python allows you to develop Python applications that connect to Databricks clusters and SQL warehouses. It is a Thrift-based client with no dependencies on ODBC or JDBC. It conforms to the [Python DB API 2.0 specification](https://www.python.org/dev/peps/pep-0249/).
7
7
 
8
- This connector uses Arrow as the data-exchange format, and supports APIs 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.
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
10
  You are welcome to file an issue here for general use cases. You can also contact Databricks Support [here](help.databricks.com).
11
11
 
@@ -22,7 +22,12 @@ For the latest documentation, see
22
22
 
23
23
  ## Quickstart
24
24
 
25
- Install the library with `pip install databricks-sql-connector`
25
+ ### Installing the core library
26
+ Install using `pip install databricks-sql-connector`
27
+
28
+ ### Installing the core library with PyArrow
29
+ Install using `pip install databricks-sql-connector[pyarrow]`
30
+
26
31
 
27
32
  ```bash
28
33
  export DATABRICKS_HOST=********.databricks.com
@@ -60,6 +65,18 @@ or to a Databricks Runtime interactive cluster (e.g. /sql/protocolv1/o/123456789
60
65
  > to authenticate the target Databricks user account and needs to open the browser for authentication. So it
61
66
  > can only run on the user's machine.
62
67
 
68
+ ## SQLAlchemy
69
+ Starting from `databricks-sql-connector` version 4.0.0 SQLAlchemy support has been extracted to a new library `databricks-sqlalchemy`.
70
+
71
+ - Github repository [databricks-sqlalchemy github](https://github.com/databricks/databricks-sqlalchemy)
72
+ - PyPI [databricks-sqlalchemy pypi](https://pypi.org/project/databricks-sqlalchemy/)
73
+
74
+ ### Quick SQLAlchemy guide
75
+ Users can now choose between using the SQLAlchemy v1 or SQLAlchemy v2 dialects with the connector core
76
+
77
+ - Install the latest SQLAlchemy v1 using `pip install databricks-sqlalchemy~=1.0`
78
+ - Install SQLAlchemy v2 using `pip install databricks-sqlalchemy`
79
+
63
80
 
64
81
  ## Contributing
65
82
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "databricks-sql-connector"
3
- version = "4.0.0.b3"
3
+ version = "4.0.0.b4"
4
4
  description = "Databricks SQL Connector for Python"
5
5
  authors = ["Databricks <databricks-sql-connector-maintainers@databricks.com>"]
6
6
  license = "Apache-2.0"
@@ -23,15 +23,9 @@ numpy = [
23
23
  ]
24
24
  openpyxl = "^3.0.10"
25
25
  urllib3 = ">=1.26"
26
-
27
- databricks-sqlalchemy = { version = ">=2.0.0", optional = true }
28
26
  pyarrow = { version = ">=14.0.1,<17", optional=true }
29
- alembic = { version = "^1.0.11", optional = true }
30
-
31
27
 
32
28
  [tool.poetry.extras]
33
- databricks-sqlalchemy = ["databricks-sqlalchemy"]
34
- alembic = ["databricks-sqlalchemy", "alembic"]
35
29
  pyarrow = ["pyarrow"]
36
30
 
37
31
  [tool.poetry.dev-dependencies]
@@ -45,9 +39,6 @@ pytest-dotenv = "^0.5.2"
45
39
  "Homepage" = "https://github.com/databricks/databricks-sql-python"
46
40
  "Bug Tracker" = "https://github.com/databricks/databricks-sql-python/issues"
47
41
 
48
- [tool.poetry.plugins."sqlalchemy.dialects"]
49
- "databricks" = "databricks.sqlalchemy:DatabricksDialect"
50
-
51
42
  [build-system]
52
43
  requires = ["poetry-core>=1.0.0"]
53
44
  build-backend = "poetry.core.masonry.api"
@@ -64,5 +55,5 @@ markers = {"reviewed" = "Test case has been reviewed by Databricks"}
64
55
  minversion = "6.0"
65
56
  log_cli = "false"
66
57
  log_cli_level = "INFO"
67
- testpaths = ["tests", "src/databricks/sqlalchemy/test_local"]
58
+ testpaths = ["tests"]
68
59
  env_files = ["test.env"]
@@ -52,6 +52,13 @@ from databricks.sql.thrift_api.TCLIService.ttypes import (
52
52
 
53
53
  logger = logging.getLogger(__name__)
54
54
 
55
+ if pyarrow is None:
56
+ logger.warning(
57
+ "[WARN] pyarrow is not installed by default since databricks-sql-connector 4.0.0,"
58
+ "any arrow specific api (e.g. fetchmany_arrow) and cloud fetch will be disabled."
59
+ "If you need these features, please run pip install pyarrow or pip install databricks-sql-connector[pyarrow] to install"
60
+ )
61
+
55
62
  DEFAULT_RESULT_BUFFER_SIZE_BYTES = 104857600
56
63
  DEFAULT_ARRAY_SIZE = 100000
57
64
 
@@ -1,6 +0,0 @@
1
- try:
2
- from databricks_sqlalchemy import *
3
- except:
4
- import warnings
5
-
6
- warnings.warn("Install databricks-sqlalchemy plugin before using this")