feat(deps)!: make all de/serialization libraries optional
@Simoh23999 ci sta già lavorando.
Dal 30/7/2026.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia controllando le dichiarazioni delle dipendenze e gli import di serializzazione a runtime, quindi confronta i punti di ingresso proposti _opt/serialization.py e models/bom.py. Verifica che l’uso limitato alla validazione funzioni senza dipendenze di serializzazione, mentre la serializzazione segnali chiaramente la dipendenza opzionale mancante; testa sia i casi con la dipendenza installata sia quelli senza dipendenza.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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):
...
- Lingua principale
- Python
- Stelle
- 117
- Fork
- 67
- Merge medio
- 21h 9m
- PR unite (30g)
- 3
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di CycloneDX/cyclonedx-python-lib
-
[PERF] Quadratic (O(N^2)) serialization time for large BOMs — `Bom.validate()` → `register_dependency()` linear scanForse già presa @inspired-geek l’ha presa 111 giorni fa. Apertaperformance
Difficoltà 3/5 1-2 giorni Idoneità per principianti 36/100
CycloneDX/cyclonedx-python-lib#1006 · 2 commenti ·
-
tests: test all model enumsForse di nuovo libera @jkowalleck l’ha presa 127 giorni fa e non c’è nessuna pull request aperta. ApertaQA
CycloneDX/cyclonedx-python-lib#991 · 1 assegnatario ·
-
feat: Add support for Component signatureForse già presa @wiebe-vandendriessche l’ha presa 126 giorni fa. Apertaenhancement help wanted schema 1.4
Difficoltà 3/5 1-2 giorni Idoneità per principianti 58/100
CycloneDX/cyclonedx-python-lib#978 · 4 commenti ·
-
chore: have coverage uploaded consitentlyForse di nuovo libera @jkowalleck l’ha presa 173 giorni fa e non c’è nessuna pull request aperta. Apertachore
CycloneDX/cyclonedx-python-lib#966 · 1 assegnatario ·
-
chore: use dependabot cooldown periodForse di nuovo libera @jkowalleck l’ha presa 176 giorni fa e non c’è nessuna pull request aperta. Apertachore
CycloneDX/cyclonedx-python-lib#965 · 1 commento · 1 assegnatario ·
Tutte le issue di CycloneDX/cyclonedx-python-lib
Issue simili
-
bug difficulty:2 good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
MakazhanAlpamys/Soup#1865 ·
I maintainer di solito rispondono entro 1 giorno
-
area: agents area: docs good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
openapi/gknowledge#23 ·
-
useless-suppression reported for deprecated-* messages that should be exemptForse già presa @adityasinha-ghub l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
pylint-dev/pylint#11656 ·
I maintainer di solito rispondono entro 1 giorno
-
area:provisioning effort:S priority:P2 provider:local-libvirt risk:daytime-only status:in-progress type:bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
randomparity/kdive#3203 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
get() for StrEnumForse già presa @FeJo5952 l’ha presa oggi. Apertagood first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
collective/icalendar#1921 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno