Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

feat(deps)!: make all de/serialization libraries optional

Đang mở
#979 2 bình luận 0 reaction 0 người được giao Xem trên GitHub

@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
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Ít trao đổi
Công nghệ
python
Lĩnh vực
backend

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ả

breaking change dependencies

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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của CycloneDX/cyclonedx-python-lib

Tất cả issue của CycloneDX/cyclonedx-python-lib

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.