Writing and Linting Python at Scale

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • ruff

    An extremely fast Python linter and code formatter, written in Rust.

  • I'm happy with Ruff[0], it's very fast.

    [0] -- https://github.com/astral-sh/ruff

  • logzy

  • There's a lot of neat Python research coming from Facebook.

    libcst (which Fixit uses) is super cool - I use it in https://gitlab.com/harford/logzy

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • refex

    A syntactically aware search-and-replace tool for Python.

  • As someone who worked on a similar tool (https://github.com/ssbr/refex/tree/main/refex/fix/fixers, I did a bunch of the work to prep this for open-sourcing, though I think all my contributions are hidden behind the "Google-internal" anonymization), having auto-applied or auto-appliable fixers like this is super useful.

    They can be auto-applied by post-commit (e.g. a generic `git fixcommit` style command that runs all the relevant lint tools and fixes them in the working copy, letting you review before push), or applied during code review (automatic comments with a "click here to apply fix" interface), both of which are nice.

    Plus the same underlying tooling can be used to write more complex one-off fixes that may be used for migrations or cleanups.

  • actions-preview.nvim

    Fully customizable previewer for LSP code actions.

  • Adding to what other commenters said, ESLint also works like this.

    However in an IDE setting it's not exactly "auto"; you have to click the light bulb and accept the fix (idk about VSCode, but in Neovim you can even get a preview of the diff [1]). This is what I'm working on a Fixit PR for right now.

    [1] https://github.com/aznhe21/actions-preview.nvim

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts