Skip to main content

Generate a migration path to ruff from anywhere.

Project description

that's

ruffly-all

Answering what's necessary to migrate to ruff right now.

Motivation

Starting with ruff is simple. But enabling "ALL" rules in an existing application? That’s a challenge.

This project helps identify the minimal set of rules to disable temporarily, ensuring the CI remains green while allowing maintainers to iteratively fix their codebase at their own pace.

Installation

pip install ruffly-all

or

cargo install ruffly-all

Usage

Find a project you'd like to use ruff in, we'll be using pylint as an example[^1].

  1. Run it
cd pylint/
ruffly-all
  1. Get a minimal ignore list for currently failing linters on stdout.
[tool.ruff]
lint.select = [ "ALL" ]
lint.ignore = [
  "D203",    # incompatible to D211
  "D212",    # incompatible to D213
  "ERA",     # https://docs.astral.sh/ruff/rules/#eradicate-era
  "YTT",     # https://docs.astral.sh/ruff/rules/#flake8-2020-ytt
  "ANN",     # https://docs.astral.sh/ruff/rules/#flake8-annotations-ann
  "S",       # https://docs.astral.sh/ruff/rules/#flake8-bandit-s
  "BLE",     # https://docs.astral.sh/ruff/rules/#flake8-blind-except-ble
  "FBT",     # https://docs.astral.sh/ruff/rules/#flake8-boolean-trap-fbt
  "B",       # https://docs.astral.sh/ruff/rules/#flake8-bugbear-b
  "A",       # https://docs.astral.sh/ruff/rules/#flake8-builtins-a
  "COM",     # https://docs.astral.sh/ruff/rules/#flake8-commas-com
  "C4",      # https://docs.astral.sh/ruff/rules/#flake8-comprehensions-c4
  "DTZ",     # https://docs.astral.sh/ruff/rules/#flake8-datetimez-dtz
  "T10",     # https://docs.astral.sh/ruff/rules/#flake8-debugger-t10
  "EM",      # https://docs.astral.sh/ruff/rules/#flake8-errmsg-em
  "EXE",     # https://docs.astral.sh/ruff/rules/#flake8-executable-exe
  "FIX",     # https://docs.astral.sh/ruff/rules/#flake8-fixme-fix
  "ISC",     # https://docs.astral.sh/ruff/rules/#flake8-implicit-str-concat-isc
  "ICN",     # https://docs.astral.sh/ruff/rules/#flake8-import-conventions-icn
  "LOG",     # https://docs.astral.sh/ruff/rules/#flake8-logging-log
  "G",       # https://docs.astral.sh/ruff/rules/#flake8-logging-format-g
  "INP",     # https://docs.astral.sh/ruff/rules/#flake8-no-pep420-inp
  "PIE",     # https://docs.astral.sh/ruff/rules/#flake8-pie-pie
  "T20",     # https://docs.astral.sh/ruff/rules/#flake8-print-t20
  "PYI",     # https://docs.astral.sh/ruff/rules/#flake8-pyi-pyi
  "PT",      # https://docs.astral.sh/ruff/rules/#flake8-pytest-style-pt
  "Q",       # https://docs.astral.sh/ruff/rules/#flake8-quotes-q
  "RSE",     # https://docs.astral.sh/ruff/rules/#flake8-raise-rse
  "RET",     # https://docs.astral.sh/ruff/rules/#flake8-return-ret
  "SLF",     # https://docs.astral.sh/ruff/rules/#flake8-self-slf
  "SIM",     # https://docs.astral.sh/ruff/rules/#flake8-simplify-sim
  "TID",     # https://docs.astral.sh/ruff/rules/#flake8-tidy-imports-tid
  "TD",      # https://docs.astral.sh/ruff/rules/#flake8-todos-td
  "TC",      # https://docs.astral.sh/ruff/rules/#flake8-type-checking-tc
  "ARG",     # https://docs.astral.sh/ruff/rules/#flake8-unused-arguments-arg
  "PTH",     # https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
  "FLY",     # https://docs.astral.sh/ruff/rules/#flynt-fly
  "C90",     # https://docs.astral.sh/ruff/rules/#mccabe-c90
  "NPY",     # https://docs.astral.sh/ruff/rules/#numpy-specific-rules-npy
  "N",       # https://docs.astral.sh/ruff/rules/#pep8-naming-n
  "PERF",    # https://docs.astral.sh/ruff/rules/#perflint-perf
  "E",       # https://docs.astral.sh/ruff/rules/#error-e
  "W",       # https://docs.astral.sh/ruff/rules/#warning-w
  "D",       # https://docs.astral.sh/ruff/rules/#pydocstyle-d
  "F",       # https://docs.astral.sh/ruff/rules/#pyflakes-f
  "PGH",     # https://docs.astral.sh/ruff/rules/#pygrep-hooks-pgh
  "PLC",     # https://docs.astral.sh/ruff/rules/#convention-plc
  "PLE",     # https://docs.astral.sh/ruff/rules/#error-ple
  "PLR",     # https://docs.astral.sh/ruff/rules/#refactor-plr
  "PLW",     # https://docs.astral.sh/ruff/rules/#warning-plw
  "UP",      # https://docs.astral.sh/ruff/rules/#pyupgrade-up
  "FURB",    # https://docs.astral.sh/ruff/rules/#refurb-furb
  "RUF",     # https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf
  "TRY",     # https://docs.astral.sh/ruff/rules/#tryceratops-try
]
  1. Get a summary on stderr
This project has 11734 problems, which can be postponed by the above ruleset.
That's ruffly-all to migrate to ruff right now.
  1. Decide whether to fix the failures immediately or to add the above ignores for the moment.

The latter prevents the project to worsen and can be resolved in small steps once there is time.

[^1]: While this does look like the pylint project had a lot going on, keep in mind extensive parts of the repo are faulty python snippets necessary as test resources for pylints unittests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ruffly_all-0.6.1.tar.gz (49.4 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ruffly_all-0.6.1-py3-none-win_amd64.whl (205.4 kB view details)

Uploaded Python 3Windows x86-64

ruffly_all-0.6.1-py3-none-win32.whl (194.8 kB view details)

Uploaded Python 3Windows x86

ruffly_all-0.6.1-py3-none-musllinux_1_2_x86_64.whl (384.8 kB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

ruffly_all-0.6.1-py3-none-musllinux_1_2_i686.whl (395.4 kB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruffly_all-0.6.1-py3-none-musllinux_1_2_armv7l.whl (364.4 kB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruffly_all-0.6.1-py3-none-musllinux_1_2_aarch64.whl (372.7 kB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruffly_all-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (327.7 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ruffly_all-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (360.2 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruffly_all-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (421.6 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ppc64le

ruffly_all-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (341.8 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruffly_all-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (326.8 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruffly_all-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (315.6 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruffly_all-0.6.1-py3-none-macosx_11_0_arm64.whl (293.8 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file ruffly_all-0.6.1.tar.gz.

File metadata

  • Download URL: ruffly_all-0.6.1.tar.gz
  • Upload date:
  • Size: 49.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.12.1

File hashes

Hashes for ruffly_all-0.6.1.tar.gz
Algorithm Hash digest
SHA256 a0bf2fa567234e59009e608027919c261a709748725068434f7aa053d95de04b
MD5 5a7b79eefb0bc0eda1224c5da0509cde
BLAKE2b-256 239e8a488e1811411f1776bdf2caf9d916885328297b04ec0bd3bf2160708bfc

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-win_amd64.whl.

File metadata

  • Download URL: ruffly_all-0.6.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 205.4 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.12.1

File hashes

Hashes for ruffly_all-0.6.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3e2e1b0dc8b4bde84ec1f318d5611c6b61c51c871b80d653957836492352eff5
MD5 0c74d36209fa593d5d12387bed06fe7f
BLAKE2b-256 3ed84c32196a255c09d9121f83d3bb84f588aa06a3bd0a6d1cc6ca818713b8b4

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-win32.whl.

File metadata

  • Download URL: ruffly_all-0.6.1-py3-none-win32.whl
  • Upload date:
  • Size: 194.8 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.12.1

File hashes

Hashes for ruffly_all-0.6.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 9db72021197e90ddc97e9e0ca96e375d4479976a063b8d8b7b32e5dfbb67e028
MD5 82462e18d72096f1231decbc77e5a713
BLAKE2b-256 59b85988b74114880edff0f183216439bbfb01efdba471bd414fb12bf906076a

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 dc6c814251d3dc9e03805f35d56f3b196b2108fc2ea8fa7a7d54552c6355243c
MD5 c261dad544f739e766c91a372a6f4aa7
BLAKE2b-256 bf1ef2843fb9e7d6b18bf17c69ac8f3eb029fa991b0cb4248cf099f671864a18

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 383361fa77579201394617797e098b8153f85142729c8571a1d757893663c20c
MD5 749d16463f1f83b720979eed86270083
BLAKE2b-256 05a98a7624b1edb23cc2d9e6161cda566b15e54cd6b3ce6c00da226741b49a4b

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 880967d43eec3bbc4b1374a9a53793075c21e5de36efbc81311c9588e7dad81a
MD5 d4cda203f7e1ae39d97737971724a060
BLAKE2b-256 cf2efa0eb359c7f711ffb84fdca6e28466e9ec5a907e7f7a2483eb52bac44c69

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 3b009e2d9c79fd7aa013d786f02c94bc8b14afcda44508bd096f6f748cecb78f
MD5 30c3e57d2c1b4dd2bece97410596d6d7
BLAKE2b-256 8ba0fb0cb58b9fdb8978ccfde7855da24474c68af1858aa500490a7b8e8e18d7

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 280a846d51a900db28b5b47bdbd03ed5fc5a632f7975df22e3fc406762ab2c1c
MD5 0444e5a5b32a79ca87ef88ebfaa0c9dc
BLAKE2b-256 1fb5bc737d9627195155b66ea218dcb63dfaf94145fcb3980a65dc085545c9e4

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f35bc848b22b65b99428c37ef1b2157bf5aa5ff365638af8873d8c5ff1d5a7f9
MD5 f60efa64af42592a148521878b1693b3
BLAKE2b-256 5df3e735e53b9c75214d4a54ed38e8a4882a56a4694d7d9c9aa9152277248e5f

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7f5dd728ac74c5ea1d0b227981269c1633b57bb9a5055c5730ce6ab2604de2e2
MD5 e8685db97660c7bfb31433ce073599fc
BLAKE2b-256 4df7a0ce4dffc4375910225ce35efbdd6bd7ea1937e906e2896c42a4e233ddf4

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 6e40cef37cdc798b7adee07ccf1d15c9a6590d3051a9786f56502d80265f23fc
MD5 5e97877f212f495d9f464cd11a790d3e
BLAKE2b-256 01a8914ee2ae6a14b43d1717f453ea2fc6d5327211f7d1b624722a2018899402

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5558d498c4d54c9465f7e326ed23269c200ec0a3be3cb7e8b30ddae22234a511
MD5 945ebefd196ee471dc5109d7b3c1a3c0
BLAKE2b-256 392fe3f28cff25c4ee3a625ab5809b363bfc841234fe3c6bf22552860f57f661

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eee526b883b2edbf3131eeb260827998086501f0bc970eddb7aaa36298e4c8ce
MD5 33769d05067fbb2323d3c248407b98ad
BLAKE2b-256 d8ce37e87a302e6189837d2680ac038e56c21c7059a854050b4115ac91ff2fd1

See more details on using hashes here.

File details

Details for the file ruffly_all-0.6.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ruffly_all-0.6.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b11cd5a94c2387b0d27bc6cd0a781b0017d211f23c7894b87ffd52be4222a7e0
MD5 9a64daeab6569f8ecacc75b74daa4efa
BLAKE2b-256 2fef36f895e472bd671c7514fea8e4c8c7e7f75627b525ed4faed42ab3d7773a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page