Modifica delle librerie Python

3

Utilizzo Python da un po 'di tempo e ora voglio modificare una libreria Python per adattarla alle mie esigenze.

Ci sono due modi per farlo, per quanto ne so. Uno è quello di modificare il codice sorgente stesso. Altro è scrivere un wrapper attorno alla libreria originale.

Ma non capisco quale sia meglio, facendo ciò che è una buona fonte di editing o scrivendo un wrapper? E in quale situazione si preferisce l'altro?

    
posta Harwee 05.06.2016 - 12:26
fonte

1 risposta

6

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:

    1. Crea un fork su GitHub se la libreria è ospitata lì oppure contatta l'autore della libreria se è ospitata da qualche altra parte.

    2. Apporta la modifica.

    3. 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.

    
risposta data 05.06.2016 - 13:11
fonte

Leggi altre domande sui tag