• Beliskner64@fediverser.communick.devB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Question: Black has Darker for formatting just the code in a diff. Does Ruff have something similar? I want to start using it in my CI pipelines, but I don’t too much noise when changing just a small part of a large module.

    • alexisprince@fediverser.communick.devB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Genuine question, do you have a reason for not just formatting the entire codebase in a single commit and adding that commit to the a .git-blame-ignore-revs file for maintaining a still useful ability to blame through your history?

      • its_a_gibibyte@fediverser.communick.devB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        Anyone in a decent size company that wants to start improving their code formatting without going through the steps to get permission to change “everyone else’s code”.

        Similarly, it bothers me that Black doesn’t support range formatting (Darker is an independent project). They’ve basically told everyone to format the whole file or leave.

        • ErikBjare@fediverser.communick.devB
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          They’ve basically told everyone to format the whole file or leave.

          Which is totally understandable, if you know how Black works. The Darker authors themselves cite “good reasons” why black doesn’t in their README.

      • Beliskner64@fediverser.communick.devB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        There are several reasons:

        1. As many people are working on the same codebase simultaneously, reformatting the whole thing will create many conflicts
        2. There are still some places where Black’s formatting in undesired (especially in DS/ML code where you may find data structures formatted as a matrix) and we’d want to exclude those either via configuration, or with the # fmt: off/on comment directives, but I’ll only see those when I review them in a PR. If I reformat the entire project in one commit it will be harder to spot.
        3. As Black is evolving so may the formatting, or maybe we’ll change some default configuration in the future (like string normalization) and then I’d have to reformat the whole thing again.
          • Beliskner64@fediverser.communick.devB
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            Works, yes. But I’m talking about formatting that just looks wrong with black. Try format something like a long enough numpy matrix, pandas dataframe, or just a list of lists, and you’ll see how black just makes things unreadable.