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.0.tar.gz (49.3 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.0-py3-none-win_amd64.whl (205.3 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

ruffly_all-0.6.0-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.0-py3-none-musllinux_1_2_i686.whl (395.3 kB view details)

Uploaded Python 3musllinux: musl 1.2+ i686

ruffly_all-0.6.0-py3-none-musllinux_1_2_armv7l.whl (364.2 kB view details)

Uploaded Python 3musllinux: musl 1.2+ ARMv7l

ruffly_all-0.6.0-py3-none-musllinux_1_2_aarch64.whl (372.6 kB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

ruffly_all-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (327.6 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ruffly_all-0.6.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl (360.1 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ s390x

ruffly_all-0.6.0-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.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl (341.7 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ i686

ruffly_all-0.6.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (326.7 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARMv7l

ruffly_all-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (315.5 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ruffly_all-0.6.0-py3-none-macosx_11_0_arm64.whl (293.7 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ruffly_all-0.6.0.tar.gz
Algorithm Hash digest
SHA256 fd21a3d7339b3e6c215de675764023c407a575651d0d4bfefcf8c92c779c3fab
MD5 93fb05168e7306cb0bca890d384d71b7
BLAKE2b-256 d6e79317e5f816f45875125a669ba75a761e9d1dc13da267299af3438f9faae9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruffly_all-0.6.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 205.3 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.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a87aa1227684d451eb974a24061c220922a70b7c515d710f24d44c8fff9f528d
MD5 566e0ef2632bfde68457212be282584b
BLAKE2b-256 0fe7ec20dd1f3899b8964ff90c144bb41fafb8491e5c7048e1c5d2f05f351604

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ruffly_all-0.6.0-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.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 5c36d6c16e8cf5f0dcc6df09ba1188c123220bbc0c542176c1114501f5b42a74
MD5 bb84aee77826db124324ada5e3340ce5
BLAKE2b-256 5b3e0e30c102c68fa3a298f018b9525d8ee81ca6dab6c57c8a180cd7ddbdebf6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 68be531d35bf18c3081be0e0fc1b902238407b983718023104c9dcf57e81e833
MD5 23195f1fd1e0a9c8a7294ed00e465247
BLAKE2b-256 c8e9cdb972c67ae0d6077379b846731f13f17377991f7c2d9a582ee163db97a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8a27445f7dda1d734c7a621b2e6be0f4f29975b891d74c54cdf3e8490492331a
MD5 e1f984d620f0cc09d0ebe665a79848cc
BLAKE2b-256 502e5de3086853d079f9bc01f88d7dbbc8a3d4ecd12b024a71e18526e9a5bf94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 1576e2ace2ccad404be2eb3e7ea1cdc514ef5dbe4b878d91137e428df22e88c2
MD5 6001bfdf0d01cf48addbbe00cbc9d8b0
BLAKE2b-256 731aa31f0947e3fc5c28a0d066ee0cad17920760716278c17c549bf5c8bb6cc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7ab5946eb20d9a623b457ed858cd1d3fe5f9a2bdf715f9f2b2304a467be61069
MD5 f3143c9f0bc0321f70a50f8c31ee58b5
BLAKE2b-256 a54f06b58eb70c2027c25ac5369267a9db1df9980cdcab122228de232f0f022d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e924e665e58fe95b328d627c721c5895757a48653e8ff74bd434f89b2a2d2e6
MD5 783aa8deb50c2749e8f7d63f9fffa060
BLAKE2b-256 5f9d99d2b22accb64497b9d78a84f1898c4cd91f205cc73882fd67fb7948cc63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 974fa005c3f21620f9052c8d92834ee23e7550c6610ae673d8aa73a30a208c9c
MD5 aac51a71cfac21ad497e0830b69b89ee
BLAKE2b-256 8a102ffc25912b5c04a9aff8e20eda727be90a9f86e69367d62f70234b2b23e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 113aa48612d0857a3851f48a377fad29f634ee8a46805eda2a9e8a0c916c3d77
MD5 e9c07dd50fb9d490059e534c003f67b3
BLAKE2b-256 033070a7416abbdf9c1717c10e6a35cf80b0739da9d6bde50a4dbb358075d0a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ccba6b24a06d013b2c3eb95fbd933527326700e3d62d549ae2de7329f7255a78
MD5 d631feec18b39bf8eed3f9e4449ef19b
BLAKE2b-256 045d40109340df54b1b9d8763c5b6b464aa39728984932508a10ffeeecd8c222

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 18071c9dd7849cda8976a31452163ac3fc493eb5308bd55ce68f7d4dbdde5e90
MD5 6f89428e3b5ce1fbaa58a9c073b07c38
BLAKE2b-256 db88c4c9b036cee8a8c91a3dc34b6ecee0713b9acc0346d1817ca7231af9926b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b14abfe6522542224f5ba93cf62786c248482a32c2f73a5ac2c57f58171a2c98
MD5 3ed86b11e0e3f42d42de1e44f1225739
BLAKE2b-256 afd17b451e84862f1a6124fce6a9dd5db2ce1f34069949d3fa8dd71033cb18c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ruffly_all-0.6.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9c4e26931498d976d82beb5db35e003aaede5b02904d8f4262b2dd02ec97e9c7
MD5 5c12595df1306cb24c5535255dc4fd9e
BLAKE2b-256 7204a3f5fc7d7aff5ff8ae57de4ae4174a598cf71009559e69be955022e8f6d2

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