ZipFile.writestr doesn't behave like Path.write_*
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ả
Feature or enhancement
Proposal:
Given that ZipPath doesn't provide a write_text or write_bytes, I'm trying to use ZipFile.writestr and noticed that when the data you're trying to write isn't the right type it still stores an empty entry. I didn't expect side effects when it failed this fundamentally to get the data.
import zipfile
with zipfile.ZipFile("foo.zip", "w") as z:
z.writestr("x", ())
print(z.namelist()) # -> "x"
Notably, Path.write_text behaves the way I'd expect -- it has to construct a memoryview successfully first before opening the file.
from pathlib import Path
Path("x").write_bytes(()) # -> neither creates nor truncates
@jaraco I assume ZipPath not supporting writes is intentional?
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Links to previous discussion of this feature:
No response
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
Issue không nêu tệp triển khai hay bài kiểm thử nào. Hãy bắt đầu bằng cách tái hiện ví dụ về zipfile.ZipFile.writestr và so sánh với pathlib.Path.write_bytes đối với dữ liệu không hợp lệ; kiểm tra phần triển khai và các bài kiểm thử liên quan trong thư viện chuẩn. Hoàn thành nghĩa là dữ liệu đầu vào không hợp lệ gây ra lỗi mà không tạo hoặc cắt ngắn mục trong archive.
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ó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100