diff options
author | mike bayer <mike_mp@zzzcomputing.com> | 2022-08-05 14:53:22 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@ci3.zzzcomputing.com> | 2022-08-05 14:53:22 +0000 |
commit | e332909b103661975bd17816b3a2713e30671ae0 (patch) | |
tree | 246e49b63bf8e66befb7c3e493bfc33592f906ec /lib/sqlalchemy/orm/decl_base.py | |
parent | 828a1a0d143976c0e36a4772d4bd908ff6484735 (diff) | |
parent | d2887d03a28b09e9be7db17d7603b6b0a4715df3 (diff) | |
download | sqlalchemy-e332909b103661975bd17816b3a2713e30671ae0.tar.gz |
Merge "Support kw_only and match_args in dataclass mapping" into main
Diffstat (limited to 'lib/sqlalchemy/orm/decl_base.py')
-rw-r--r-- | lib/sqlalchemy/orm/decl_base.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/lib/sqlalchemy/orm/decl_base.py b/lib/sqlalchemy/orm/decl_base.py index 108027dd5..e8d6e4c1b 100644 --- a/lib/sqlalchemy/orm/decl_base.py +++ b/lib/sqlalchemy/orm/decl_base.py @@ -106,6 +106,8 @@ class _DataclassArguments(TypedDict): eq: Union[_NoArg, bool] order: Union[_NoArg, bool] unsafe_hash: Union[_NoArg, bool] + match_args: Union[_NoArg, bool] + kw_only: Union[_NoArg, bool] def _declared_mapping_info( @@ -1030,22 +1032,20 @@ class _ClassScanMapperConfig(_MapperConfig): @classmethod def _assert_dc_arguments(cls, arguments: _DataclassArguments) -> None: - disallowed_args = set(arguments).difference( - { - "init", - "repr", - "order", - "eq", - "unsafe_hash", - } - ) + allowed = { + "init", + "repr", + "order", + "eq", + "unsafe_hash", + "kw_only", + "match_args", + } + disallowed_args = set(arguments).difference(allowed) if disallowed_args: + msg = ", ".join(f"{arg!r}" for arg in sorted(disallowed_args)) raise exc.ArgumentError( - f"Dataclass argument(s) " - f"""{ - ', '.join(f'{arg!r}' - for arg in sorted(disallowed_args)) - } are not accepted""" + f"Dataclass argument(s) {msg} are not accepted" ) def _collect_annotation( |