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):
...
when using this library for validation, i dont need to have the de/serialization dependencies installed.
goal
make all de/serialization libraries optional
solution
possible implementation (pseudo)