diff --git a/.flake8 b/.flake8 deleted file mode 100644 index 9eb49403..00000000 --- a/.flake8 +++ /dev/null @@ -1,11 +0,0 @@ -[flake8] -max-line-length = 100 -# Ignore non PEP 8 compliant rules as suggested by black -# E203: https://github.com/psf/black/blob/3fab5ade71bccf80ae0a5af76729099869adea56/docs/the_black_code_style/current_style.md#slices -extend-ignore = - E203, - E501, - B017 -exclude = _vendored -per-file-ignores = - tests/unit/example_crlf_file.py:F401 diff --git a/pyproject.toml b/pyproject.toml index a1f0322b..10639da4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -114,6 +114,7 @@ dev = [ "example-shared-isort-profile>=0.1.0", "flake8>=3.8.4", "flake8-bugbear>=22.12.12", + "flake8-pyproject>=1.2.3", "hatch>=1.14.0", "httpx>=0.13.3", "hypothesis>=6.10.1", @@ -141,6 +142,21 @@ dev = [ "vulture>=1.0", ] +[tool.flake8] +max-line-length = 100 +# Ignore non PEP 8 compliant rules as suggested by black +# E203: https://github.com/psf/black/blob/3fab5ade71bccf80ae0a5af76729099869adea56/docs/the_black_code_style/current_style.md#slices +extend-ignore = [ + "B017", + "E203", +] +exclude = "_vendored" +per-file-ignores = [ + "tests/unit/example_crlf_file.py:F401", + "tests/unit/profiles/test_black.py:E501", + "tests/unit/test_regressions.py:E501", +] + [tool.mypy] python_version = 3.9 strict = true diff --git a/scripts/lint.sh b/scripts/lint.sh index 71f659ee..c499b073 100755 --- a/scripts/lint.sh +++ b/scripts/lint.sh @@ -6,7 +6,7 @@ uv run mypy -p isort -p tests uv run black --target-version py39 --check . uv run isort --profile hug --check --diff isort/ tests/ uv run isort --profile hug --check --diff example_*/ -uv run flake8 isort/ tests/ +uv run --with=Flake8-pyproject flake8 isort/ tests/ # 51457: https://github.com/tiangolo/typer/discussions/674 # 72715: https://github.com/timothycrosley/portray/issues/95 uv run safety check -i 72715 -i 51457 -i 59587 diff --git a/uv.lock b/uv.lock index 7aaf6e46..29885b8c 100644 --- a/uv.lock +++ b/uv.lock @@ -104,7 +104,7 @@ name = "bandit" version = "1.8.2" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "pyyaml" }, { name = "rich" }, { name = "stevedore" }, @@ -377,7 +377,7 @@ name = "click" version = "8.1.8" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 } wheels = [ @@ -662,16 +662,16 @@ wheels = [ [[package]] name = "flake8" -version = "7.1.1" +version = "7.0.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mccabe" }, { name = "pycodestyle" }, { name = "pyflakes" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/37/72/e8d66150c4fcace3c0a450466aa3480506ba2cae7b61e100a2613afc3907/flake8-7.1.1.tar.gz", hash = "sha256:049d058491e228e03e67b390f311bbf88fce2dbaa8fa673e7aea87b7198b8d38", size = 48054 } +sdist = { url = "https://files.pythonhosted.org/packages/40/3c/3464b567aa367b221fa610bbbcce8015bf953977d21e52f2d711b526fb48/flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132", size = 48219 } wheels = [ - { url = "https://files.pythonhosted.org/packages/d9/42/65004373ac4617464f35ed15931b30d764f53cdd30cc78d5aea349c8c050/flake8-7.1.1-py2.py3-none-any.whl", hash = "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213", size = 57731 }, + { url = "https://files.pythonhosted.org/packages/e3/01/cc8cdec7b61db0315c2ab62d80677a138ef06832ec17f04d87e6ef858f7f/flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3", size = 57570 }, ] [[package]] @@ -687,6 +687,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b9/21/0a875f75fbe4008bd171e2fefa413536258fe6b4cfaaa087986de74588f4/flake8_bugbear-24.12.12-py3-none-any.whl", hash = "sha256:1b6967436f65ca22a42e5373aaa6f2d87966ade9aa38d4baf2a1be550767545e", size = 36664 }, ] +[[package]] +name = "flake8-pyproject" +version = "1.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flake8" }, + { name = "tomli", marker = "python_full_version < '3.11'" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/1d/635e86f9f3a96b7ea9e9f19b5efe17a987e765c39ca496e4a893bb999112/flake8_pyproject-1.2.3-py3-none-any.whl", hash = "sha256:6249fe53545205af5e76837644dc80b4c10037e73a0e5db87ff562d75fb5bd4a", size = 4756 }, +] + [[package]] name = "ghp-import" version = "2.1.0" @@ -925,7 +937,6 @@ wheels = [ [[package]] name = "isort" -version = "5.13.3.dev124" source = { editable = "." } [package.optional-dependencies] @@ -947,6 +958,7 @@ dev = [ { name = "example-shared-isort-profile" }, { name = "flake8" }, { name = "flake8-bugbear" }, + { name = "flake8-pyproject" }, { name = "hatch" }, { name = "httpx" }, { name = "hypothesis" }, @@ -991,6 +1003,7 @@ dev = [ { name = "example-shared-isort-profile", specifier = ">=0.1.0" }, { name = "flake8", specifier = ">=3.8.4" }, { name = "flake8-bugbear", specifier = ">=22.12.12" }, + { name = "flake8-pyproject", specifier = ">=1.2.3" }, { name = "hatch", specifier = ">=1.14.0" }, { name = "httpx", specifier = ">=0.13.3" }, { name = "hypothesis", specifier = ">=6.10.1" }, @@ -1858,11 +1871,11 @@ wheels = [ [[package]] name = "pycodestyle" -version = "2.12.1" +version = "2.11.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/aa/210b2c9aedd8c1cbeea31a50e42050ad56187754b34eb214c46709445801/pycodestyle-2.12.1.tar.gz", hash = "sha256:6838eae08bbce4f6accd5d5572075c63626a15ee3e6f842df996bf62f6d73521", size = 39232 } +sdist = { url = "https://files.pythonhosted.org/packages/34/8f/fa09ae2acc737b9507b5734a9aec9a2b35fa73409982f57db1b42f8c3c65/pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", size = 38974 } wheels = [ - { url = "https://files.pythonhosted.org/packages/3a/d8/a211b3f85e99a0daa2ddec96c949cac6824bd305b040571b82a03dd62636/pycodestyle-2.12.1-py2.py3-none-any.whl", hash = "sha256:46f0fb92069a7c28ab7bb558f05bfc0110dac69a0cd23c61ea0040283a9d78b3", size = 31284 }, + { url = "https://files.pythonhosted.org/packages/b1/90/a998c550d0ddd07e38605bb5c455d00fcc177a800ff9cc3dafdcb3dd7b56/pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67", size = 31132 }, ] [[package]]