tarfile.TarFile.next() adds an unnecessary traceback frame when reraising exceptions
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 77.2k
- Fork
- 35.9k
- Chỉ số merge pull request
- Chỉ số pull request đang chờ
Mô tả
description:
https://gist.github.com/devdanzin/f8af359770ff200eac8474de5644be82
tarfile.TarFile.next() currently reraises non-zlib exceptions with raise e
inside its generic exception handler:
except Exception as e:
try:
import zlib
if isinstance(e, zlib.error):
raise ReadError(f'zlib error: {e}') from None
else:
raise e
except ImportError:
raise e
Using raise e adds an extra traceback frame at the re-raise site. A bare
raise would keep the traceback cleaner while preserving the original exception
and its traceback.
CPython versions tested on:
3.14, CPython main branch
Operating systems tested on:
Windows
Linked PRs
- gh-149761
- gh-157257
Hướng dẫn đóng góp
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.
Hướng nghiên cứu
Tìm TarFile.next() trong mô-đun tarfile và kiểm tra trình xử lý ngoại lệ tổng quát được nêu trong issue. Xác nhận sự khác biệt về traceback được mô tả trong gist được liên kết, sau đó chạy các bài kiểm thử tarfile sau khi thay đổi cách xử lý ngoại lệ để xác minh rằng các ngoại lệ không phải zlib vẫn giữ traceback ban đầu của chúng và các lỗi zlib không thay đổi.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- backend
- Loại issue
- Lỗi
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 35/100