CycloneDX / CycloneDX/cyclonedx-python-lib

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

オープン
#979 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
breaking change dependencies
主要言語
Python
スター
116
フォーク
67
平均マージ
8日 2時間
マージ済み PR(30日)
2

説明

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)

```py
# 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"')
```

```py
# file: models/bom.py

from .._opt.serialization import Serializer

class Bom(Serializer):
...

```

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。