GitHub - Luttik/auto-optional: Makes typed arguments Optional when the default argument is None (original) (raw)

auto-optional

Logo

auto-optional: adds the Optional type-hint to arguments where the default value is None

actions batch pypi python versions codecov License: MIT Code style: black


Documentation: auto-optional.daanluttik.nl

Source Code: github.com/luttik/auto-optional


What does auto-optional do

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): ...

Why would you want this

In the media:

auto-optional was covered onPythonBytes #251

I love these little tools that you can run against your code that will just reformat them to be better.

— Michael Kennedy

Install

Install with pip install auto-optional.

Run

After installing you can run auto-optional using auto-optional [paths...](if no path is provided it'll process the current working directory).

pre-commit

You can run auto-optional via pre-commit. Add the following text to your repositories .pre-commit-config.yaml:

repos:

Things of note

Things that are handled well

Things that need improvement

For all these points you can leave a thumbs-up if you want it. Also, I welcome pull-requests for these issues.