diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml new file mode 100644 index 0000000..d6e6a30 --- /dev/null +++ b/.github/workflows/mypy.yml @@ -0,0 +1,25 @@ +name: Type check + +on: [push] + +jobs: + mypy: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.13"] + + steps: + - uses: actions/checkout@v5 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v6 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements_dev.txt + - name: Run mypy + run: | + mypy custom_components tests --strict --namespace-packages --explicit-package-bases diff --git a/.github/workflows/ruff.yml b/.github/workflows/ruff.yml new file mode 100644 index 0000000..0d1e50c --- /dev/null +++ b/.github/workflows/ruff.yml @@ -0,0 +1,8 @@ +name: Ruff +on: [ push, pull_request ] +jobs: + ruff: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: astral-sh/ruff-action@v3 \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 656788f..da8e3dd 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,6 +1,8 @@ { "recommendations": [ "ms-python.isort", - "ms-python.black-formatter" + "ms-python.black-formatter", + "charliermarsh.ruff", + "ms-python.mypy-type-checker" ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index fa26b6b..2a1660d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,7 @@ "source.organizeImports": "explicit" }, }, + "ruff.lint.enable": true, "isort.args": [ "--profile", "black" diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 0000000..0b87165 --- /dev/null +++ b/ruff.toml @@ -0,0 +1,7 @@ + +[lint] +select = ["ALL"] +ignore = ["D202", "D212", "D213", "G004", "FURB171"] + +[per-file-ignores] +"tests/*" = ["S101", "SLF001"]