Come faccio a distinguere il codice derivato dal codice originale?

3

Sto lavorando a un progetto Python che estende le funzionalità di alcuni altri moduli python. Alcuni fanno parte della libreria Python standard e utilizzano principalmente il contratto di licenza PSF mentre alcuni sono forniti da terze parti e utilizzano principalmente licenze BSD. Tutti consentono la ridistribuzione del codice modificato con attribuzione.

Capisco che nella maggior parte dei casi ho bisogno di includere la licenza nel codice sorgente o in qualche posto dove sia facilmente referenziata. La mia domanda riguarda il modo migliore per separare il codice modificato dal resto del progetto poiché il resto del progetto non è correlato e porterà una licenza e un copyright diversi.

Per quanto posso dire, ci sono due modi per farlo, in linea o separando il codice derivato nei propri moduli. In-line può essere fatto attraverso i commenti al codice o all'interno delle stringhe doc della classe o della funzione. L'altra opzione crea un numero di moduli piccoli, ma tecnicamente non necessari, ma renderebbe più semplice distinguere il codice derivato dal resto del progetto e deprecarli se i moduli in seguito incorporassero le funzionalità mancanti.

Queste sono entrambe opzioni valide e c'è un modo preferito o più Pythonic?

    
posta aviso 02.07.2015 - 22:34
fonte

1 risposta

1

In generale, non dovresti modificare i file del codice sorgente del codice di terze parti a meno che non siano il tipo di modifiche per le quali avrebbe senso restituirle a monte (ad esempio correzioni di bug).

Ovviamente, ci sono situazioni eccezionali in cui potresti voler andare avanti e modificare comunque quei file, ma di solito vuoi evitare di bifrare il progetto altrimenti ne soffrirai quando dovrai unirmi a nuovi aggiornamenti da upstream.

Crea le tue estensioni senza modificare effettivamente il loro codice e elimini questa intera domanda.

    
risposta data 03.07.2015 - 10:15
fonte

Leggi altre domande sui tag