This can cause headaches in the future, when users can't figure out why their step argument 'datatable' or 'docstring' does not get the value they expect
The type hinting for the most commonly used decorators were incomplete,
resulting in decorated functions being obscured.
This makes use of the special type variable `ParamSpec` which allows the
type hinting a view into the parameters of a function. As ``ParamSpec`
was introduced in Python 3.10, `ParamSpec` is imported from the
`typing_extensions` module instead of the standard library.
I have also taken the opportunity to fix other instances of `Callable`
type hints missing their arguments.
Signed-off-by: JP-Ellis <josh@jpellis.me>
`testdir` is deprecated. It's identical to `pytester`, except that
`testdir` returns `py.path` objects whereas `pytester` returns Python
stdlib `Path` objects. So I had to update usages of those paths.
`pytester` was added in pytest 6.2, which is our minimum supported
version.