diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2022-09-08 19:00:08 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-09-08 19:00:08 +0000 |
commit | 479dbc99e7fc5a60f846992c0cca8542047a8933 (patch) | |
tree | 15210296871b450b22ffdc9535f204ed6fa78a21 /lib/sqlalchemy/orm/properties.py | |
parent | b0e5667a79fdf096719c0ad596d5aa6e9753adb7 (diff) | |
parent | fcd298e1afe9b309de34d28b35e4debc3940d6b9 (diff) | |
download | sqlalchemy-479dbc99e7fc5a60f846992c0cca8542047a8933.tar.gz |
Merge "additional de-stringify pass for unions" into main
Diffstat (limited to 'lib/sqlalchemy/orm/properties.py')
-rw-r--r-- | lib/sqlalchemy/orm/properties.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 7d7175678..3d9fe578d 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -51,9 +51,11 @@ from ..sql.schema import Column from ..sql.schema import SchemaConst from ..util.typing import de_optionalize_union_types from ..util.typing import de_stringify_annotation +from ..util.typing import de_stringify_union_elements from ..util.typing import is_fwd_ref from ..util.typing import is_optional_union from ..util.typing import is_pep593 +from ..util.typing import is_union from ..util.typing import Self from ..util.typing import typing_get_args @@ -655,6 +657,9 @@ class MappedColumn( if is_fwd_ref(argument): argument = de_stringify_annotation(cls, argument) + if is_union(argument): + argument = de_stringify_union_elements(cls, argument) + nullable = is_optional_union(argument) if not self._has_nullable: @@ -690,6 +695,7 @@ class MappedColumn( checks = (our_type,) for check_type in checks: + if registry.type_annotation_map: new_sqltype = registry.type_annotation_map.get(check_type) if new_sqltype is None: |