auto-optional: adds the Optional type-hint to arguments where the default value is None
Documentation: auto-optional.daanluttik.nl
Source Code: github.com/luttik/auto-optional
The basic purpose of auto-optional is ensuring that whenever a default argument is None
the type annotation is Optional.
For example:
def foo(bar: str = None):
...
Would turn into
from typing import Optional
def foo(bar: Optional[str] = None):
...
- Easily modify external libraries that didn't pay attention to proper use of optional to improve mypy linting.
- Force consistency in your own code-base:
Enforcing that
None
parameter implies anOptional
type. - Explicit is better than implicit โ pep 20
auto-optional was covered on PythonBytes #251
I love these little tools that you can run against your code that will just reformat them to be better.
โ Michael Kennedy
Install with pip install auto-optional
.
After installing you can run auto-optional using auto-optional [path]
(path is an optional argument).
- The alternatives to
Optional
are supported, that means both;Union[X, None]
x | None
(allowed since python 10+).
- Existing imports are reused.
import as
andfrom typing import ...
statements are properly handled.
For all these points you can leave a thumbs-up if you want it. Also, I welcome pull-requests for these issues.