Describe the bug A clear and concise description of what the bug is.
To Reproduce Steps to reproduce the behavior:
--check Tests/test_file_libtiff.py$ black --version
black, version 19.10b1.dev141+g820f387
$ black --check Tests/test_file_libtiff.py
error: cannot format Tests/test_file_libtiff.py: (-1, 8)
Oh no! 💥 💔 💥
1 file would fail to reformat.
Expected behavior A clear and concise description of what you expected to happen.
File formats.
Environment (please complete the following information):
Does this bug also happen on master? To answer this, you have two options:
Yes, see above.
Works with last release (the codebase is already formatted with that version):
$ black --version
black, version 19.10b0
$ black --check Tests/test_file_libtiff.py
All done! ✨ 🍰 ✨
1 file would be left unchanged.
Additional context Add any other context about the problem here.
Looks like it's this part:
assert (
c_float(val[0][0] / val[0][1]).value
== c_float(value[0][0] / value[0][1]).value
), ("%s didn't roundtrip" % tag)
(We're about to drop Python 3.5 and adopt f-strings, it's replacement is handled fine:
assert (
c_float(val[0][0] / val[0][1]).value
== c_float(value[0][0] / value[0][1]).value
), f"{tag} didn't roundtrip"
)
git bisect -> 544ea9c217cad9459d7b60665db787e94b52f93d in "Improve String Handling" (#1132)
Possibly duplicate of https://github.com/psf/black/issues/1597?
Possibly duplicate of #1597?
Probably, but I don't trust myself to accurately know due to lack of familiarity with Black's formatting code so I'll someone else decide that.
FYI: Jelle created a PR (#1594) where in verbose mode, Black prints out the trackback on failure so it's a bit more clear that there was an ~IndexError~ KeyError 🙂.
I'm pretty sure this is the same underlying issue as #1597, but when we fix it we should make sure both cases are covered. Closing this one as a duplicate though.
FYI: Jelle created a PR (#1594) where in verbose mode, Black prints out the trackback on failure so it's a bit more clear that there was an
IndexError🙂.
That's useful!
Same traceback:
Traceback (most recent call last):
File "/Users/hugo/github/black/src/black/__init__.py", line 657, in reformat_one
if changed is not Changed.CACHED and format_file_in_place(
File "/Users/hugo/github/black/src/black/__init__.py", line 800, in format_file_in_place
dst_contents = format_file_contents(src_contents, fast=fast, mode=mode)
File "/Users/hugo/github/black/src/black/__init__.py", line 921, in format_file_contents
dst_contents = format_str(src_contents, mode=mode)
File "/Users/hugo/github/black/src/black/__init__.py", line 986, in format_str
for line in transform_line(
File "/Users/hugo/github/black/src/black/__init__.py", line 2740, in transform_line
result.extend(
File "/Users/hugo/github/black/src/black/__init__.py", line 2734, in transform_line
for transformed_line in transform(line, features):
File "/Users/hugo/github/black/src/black/__init__.py", line 2843, in __call__
for line_result in self.do_transform(line, string_idx):
File "/Users/hugo/github/black/src/black/__init__.py", line 3363, in do_transform
append_leaves(new_line, line, LL[: string_idx - 1])
File "/Users/hugo/github/black/src/black/__init__.py", line 4649, in append_leaves
new_line.append(new_leaf)
File "/Users/hugo/github/black/src/black/__init__.py", line 1434, in append
self.bracket_tracker.mark(leaf)
File "/Users/hugo/github/black/src/black/__init__.py", line 1300, in mark
opening_bracket = self.bracket_match.pop((self.depth, leaf.type))
KeyError: (-1, 8)
This file now formats without errors with master.