From 3ce9bdf787f11ad4b5ee216d573374eeed333ca0 Mon Sep 17 00:00:00 2001 From: wyattscarpenter Date: Fri, 29 Mar 2024 23:20:07 -0400 Subject: [PATCH 1/4] Create py.typed Signed-off-by: wyattscarpenter --- src/databricks/sql/py.typed | 0 src/databricks/sqlalchemy/py.typed | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100755 src/databricks/sql/py.typed create mode 100755 src/databricks/sqlalchemy/py.typed diff --git a/src/databricks/sql/py.typed b/src/databricks/sql/py.typed new file mode 100755 index 00000000..e69de29b diff --git a/src/databricks/sqlalchemy/py.typed b/src/databricks/sqlalchemy/py.typed new file mode 100755 index 00000000..e69de29b From 40aff2989d4ea731371299edd6b9029447678b62 Mon Sep 17 00:00:00 2001 From: wyattscarpenter Date: Fri, 29 Mar 2024 23:26:00 -0400 Subject: [PATCH 2/4] add -> Connection annotation Signed-off-by: wyattscarpenter --- src/databricks/sql/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/databricks/sql/__init__.py b/src/databricks/sql/__init__.py index 2cc54e25..8ef3d111 100644 --- a/src/databricks/sql/__init__.py +++ b/src/databricks/sql/__init__.py @@ -78,7 +78,7 @@ def TimestampFromTicks(ticks): return Timestamp(*time.localtime(ticks)[:6]) -def connect(server_hostname, http_path, access_token=None, **kwargs): +def connect(server_hostname, http_path, access_token=None, **kwargs) -> "Connection": from .client import Connection return Connection(server_hostname, http_path, access_token, **kwargs) From 5c47835fbb898543b681f17fa382acc3aadf9e64 Mon Sep 17 00:00:00 2001 From: wyattscarpenter Date: Mon, 1 Apr 2024 13:43:41 -0400 Subject: [PATCH 3/4] massage the code to appease the particular version of the project's mypy deps Signed-off-by: wyattscarpenter --- src/databricks/{sql => }/py.typed | 0 src/databricks/sql/__init__.py | 6 +++--- src/databricks/sqlalchemy/py.typed | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename src/databricks/{sql => }/py.typed (100%) mode change 100644 => 100755 src/databricks/sql/__init__.py delete mode 100755 src/databricks/sqlalchemy/py.typed diff --git a/src/databricks/sql/py.typed b/src/databricks/py.typed similarity index 100% rename from src/databricks/sql/py.typed rename to src/databricks/py.typed diff --git a/src/databricks/sql/__init__.py b/src/databricks/sql/__init__.py old mode 100644 new mode 100755 index 8ef3d111..b0b95352 --- a/src/databricks/sql/__init__.py +++ b/src/databricks/sql/__init__.py @@ -2,6 +2,8 @@ from databricks.sql.exc import * +from .client import Connection + # PEP 249 module globals apilevel = "2.0" threadsafety = 1 # Threads may share the module, but not connections. @@ -78,7 +80,5 @@ def TimestampFromTicks(ticks): return Timestamp(*time.localtime(ticks)[:6]) -def connect(server_hostname, http_path, access_token=None, **kwargs) -> "Connection": - from .client import Connection - +def connect(server_hostname, http_path, access_token=None, **kwargs) -> Connection: return Connection(server_hostname, http_path, access_token, **kwargs) diff --git a/src/databricks/sqlalchemy/py.typed b/src/databricks/sqlalchemy/py.typed deleted file mode 100755 index e69de29b..00000000 From 040bfc2dcbc3f5dbbe7a0761fa16875d65753d94 Mon Sep 17 00:00:00 2001 From: wyattscarpenter Date: Mon, 1 Apr 2024 14:57:03 -0400 Subject: [PATCH 4/4] fix circular import problem Signed-off-by: wyattscarpenter --- src/databricks/sql/__init__.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) mode change 100755 => 100644 src/databricks/sql/__init__.py diff --git a/src/databricks/sql/__init__.py b/src/databricks/sql/__init__.py old mode 100755 new mode 100644 index b0b95352..c885998b --- a/src/databricks/sql/__init__.py +++ b/src/databricks/sql/__init__.py @@ -2,8 +2,6 @@ from databricks.sql.exc import * -from .client import Connection - # PEP 249 module globals apilevel = "2.0" threadsafety = 1 # Threads may share the module, but not connections. @@ -12,6 +10,12 @@ import re +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + # Use this import purely for type annotations, a la https://mypy.readthedocs.io/en/latest/runtime_troubles.html#import-cycles + from .client import Connection + class RedactUrlQueryParamsFilter(logging.Filter): pattern = re.compile(r"(\?|&)([\w-]+)=([^&]+)") @@ -80,5 +84,7 @@ def TimestampFromTicks(ticks): return Timestamp(*time.localtime(ticks)[:6]) -def connect(server_hostname, http_path, access_token=None, **kwargs) -> Connection: +def connect(server_hostname, http_path, access_token=None, **kwargs) -> "Connection": + from .client import Connection + return Connection(server_hostname, http_path, access_token, **kwargs)