feat(deps)!: make all de/serialization libraries optional
@Simoh23999 đang làm issue này rồi.
Từ ngày 30/7/2026.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
Bắt đầu bằng cách kiểm tra các khai báo dependency và các import serialization tại runtime, sau đó so sánh các entry point được đề xuất là _opt/serialization.py và models/bom.py. Xác minh rằng việc chỉ sử dụng validation hoạt động mà không cần các dependency serialization, trong khi serialization báo rõ dependency tùy chọn còn thiếu; kiểm thử cả trường hợp dependency đã được cài đặt và trường hợp dependency vắng mặt.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
when using this library for validation, i dont need to have the de/serialization dependencies installed.
goal
make all de/serialization libraries optional
solution
- make de/serialization dependnecies optional, and installable in an extra called "de/serialization" orsomething
- have a private module that tries to load optional de/serialization libs, and if this fails, then provide stubs.
- runtime shall not use any de/serialization dependencies directly, but use the own optionally loaded ones (see above)
possible implementation (pseudo)
# file: _opt/serialization.py
__all__ = ['Serializer']
try:
from serializaers import Serializer
except:
# stubs
class Serializer:
def to_json() -> Never:
raise Error('missing serializer, install optional dependnecy "serializaers"')
def from_json() -> Never:
raise Error('missing serializer, install optional dependnecy "serializaers"')
# file: models/bom.py
from .._opt.serialization import Serializer
class Bom(Serializer):
...
- Ngôn ngữ chính
- Python
- Star
- 117
- Fork
- 67
- Merge trung bình
- 21 giờ 9 phút
- Pull request đã merge (30 ngày)
- 3
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- 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 CycloneDX/cyclonedx-python-lib
-
[PERF] Quadratic (O(N^2)) serialization time for large BOMs — `Bom.validate()` → `register_dependency()` linear scanCó thể đã có người làm @inspired-geek đã nhận 111 ngày trước. Đang mởperformance
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 36/100
CycloneDX/cyclonedx-python-lib#1006 · 2 bình luận ·
-
tests: test all model enumsCó thể làm lại được @jkowalleck đã nhận 126 ngày trước và không có pull request nào đang mở. Đang mởQA
CycloneDX/cyclonedx-python-lib#991 · 1 người được giao ·
-
feat: Add support for Component signatureCó thể đã có người làm @wiebe-vandendriessche đã nhận 125 ngày trước. Đang mởenhancement help wanted schema 1.4
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 58/100
CycloneDX/cyclonedx-python-lib#978 · 4 bình luận ·
-
chore: have coverage uploaded consitentlyCó thể làm lại được @jkowalleck đã nhận 173 ngày trước và không có pull request nào đang mở. Đang mởchore
CycloneDX/cyclonedx-python-lib#966 · 1 người được giao ·
-
chore: use dependabot cooldown periodCó thể làm lại được @jkowalleck đã nhận 175 ngày trước và không có pull request nào đang mở. Đang mởchore
CycloneDX/cyclonedx-python-lib#965 · 1 bình luận · 1 người được giao ·
Tất cả issue của CycloneDX/cyclonedx-python-lib
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 87/100
adri0/scadustats#128 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
`TIMESTAMP`, `TIMESTAMP_NTZ`, `TINYINT` and the other `TypeDecorator`s don't declare `python_type`Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
RPBCĐang mởawaiting policy acceptance precheck-passed
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
Bioconductor/BiocContributions#240 · 1 bình luận ·
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue launch
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
FlologixAI/etchwork#4 ·