Mypy plugin

Mypy plugin provides type checking for luigi.Task using Mypy.

Require Python 3.8 or later.

How to use

Configure Mypy to use this plugin by adding the following to your mypy.ini file:

[mypy]
plugins = luigi.mypy

or by adding the following to your pyproject.toml file:

[tool.mypy]
plugins = ["luigi.mypy"]

Then, run Mypy as usual.

Examples

For example the following code linted by Mypy:

import luigi


class MyTask(luigi.Task):
    foo: int = luigi.IntParameter()
    bar: str = luigi.Parameter()

MyTask(foo=1, bar='2')   # OK
MyTask(foo='1', bar='2')  # Error: Argument 1 to "Foo" has incompatible type "str"; expected "int"