diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2022-10-21 17:29:23 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-10-21 17:29:23 +0000 |
| commit | bbf68345f4993245689b96cc6c6a50013afa3caa (patch) | |
| tree | 87fc85e71008b0a47f4ca52597024fac1132d39f /lib/sqlalchemy | |
| parent | 26616dd8186629a8c68e00bda62e061b9b19eb45 (diff) | |
| parent | e9df3e8de0caaea20ddf0ab7f46b1110ba6dd0e9 (diff) | |
| download | sqlalchemy-bbf68345f4993245689b96cc6c6a50013afa3caa.tar.gz | |
Merge "Only convert Range for sqlalchemy Range object" into main
Diffstat (limited to 'lib/sqlalchemy')
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/asyncpg.py | 14 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/psycopg.py | 20 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/postgresql/psycopg2.py | 8 |
3 files changed, 19 insertions, 23 deletions
diff --git a/lib/sqlalchemy/dialects/postgresql/asyncpg.py b/lib/sqlalchemy/dialects/postgresql/asyncpg.py index 96bac59d9..cd161d28e 100644 --- a/lib/sqlalchemy/dialects/postgresql/asyncpg.py +++ b/lib/sqlalchemy/dialects/postgresql/asyncpg.py @@ -293,13 +293,11 @@ class AsyncpgCHAR(sqltypes.CHAR): class _AsyncpgRange(ranges.AbstractRangeImpl): def bind_processor(self, dialect): - Range = dialect.dbapi.asyncpg.Range - - NoneType = type(None) + asyncpg_Range = dialect.dbapi.asyncpg.Range def to_range(value): - if not isinstance(value, (str, NoneType)): - value = Range( + if isinstance(value, ranges.Range): + value = asyncpg_Range( value.lower, value.upper, lower_inc=value.bounds[0] == "[", @@ -328,7 +326,7 @@ class _AsyncpgRange(ranges.AbstractRangeImpl): class _AsyncpgMultiRange(ranges.AbstractMultiRangeImpl): def bind_processor(self, dialect): - Range = dialect.dbapi.asyncpg.Range + asyncpg_Range = dialect.dbapi.asyncpg.Range NoneType = type(None) @@ -337,8 +335,8 @@ class _AsyncpgMultiRange(ranges.AbstractMultiRangeImpl): return value def to_range(value): - if not isinstance(value, (str, NoneType)): - value = Range( + if isinstance(value, ranges.Range): + value = asyncpg_Range( value.lower, value.upper, lower_inc=value.bounds[0] == "[", diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg.py b/lib/sqlalchemy/dialects/postgresql/psycopg.py index 7ca274e2c..400c3186e 100644 --- a/lib/sqlalchemy/dialects/postgresql/psycopg.py +++ b/lib/sqlalchemy/dialects/postgresql/psycopg.py @@ -164,13 +164,11 @@ class _PGBoolean(sqltypes.Boolean): class _PsycopgRange(ranges.AbstractRangeImpl): def bind_processor(self, dialect): - Range = cast(PGDialect_psycopg, dialect)._psycopg_Range - - NoneType = type(None) + psycopg_Range = cast(PGDialect_psycopg, dialect)._psycopg_Range def to_range(value): - if not isinstance(value, (str, NoneType)): - value = Range( + if isinstance(value, ranges.Range): + value = psycopg_Range( value.lower, value.upper, value.bounds, value.empty ) return value @@ -193,18 +191,20 @@ class _PsycopgRange(ranges.AbstractRangeImpl): class _PsycopgMultiRange(ranges.AbstractMultiRangeImpl): def bind_processor(self, dialect): - Range = cast(PGDialect_psycopg, dialect)._psycopg_Range - Multirange = cast(PGDialect_psycopg, dialect)._psycopg_Multirange + psycopg_Range = cast(PGDialect_psycopg, dialect)._psycopg_Range + psycopg_Multirange = cast( + PGDialect_psycopg, dialect + )._psycopg_Multirange NoneType = type(None) def to_range(value): - if isinstance(value, (str, NoneType)): + if isinstance(value, (str, NoneType, psycopg_Multirange)): return value - return Multirange( + return psycopg_Multirange( [ - Range( + psycopg_Range( element.lower, element.upper, element.bounds, diff --git a/lib/sqlalchemy/dialects/postgresql/psycopg2.py b/lib/sqlalchemy/dialects/postgresql/psycopg2.py index 350f4b616..4a8df5b5e 100644 --- a/lib/sqlalchemy/dialects/postgresql/psycopg2.py +++ b/lib/sqlalchemy/dialects/postgresql/psycopg2.py @@ -503,16 +503,14 @@ class _Psycopg2Range(ranges.AbstractRangeImpl): _psycopg2_range_cls = "none" def bind_processor(self, dialect): - Range = getattr( + psycopg2_Range = getattr( cast(PGDialect_psycopg2, dialect)._psycopg2_extras, self._psycopg2_range_cls, ) - NoneType = type(None) - def to_range(value): - if not isinstance(value, (str, NoneType)): - value = Range( + if isinstance(value, ranges.Range): + value = psycopg2_Range( value.lower, value.upper, value.bounds, value.empty ) return value |
