Diciamo che devo scrivere diverse librerie di piccole e medie dimensioni per la mia azienda.scrivere librerie python: struttura, denominazione e importazione best practice
Ha senso, in modo divinatorio, di utilizzare il metodo Java ed il prefisso tutti con un pacchetto comune di alto livello (ahem, modulo) come realizzare la seguente struttura:
mycompany.mylibrary1.moduleA
mycompany.mylibrary1.moduleB.moduleD
mycompany.mylibrary2.moduleC
o è meglio andare solo per:
mylibrary1.moduleA
mylibrary1.moduleB.moduleD
mylibrary2.moduleC
vedo che la maggior parte delle volte il 2 ° approccio è utilizzato, ma ero alla ricerca di una conferma (o non) che è la strada da percorrere.
io non ho trovato nulla a questo proposito in PEP 008, accanto:
Le convenzioni di denominazione della biblioteca di Python sono un po 'di confusione, in modo da non arriveremo mai questo del tutto coerente [...]
e quindi otteniamo solo i moduli e le indicazioni classe di denominazione, nonché il fatto che relative importazioni sono scoraggiati.
Il fatto che assolute importazioni importazioni siano la strada da percorrere, prendere la decisione su come si organizzano le librerie è davvero importante (e non sono qui per discutere se evitare importazioni relative è buono o cattivo).
Mi piace l'approccio Java che assegna un nome a tutte le tue librerie, ma ho l'impressione che non sia pitonico ... Qual è il modo consigliato di andare?
PS. Mentre in generale le domande sulle "migliori pratiche" sono considerate come soggettive su SO, in Python l'esistenza del PEP le rende a mio avviso molto obiettive! Anche se la risposta potrebbe essere ... non ci sono le migliori pratiche per organizzare le tue librerie ..
Hai mai intenzione di persone esterne all'azienda di utilizzare le librerie? lo fai, è più semplice renderli 'mylibrary1'. Se sono puramente per uso interno,' mycompany.mylibary1' significa che non puoi più finire nei guai con qualcun altro 'mylibrary1'. –