|
32 | 32 | from google.cloud.bigquery import dbapi |
33 | 33 | from google.cloud.bigquery.table import TableReference |
34 | 34 | from google.api_core.exceptions import NotFound |
35 | | - |
| 35 | +import packaging.version |
36 | 36 | import sqlalchemy |
37 | 37 | import sqlalchemy.sql.expression |
38 | 38 | import sqlalchemy.sql.functions |
@@ -340,14 +340,18 @@ def group_by_clause(self, select, **kw): |
340 | 340 | # no way to tell sqlalchemy that, so it works harder than |
341 | 341 | # necessary and makes us do the same. |
342 | 342 |
|
343 | | - __sqlalchemy_version_info = tuple(map(int, sqlalchemy.__version__.split("."))) |
| 343 | + __sqlalchemy_version_info = packaging.version.parse(sqlalchemy.__version__) |
344 | 344 |
|
345 | 345 | __expanding_text = ( |
346 | | - "EXPANDING" if __sqlalchemy_version_info < (1, 4) else "POSTCOMPILE" |
| 346 | + "EXPANDING" |
| 347 | + if __sqlalchemy_version_info < packaging.version.parse("1.4") |
| 348 | + else "POSTCOMPILE" |
347 | 349 | ) |
348 | 350 |
|
349 | 351 | # https://github.com/sqlalchemy/sqlalchemy/commit/f79df12bd6d99b8f6f09d4bf07722638c4b4c159 |
350 | | - __expanding_conflict = "" if __sqlalchemy_version_info < (1, 4, 27) else "__" |
| 352 | + __expanding_conflict = ( |
| 353 | + "" if __sqlalchemy_version_info < packaging.version.parse("1.4.27") else "__" |
| 354 | + ) |
351 | 355 |
|
352 | 356 | __in_expanding_bind = _helpers.substitute_string_re_method( |
353 | 357 | rf""" |
@@ -529,7 +533,7 @@ def visit_bindparam( |
529 | 533 |
|
530 | 534 | if bindparam.expanding: # pragma: NO COVER |
531 | 535 | assert_(self.__expanded_param(param), f"Unexpected param: {param}") |
532 | | - if self.__sqlalchemy_version_info < (1, 4, 27): |
| 536 | + if self.__sqlalchemy_version_info < packaging.version.parse("1.4.27"): |
533 | 537 | param = param.replace(")", f":{bq_type})") |
534 | 538 |
|
535 | 539 | else: |
|
0 commit comments