[commands] Fix @classmethod converters
This commit is contained in:
parent
3abb2fde56
commit
fbe6e2f520
@ -444,13 +444,16 @@ class Command(_BaseCommand):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
if inspect.isclass(converter):
|
if inspect.isclass(converter):
|
||||||
if issubclass(converter, converters.Converter):
|
if inspect.ismethod(converter.convert):
|
||||||
instance = converter()
|
if converter.convert.__self__ is converter:
|
||||||
ret = await instance.convert(ctx, argument)
|
# class method
|
||||||
return ret
|
func = converter.convert
|
||||||
|
else:
|
||||||
|
# instance method
|
||||||
|
func = converter().convert
|
||||||
|
return await func.convert(ctx, argument)
|
||||||
elif isinstance(converter, converters.Converter):
|
elif isinstance(converter, converters.Converter):
|
||||||
ret = await converter.convert(ctx, argument)
|
return await converter.convert(ctx, argument)
|
||||||
return ret
|
|
||||||
except CommandError:
|
except CommandError:
|
||||||
raise
|
raise
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user