Implementation classes named in table properties are imported and instantiated without a type check
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
- 68/100
Hướng nghiên cứu
Bắt đầu với _import_file_io trong pyiceberg/io/init.py, _import_location_provider trong pyiceberg/table/locations.py và _import_retry_strategy trong pyiceberg/io/pyarrow.py. Theo dõi cách từng thuộc tính được phân giải và gọi, sau đó xác minh rằng chỉ các lớp con của FileIO, LocationProvider hoặc S3RetryStrategy được chấp nhận trước khi khởi tạo; hoàn tất nghĩa là cả ba đường dẫn đều từ chối các lớp có thể import không liên quan.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Three properties name a class that PyIceberg imports and calls:
| Property | Resolved by | Called as |
|---|---|---|
py-io-impl |
_import_file_io (pyiceberg/io/__init__.py) |
class_(properties) |
write.py-location-provider.impl |
_import_location_provider (pyiceberg/table/locations.py) |
class_(table_location, table_properties) |
s3.retry-strategy-impl |
_import_retry_strategy (pyiceberg/io/pyarrow.py) |
class_() |
Each follows the same pattern:
module = importlib.import_module(module_name)
class_ = getattr(module, class_name)
return class_(...)
None of the three checks that the resolved object is the type it is about to be used as — there is no issubclass against FileIO, LocationProvider, or S3RetryStrategy. Any importable dotted name resolves and is called, with the property map passed as an argument in two of the three cases.
All three properties are read from the merged table property map, so their values can originate in a table's metadata rather than in the operator's catalog configuration.
Issue investigation generated via claude, reviewed by Sung, Kevin, Fokko.
- Ngôn ngữ chính
- Python
- Star
- 1.1k
- Fork
- 589
- Merge trung bình
- 2 ngày 4 giờ
- Pull request đã merge (30 ngày)
- 72
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
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 apache/iceberg-python
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/iceberg-python#3996 ·
-
Deletion vector bitmap count is read from the blob and used as a loop bound without validation Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
apache/iceberg-python#3979 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/iceberg-python#3885 ·
-
[Bug] PyArrowFileIO fails to propagate s3.ssl.ca-cert to pyarrow.fs.S3FileSystem tls_ca_file_path Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
apache/iceberg-python#3866 · 1 bình luận ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
apache/iceberg-python#3836 · 1 bình luận ·
Tất cả issue của apache/iceberg-python
Issue tương tự
-
triage/confirmed
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
agentscope-ai/agentscope#2775 ·
-
comp/desktop P3 type/bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
NousResearch/hermes-agent#118866 ·
-
bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
apache/cloudstack#14222 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100