Skip to content

Commit f0c8864

Browse files
committed
🐛 fix(sqla): generic_issubclass() with Literal args or no subscripted cls
1 parent b282fc8 commit f0c8864

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

nonebot_plugin_orm/utils.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from nonebot.params import Depends
2222
from nonebot import logger, get_driver
2323
from sqlalchemy.sql.selectable import ExecutableReturnsRows
24-
from nonebot.typing import origin_is_union, origin_is_literal, all_literal_values
24+
from nonebot.typing import origin_is_union, origin_is_literal
2525

2626
if sys.version_info >= (3, 9):
2727
from importlib.resources import files
@@ -170,17 +170,17 @@ def generic_issubclass(scls: Any, cls: Any) -> Any:
170170
if origin_is_union(cls_origin):
171171
return generic_issubclass(scls, cls_args)
172172

173-
if origin_is_literal(scls) and origin_is_literal(cls):
174-
return set(all_literal_values(scls)) <= set(all_literal_values(cls))
173+
if origin_is_literal(scls_origin) and origin_is_literal(cls_origin):
174+
return set(scls_args) <= set(cls_args)
175175

176176
try:
177177
if not issubclass(scls_origin, cls_origin):
178178
return False
179179
except TypeError:
180180
return False
181181

182-
if len(scls_args) == 1 and len(cls_args) <= 1:
183-
return generic_issubclass(scls_args[0], (cls_args or (Any,))[0])
182+
if not cls_args:
183+
return True
184184

185185
return len(scls_args) == len(cls_args) and all(
186186
map(generic_issubclass, scls_args, cls_args)

0 commit comments

Comments
 (0)