sentry-python icon indicating copy to clipboard operation
sentry-python copied to clipboard

Use `ParamSpec` for shared kwargs

Open sentrivana opened this issue 2 years ago • 0 comments

Problem Statement

We have a couple of hacks in place in the SDK (e.g. here) to enable autocompletion for things that share args/kwargs without having to duplicate said args/kwargs in multiple places.

Solution Brainstorm

Python 3.10 (and typing_extensions for lower Python versions) includes support for ParamSpec https://sobolevn.me/2021/12/paramspec-guide that allows type signatures to "share" args/kwargs between functions. See if we can use this to replace the existing hacks.

Make sure that you get proper typing hints in an IDE (best to check both e.g. VSCode and PyCharm) and that the API docs are also correct.

sentrivana avatar Aug 28 '23 07:08 sentrivana