From 781706c94107e98a3cc2780c0bd1a39a89da562f Mon Sep 17 00:00:00 2001 From: Mario Torres Jr Date: Tue, 29 Nov 2022 10:34:26 -0600 Subject: [PATCH 1/2] fix: use packaging version parser instead of string splitting --- .pre-commit-config.yaml | 2 +- setup.py | 3 ++- sqlalchemy_bigquery/base.py | 14 +++++++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 46d23716..5405cc8f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,7 +25,7 @@ repos: rev: 22.3.0 hooks: - id: black -- repo: https://gitlab.com/pycqa/flake8 +- repo: https://github.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8 diff --git a/setup.py b/setup.py index 5a62bb0c..ccdd324b 100644 --- a/setup.py +++ b/setup.py @@ -85,8 +85,9 @@ def readme(): "google-auth>=1.25.0,<3.0.0dev", # Work around pip wack. "google-cloud-bigquery>=2.25.2,<4.0.0dev", "google-cloud-bigquery-storage>=2.0.0,<3.0.0dev", + "packaging", "pyarrow>=3.0.0", - "sqlalchemy>=1.2.0", + "sqlalchemy>=1.2.0,<2.0.0dev", "future", ], extras_require=extras, diff --git a/sqlalchemy_bigquery/base.py b/sqlalchemy_bigquery/base.py index 32247a45..843f6312 100644 --- a/sqlalchemy_bigquery/base.py +++ b/sqlalchemy_bigquery/base.py @@ -32,7 +32,7 @@ from google.cloud.bigquery import dbapi from google.cloud.bigquery.table import TableReference from google.api_core.exceptions import NotFound - +import packaging.version import sqlalchemy import sqlalchemy.sql.expression import sqlalchemy.sql.functions @@ -340,14 +340,18 @@ def group_by_clause(self, select, **kw): # no way to tell sqlalchemy that, so it works harder than # necessary and makes us do the same. - __sqlalchemy_version_info = tuple(map(int, sqlalchemy.__version__.split("."))) + __sqlalchemy_version_info = packaging.version.parse(sqlalchemy.__version__) __expanding_text = ( - "EXPANDING" if __sqlalchemy_version_info < (1, 4) else "POSTCOMPILE" + "EXPANDING" + if __sqlalchemy_version_info < packaging.version.parse("1.4") + else "POSTCOMPILE" ) # https://github.com/sqlalchemy/sqlalchemy/commit/f79df12bd6d99b8f6f09d4bf07722638c4b4c159 - __expanding_conflict = "" if __sqlalchemy_version_info < (1, 4, 27) else "__" + __expanding_conflict = ( + "" if __sqlalchemy_version_info < packaging.version.parse("1.4.27") else "__" + ) __in_expanding_bind = _helpers.substitute_string_re_method( rf""" @@ -529,7 +533,7 @@ def visit_bindparam( if bindparam.expanding: # pragma: NO COVER assert_(self.__expanded_param(param), f"Unexpected param: {param}") - if self.__sqlalchemy_version_info < (1, 4, 27): + if self.__sqlalchemy_version_info < packaging.version.parse("1.4.27"): param = param.replace(")", f":{bq_type})") else: From 103dd27aae955d55c33eec71a391d35f77e6f9c1 Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Tue, 29 Nov 2022 16:47:25 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=A6=89=20Updates=20from=20OwlBot=20po?= =?UTF-8?q?st-processor?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5405cc8f..46d23716 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,7 +25,7 @@ repos: rev: 22.3.0 hooks: - id: black -- repo: https://github.com/pycqa/flake8 +- repo: https://gitlab.com/pycqa/flake8 rev: 3.9.2 hooks: - id: flake8