sqlalchemy-stubs icon indicating copy to clipboard operation
sqlalchemy-stubs copied to clipboard

Relax TypeDecorator.process_*_param to return Optional[Any]

Open huonw opened this issue 4 years ago • 1 comments

The process_bind_param and process_literal_param methods are called to do decorator-specific conversion of values, before deferring to the underlying .impl's conversion methods. This means they can return any value accepted by those methods, not just str (or typing.Text). These are related to the process_result_value method, which is effectively the inverse, doing decorator-specific conversion of the output of the underlying .impl, and indeed this method accepts value: Optional[Any], representing the unknown type of the output of the underlying .impl.

Unfortunately, modelling this accurately is likely to be impossible (or at least, much more difficult), because, for instance, the impl property itself can only be typed as Any, let alone the input/output type it uses.

Fixes #205

huonw avatar Jan 25 '21 05:01 huonw

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

CLAassistant avatar Apr 16 '22 21:04 CLAassistant