Invalid --chunks/--shards arguments to b2nd-to-zarr deletes destination with --force
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ó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 68/100
Hướng nghiên cứu
Bắt đầu bằng cách xác định phần triển khai của lệnh b2nd-to-zarr và lần theo vị trí lệnh này xóa đích bằng --force so với lời gọi đến zarr.create_array. Tái hiện lỗi bằng các lệnh shell trong issue, bao gồm --chunks 30 --shards 50 --force. Công việc được hoàn tất khi các đối số không hợp lệ không còn khiến đích hiện có biến mất khi quá trình chuyển đổi thất bại.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Describe the bug
If a user creates a .zarr file using b2nd-to-zarr, then subsequently calls b2nd-to-zarr again with arguments to --chunks and --shards that are invalid, meaning shards % chunks != 0, then b2nd-to-zarr will call shutil.rmtree(dst_path) first and then call zarr.create_array which will fail. I think ideally the converter should throw an error before reaching zarr.create_array about invalid arguments to --chunks and --shards.
To Reproduce
Steps to reproduce the behavior:
Shell commands:
python -c "import blosc2, numpy as np; blosc2.asarray(np.arange(1000), urlpath='data.b2nd', mode='w')"
b2nd-to-zarr data.b2nd good.zarr -q && ls good.zarr
b2nd-to-zarr data.b2nd good.zarr --chunks 30 --shards 50 --force
Output:
Error: Chunk edge length 50 in dimension 0 is not divisible by the shard's inner chunk size 30.
Then
ls good.zarr
produces
ls: good.zarr: No such file or directory
Expected behavior
good.zarr should still exist even if the converter fails
Desktop:
- OS: Mac OS Tahoe
- Version 26.7
Additional context
I think one additional option besides throwing an earlier error message could be writing to a temporary path and then renaming it after success
- Ngôn ngữ chính
- Python
- Star
- 211
- Fork
- 66
- Merge trung bình
- 2 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 15
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc 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.
Issue khác của Blosc/python-blosc2
-
documentation sustain-2026
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Blosc/python-blosc2#720 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
sustain-2026
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Blosc/python-blosc2#717 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation sustain-2026
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
Blosc/python-blosc2#714 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation sustain-2026
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Blosc/python-blosc2#710 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation sustain-2026
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 70/100
Blosc/python-blosc2#722 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của Blosc/python-blosc2
Issue tương tự
-
area/install reliability
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
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 83/100
FluidNumerics/fluid-walk-blocker#191 ·
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 62/100
TransformerLensOrg/TransformerLens#1868 ·
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 76/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
climate-analytics-lab/jax-gcm#1057 ·
Maintainer thường phản hồi trong vòng 1 ngày