Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Work around stability errors due to optional trailing commas #2126

Merged
merged 2 commits into from Apr 25, 2021

Commits on Apr 25, 2021

  1. Work around stability errors due to optional trailing commas

    Optional trailing commas put by Black become magic trailing commas on another
    pass of the tool.  Since they are influencing formatting around optional
    parentheses, on rare occasions the tool changes its mind in terms of putting
    parentheses or not.
    
    Ideally this would never be the case but sadly the decision to put optional
    parentheses or not (which looks at pre-existing "magic" trailing commas) is
    happening around the same time as the decision to put an optional trailing
    comma.  Untangling the two proved to be impractically difficult.
    
    This shameful workaround uses the fact that the formatting instability
    introduced by magic trailing commas is deterministic: if the optional trailing
    comma becoming a pre-existing "magic" trailing comma changes formatting, the
    second pass becomes stable since there is no variable factor anymore on pass 3,
    4, and so on.
    
    For most files, this will introduce no performance penalty since `--safe` is
    already re-formatting everything twice to ensure formatting stability.  We're
    using this result and if all's good, the behavior is equivalent.  If there is
    a difference, we treat the second result as the binding one, and check its
    sanity again.
    ambv committed Apr 25, 2021
    Copy the full SHA
    4d91cfc View commit details
    Browse the repository at this point in the history
  2. Update changelog

    ambv committed Apr 25, 2021
    Copy the full SHA
    9281564 View commit details
    Browse the repository at this point in the history