Dipende principalmente da quanto profondi sono i tuoi cambiamenti. I wrapper possono comportare un comportamento aggiuntivo, ma raramente possono cambiare quello esistente. Ad esempio, se una libreria di destinazione scrive alcuni dati in un file e si desidera, invece, inviare questi dati a un database, a meno che la libreria non sia stata progettata per consentire ciò, non sarà possibile modificare il comportamento solo con un wrapper .
-
Se le modifiche sono superficiali e additive, usa un wrapper. Potresti aver bisogno di un wrapper in ogni caso se vuoi essere in grado di spostarti in una libreria diversa in un secondo momento senza dover modificare gran parte della tua applicazione.
-
Se le modifiche sono profonde e sostanziali:
-
Crea un fork su GitHub se la libreria è ospitata lì oppure contatta l'autore della libreria se è ospitata da qualche altra parte.
-
Apporta la modifica.
-
Condividi la modifica con l'autore e la community: se avevi bisogno di un comportamento diverso, ci sono possibilità che anche altre persone ne abbiano bisogno.
Quando si modifica una libreria esistente, se l'autore originale ritiene che le modifiche non debbano essere unite e debbano rimanere come fork, assicurarsi di creare il proprio pacchetto pip. Ciò non solo semplifica la distribuzione di questa libreria per te, ma rende anche possibile che altre persone utilizzino la tua forcella al posto della libreria originale se hanno bisogno del comportamento modificato.