diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 022ef24a0f..61aaf71411 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,23 +13,13 @@ repos: - --unsafe - id: end-of-file-fixer - id: trailing-whitespace -- repo: https://github.com/asottile/pyupgrade - rev: v3.15.0 - hooks: - - id: pyupgrade - args: - - --py3-plus - - --keep-runtime-typing -- repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.1.1 +- repo: https://github.com/charliermarsh/ruff-pre-commit + rev: v0.1.2 hooks: - id: ruff args: - --fix -- repo: https://github.com/psf/black - rev: 23.10.0 - hooks: - - id: black + - id: ruff-format ci: autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate diff --git a/pyproject.toml b/pyproject.toml index 181064e4ea..20188513c1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,7 @@ sqlalchemy2-stubs = {version = "*", allow-prereleases = true} [tool.poetry.group.dev.dependencies] pytest = "^7.0.1" mypy = "0.971" +# Needed by the code generator using templates black = "^22.10.0" mkdocs-material = "9.1.21" pillow = "^9.3.0" @@ -46,7 +47,7 @@ mdx-include = "^1.4.1" coverage = {extras = ["toml"], version = "^6.2"} fastapi = "^0.68.1" requests = "^2.26.0" -ruff = "^0.1.1" +ruff = "^0.1.2" [build-system] requires = ["poetry-core"] @@ -87,11 +88,13 @@ select = [ "I", # isort "C", # flake8-comprehensions "B", # flake8-bugbear + "UP", # pyupgrade ] ignore = [ "E501", # line too long, handled by black "B008", # do not perform function calls in argument defaults "C901", # too complex + "W191", # indentation contains tabs ] [tool.ruff.per-file-ignores] @@ -99,3 +102,7 @@ ignore = [ [tool.ruff.isort] known-third-party = ["sqlmodel", "sqlalchemy", "pydantic", "fastapi"] + +[tool.ruff.pyupgrade] +# Preserve types, even if a file imports `from __future__ import annotations`. +keep-runtime-typing = true diff --git a/scripts/format.sh b/scripts/format.sh index b6aebd10d4..70c12e579d 100755 --- a/scripts/format.sh +++ b/scripts/format.sh @@ -2,4 +2,4 @@ set -x ruff sqlmodel tests docs_src scripts --fix -black sqlmodel tests docs_src scripts +ruff format sqlmodel tests docs_src scripts diff --git a/scripts/lint.sh b/scripts/lint.sh index b328e3d9ac..f66882239f 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -5,4 +5,4 @@ set -x mypy sqlmodel ruff sqlmodel tests docs_src scripts -black sqlmodel tests docs_src --check +ruff format sqlmodel tests docs_src --check diff --git a/tests/conftest.py b/tests/conftest.py index cd66420c88..2b8e5fc29e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -42,8 +42,7 @@ def coverage_run(*, module: str, cwd: Union[str, Path]) -> subprocess.CompletedP module, ], cwd=str(cwd), - stdout=subprocess.PIPE, - stderr=subprocess.PIPE, + capture_output=True, encoding="utf-8", ) return result