From 0631ccc997e967693046292b3135ed5f1d1d0d37 Mon Sep 17 00:00:00 2001 From: John DiMatteo Date: Mon, 16 Aug 2021 15:46:23 -0600 Subject: [PATCH 1/3] feat: Follow SQLAlchemy dialect attribute convention --- sqlalchemy_bigquery/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sqlalchemy_bigquery/__init__.py b/sqlalchemy_bigquery/__init__.py index fb08e576..dd1daeed 100644 --- a/sqlalchemy_bigquery/__init__.py +++ b/sqlalchemy_bigquery/__init__.py @@ -41,6 +41,9 @@ BIGNUMERIC, ) +# Define a "dialect" attribute to follow the common SqlAlchemy convention assumed by some libraries that leverage SqlAlchemy. +base.dialect = dialect = BigQueryDialect + __all__ = [ "__version__", "BigQueryDialect", From bba86efd6a83b7d17f7adff6ff9df69ac035a1a0 Mon Sep 17 00:00:00 2001 From: Jim Fulton Date: Fri, 20 Aug 2021 15:17:48 -0400 Subject: [PATCH 2/3] fix: dialect atribute wasn't provided --- tests/unit/test_sqlalchemy_bigquery.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/unit/test_sqlalchemy_bigquery.py b/tests/unit/test_sqlalchemy_bigquery.py index 78b5b3cd..1fb6e009 100644 --- a/tests/unit/test_sqlalchemy_bigquery.py +++ b/tests/unit/test_sqlalchemy_bigquery.py @@ -158,3 +158,9 @@ def test__remove_type_from_empty_in(inp, outp): r = BigQueryExecutionContext._BigQueryExecutionContext__remove_type_from_empty_in assert r(None, inp) == outp + + +def test_follow_dialect_attribute_convention(): + import sqlalchemy_bigquery.base + assert sqlalchemy_bigquery.dialect is sqlalchemy_bigquery.BigQueryDialect + assert sqlalchemy_bigquery.base.dialect is sqlalchemy_bigquery.BigQueryDialect From e31da7d5cbf1ba98173f426b2dfba870b1686abb Mon Sep 17 00:00:00 2001 From: Jim Fulton Date: Fri, 20 Aug 2021 15:26:11 -0400 Subject: [PATCH 3/3] blacken/lint --- sqlalchemy_bigquery/__init__.py | 5 +---- sqlalchemy_bigquery/base.py | 2 ++ tests/unit/test_sqlalchemy_bigquery.py | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sqlalchemy_bigquery/__init__.py b/sqlalchemy_bigquery/__init__.py index 1e12ad0c..a9321ed5 100644 --- a/sqlalchemy_bigquery/__init__.py +++ b/sqlalchemy_bigquery/__init__.py @@ -22,7 +22,7 @@ from .version import __version__ # noqa -from .base import BigQueryDialect +from .base import BigQueryDialect, dialect # noqa from .base import ( STRING, BOOL, @@ -41,9 +41,6 @@ BIGNUMERIC, ) -# Define a "dialect" attribute to follow the common SqlAlchemy convention assumed by some libraries that leverage SqlAlchemy. -base.dialect = dialect = BigQueryDialect - __all__ = [ "BigQueryDialect", "STRING", diff --git a/sqlalchemy_bigquery/base.py b/sqlalchemy_bigquery/base.py index a51e4748..a9539f5d 100644 --- a/sqlalchemy_bigquery/base.py +++ b/sqlalchemy_bigquery/base.py @@ -986,6 +986,8 @@ def get_view_definition(self, connection, view_name, schema=None, **kw): return view.view_query +dialect = BigQueryDialect + try: import alembic # noqa except ImportError: diff --git a/tests/unit/test_sqlalchemy_bigquery.py b/tests/unit/test_sqlalchemy_bigquery.py index b954fd99..a4c81367 100644 --- a/tests/unit/test_sqlalchemy_bigquery.py +++ b/tests/unit/test_sqlalchemy_bigquery.py @@ -175,5 +175,6 @@ def test_multi_value_insert(faux_conn, last_query): def test_follow_dialect_attribute_convention(): import sqlalchemy_bigquery.base + assert sqlalchemy_bigquery.dialect is sqlalchemy_bigquery.BigQueryDialect assert sqlalchemy_bigquery.base.dialect is sqlalchemy_bigquery.BigQueryDialect