-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Open
Labels
T: bugSomething isn't workingSomething isn't working
Description
Describe the bug
Black doesn't count line length correctly in case of khmer characters. They fit screen-wise (kind of) but character length goes beyond limit.
To Reproduce
For example, take this code:
@pytest.mark.parametrize(
"text, expected_language",
[
(
(
"សម្រស់ទាវ២០២២ មិនធម្មតា ឥឡូវកំពុងរកតួ នេនទុំ និងពេជ្រ"
" ប្រញាប់ឡើងទាន់គេមានបញ្ហាត្រូវថតឡើងវិញ "
),
"km",
), # Khmer
],
)
def test_detect_language(text, expected_language):
assert detect_lang_of_text(text) == expected_language
And run it with these arguments:
$ black file.py --target-version py312 --line-length 100 --diff
The resulting error is:
@@ -1,13 +1,10 @@
@pytest.mark.parametrize(
"text, expected_language",
[
(
- (
- "សម្រស់ទាវ២០២២ មិនធម្មតា ឥឡូវកំពុងរកតួ នេនទុំ និងពេជ្រ"
- " ប្រញាប់ឡើងទាន់គេមានបញ្ហាត្រូវថតឡើងវិញ "
- ),
+ ("សម្រស់ទាវ២០២២ មិនធម្មតា ឥឡូវកំពុងរកតួ នេនទុំ និងពេជ្រ" " ប្រញាប់ឡើងទាន់គេមានបញ្ហាត្រូវថតឡើងវិញ "),
"km",
), # Khmer
],
)
def test_detect_language(text, expected_language):
would reformat file.py
All done! ✨ 🍰 ✨
1 file would be reformatted.
Expected behavior
No changes because line won't fit.
Environment
- Black's version:
black, 24.2.0 (compiled: yes)
Python (CPython) 3.12.1
- OS and Python version: Linux/Python 3.12.1
Additional context
The line is split correctly before changes but when joined like black
does (even when we remove " "
and parens) then it doesn't fit inside 100 characters.
Metadata
Metadata
Assignees
Labels
T: bugSomething isn't workingSomething isn't working