diff --git a/.github/workflows/linters.yaml b/.github/workflows/app.yaml similarity index 84% rename from .github/workflows/linters.yaml rename to .github/workflows/app.yaml index fdf4f09..fe84b6b 100644 --- a/.github/workflows/linters.yaml +++ b/.github/workflows/app.yaml @@ -12,7 +12,7 @@ jobs: with: # https://github.com/actions/setup-python/blob/main/docs/advanced-usage.md#caching-packages python-version: '3.11' cache: 'pip' - cache-dependency-path: '**/requirements/*.txt' + cache-dependency-path: 'requirements/dev.txt' - name: Install dev dependencies run: | python -m pip install --upgrade pip @@ -30,3 +30,6 @@ jobs: - name: Lint with pyupgrade run: | python -m pyupgrade --py311-plus + - name: Lint with pyproject-fmt + run: | + python -m pyproject_fmt --stdout --check diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 89d66f3..302e627 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,6 +33,10 @@ repos: hooks: - id: pyupgrade args: [--py311-plus] + - repo: https://github.com/tox-dev/pyproject-fmt + rev: "0.11.1" + hooks: + - id: pyproject-fmt - repo: https://github.com/jorisroovers/gitlint rev: 'v0.19.1' hooks: diff --git a/pyproject.toml b/pyproject.toml index db674c9..b4511cd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,30 +1,37 @@ [project] name = "awesome-fastapi-projects" -description = "A web app built with FastAPI to index awesome projects built with FastAPI." version = "0.1.0" +description = "A web app built with FastAPI to index awesome projects built with FastAPI." authors = [ {name = "Vladyslav Fedoriuk", email="vlad.fedoriuk2000@gmail.com"} ] -dependencies = [ - "fastapi[all]", - "aiosqlite", - "sqlalchemy[asyncio]", - "alembic", -] requires-python = ">=3.11" - +classifiers = [ + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.11", +] +dependencies = [ + "aiosqlite", + "alembic", + "fastapi[all]", + "sqlalchemy[asyncio]", +] [project.optional-dependencies] -test = [ - "pytest", -] dev = [ - "black", - "isort", - "pyupgrade", - "ruff", - "pip-tools", - "pre-commit", + "black", + "isort", + "pip-tools", + "pre-commit", + "pyproject-fmt", + "pyupgrade", + "ruff", ] +test = [ + "pytest", +] + +[tool.setuptools] +py-modules = ["app"] [tool.black] line-length = 88 @@ -85,6 +92,3 @@ extend-select = [ [tool.ruff.pydocstyle] convention = "numpy" - -[tool.setuptools] -py-modules = ["app"] diff --git a/requirements/dev.txt b/requirements/dev.txt index fcf5303..52f43ca 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -73,6 +73,8 @@ markupsafe==2.1.3 # mako mypy-extensions==1.0.0 # via black +natsort==8.4.0 + # via pyproject-fmt nodeenv==1.8.0 # via pre-commit orjson==3.9.2 @@ -81,6 +83,7 @@ packaging==23.1 # via # black # build + # pyproject-fmt pathspec==0.11.1 # via black pip-tools==7.1.0 @@ -102,6 +105,8 @@ pydantic-extra-types==2.0.0 # via fastapi pydantic-settings==2.0.2 # via fastapi +pyproject-fmt==0.13.0 + # via awesome-fastapi-projects (pyproject.toml) pyproject-hooks==1.0.0 # via build python-dotenv==1.0.0 @@ -132,6 +137,8 @@ starlette==0.27.0 # via fastapi tokenize-rt==5.1.0 # via pyupgrade +tomlkit==0.12.1 + # via pyproject-fmt typing-extensions==4.7.1 # via # alembic