feat(deps)!: make all de/serialization libraries optional
@Simoh23999 y travaille déjà.
Depuis le 30/7/2026.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
Piste de recherche
Commencez par vérifier les déclarations de dépendances et les imports de sérialisation à l’exécution, puis comparez les points d’entrée proposés _opt/serialization.py et models/bom.py. Vérifiez que l’utilisation limitée à la validation fonctionne sans dépendances de sérialisation, tandis que la sérialisation signale clairement la dépendance optionnelle manquante ; testez les cas où la dépendance est installée et ceux où elle est absente.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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):
...
- Langage dominant
- Python
- Étoiles
- 117
- Forks
- 67
- Merge moyen
- 8 min
- PR mergées (30 j)
- 1
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de CycloneDX/cyclonedx-python-lib
-
[PERF] Quadratic (O(N^2)) serialization time for large BOMs — `Bom.validate()` → `register_dependency()` linear scanPeut-être pris @inspired-geek l’a pris il y a 121 jours. Ouverteperformance
Difficulté 3/5 1-2 jours Accessibilité débutants 36/100
CycloneDX/cyclonedx-python-lib#1006 · 2 commentaires ·
-
tests: test all model enumsPeut-être à nouveau libre @jkowalleck l’a pris il y a 136 jours, et aucune pull request n’est ouverte. OuverteQA
CycloneDX/cyclonedx-python-lib#991 · 1 personne assignée ·
-
feat: Add support for Component signaturePeut-être pris @wiebe-vandendriessche l’a pris il y a 135 jours. Ouverteenhancement help wanted schema 1.4
Difficulté 3/5 1-2 jours Accessibilité débutants 58/100
CycloneDX/cyclonedx-python-lib#978 · 4 commentaires ·
-
chore: have coverage uploaded consitentlyPeut-être à nouveau libre @jkowalleck l’a pris il y a 183 jours, et aucune pull request n’est ouverte. Ouvertechore
CycloneDX/cyclonedx-python-lib#966 · 1 personne assignée ·
-
chore: use dependabot cooldown periodPeut-être à nouveau libre @jkowalleck l’a pris il y a 185 jours, et aucune pull request n’est ouverte. Ouvertechore
CycloneDX/cyclonedx-python-lib#965 · 1 commentaire · 1 personne assignée ·
Toutes les issues de CycloneDX/cyclonedx-python-lib
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
gramaziokohler/compas_timber#870 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
autowarefoundation/autoware_carla_scenario#500 ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue priority: low size: XS testing
Difficulté 1/5 1-3 heures Accessibilité débutants 86/100
cubrid-lab/cubrid-mcp-server#385 ·
Les mainteneurs répondent en général sous 1 jour
-
good first issue priority: low size: S testing
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
cubrid-lab/cubrid-cookbook-python#447 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100