Indentation characters of the original code are not preserved
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 72/100
Hướng nghiên cứu
Bắt đầu với _do_add_formatted_docstring và _do_add_unformatted_docstring, sau đó kiểm tra _do_format_code và việc sử dụng tokenize.untokenize của nó. Chạy reproducer được cung cấp, có thụt lề bằng tab, với docformatter và xác minh rằng các tab bên trong docstring và trên các dòng tiếp tục của mã vẫn là tab, đồng thời việc định dạng vẫn hoạt động.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
docformatter unnecessarily replaces tab characters with spaces. When a file
uses tabs, running docformatter on it changes indentation characters both
inside docstrings and in code outside the docstring.
Reproducer
def some_function(
a_parameter
):
"""Important documentation.
with an indented item
"""
...
$ docformatter file.py
--- before/file.py
+++ after/file.py
@@ -1,8 +1,8 @@
def some_function(
- a_parameter
+ a_parameter
):
"""Important documentation.
- with an indented item
- """
+ with an indented item
+ """
...
Cause
Two independent code paths substitute spaces for the original indentation
characters:
-
_do_add_formatted_docstringand_do_add_unformatted_docstringbuild
the indent for the docstring's internal lines as" " * token.start[1],
based on the docstring's opening line. When the opening line is indented with
a tab, each tab inside the docstring is replaced by a single space. -
_do_format_coderuns the whole file throughtokenize.untokenize,
which reconstructs inter-token whitespace as" " * col_offset. This means
that tabs on continuation lines are also replaced by a single space.
- Ngôn ngữ chính
- Python
- Star
- 599
- Fork
- 98
- Merge trung bình
- 1 ngày 7 giờ
- Pull request đã merge (30 ngày)
- 17
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của PyCQA/docformatter
-
docformatter fix does not consider parameters for added newlinesCó thể đã có người làm @AtharvRG đã nhận 6 ngày trước. Đang mởfresh
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
PyCQA/docformatter#408 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
BUG: Inconsistent behavior between `docformatter` and `black`Có thể đã có người làm @AtharvRG đã nhận 6 ngày trước. Đang mởfresh
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
PyCQA/docformatter#399 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
1.7.8 crashes with a tokenize ValueError on a multi-line f-string inside parenthesesCó thể làm lại được @adityaanikam đã nhận 87 ngày trước và không có pull request nào đang mở. Đang mởC: convention P: bug U: high
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 74/100
PyCQA/docformatter#367 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
1.7.8 rewrites the contents of a non-docstring triple-quoted string, silently changing its valueĐang mởC: convention P: bug U: high
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 72/100
PyCQA/docformatter#366 · 1 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
C: stakeholder P: enhancement U: low
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 65/100
PyCQA/docformatter#346 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của PyCQA/docformatter
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
FinanceFlash/unvibecode#577 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
area/test type/bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Clodmony/starship-coop#70 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 77/100
punitarani/fli#270 ·
-
🐛 Bug 🔔 Pending processing
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 67/100
jumpserver/jumpserver#17980 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
community enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
Maintainer thường phản hồi trong vòng 1 ngày