← Back to team overview

a4-dev team mailing list archive

Python Style Rules

 

Buondì,

Citando lo Zen Of Python: "Beautiful is better than ugly" e "Readability
counts" [da qualche parte c'è scritto anche "consistency matters"]. Per
questi motivi ritengo che sia d'obbligo adottare delle regole fisse per
il codice. Queste regole dovrebbero essere:

PEP 8: http://www.python.org/dev/peps/pep-0008/
PEP 257: http://www.python.org/dev/peps/pep-0257/

Se non avete famigliarità con quelle due specifications, oppure se
semplicemente volte avere un comodo aiutante, vi consiglio caldamente di
dare un'occhiata a questi tools:


PyFlakes
========

È il tool più leggero e veloce in assoluto. Non si focalizza tanto sul
linting, quanto sullo scovare possibili errori nel codice (come
variabili inutilizzate). È abbastanza intelligente, quindi è rarissimo
che dia dei warnings falsi.


PyLint
======

Si tratta di tool abbastanza lento e pignolo, ma il più completo in
circolazione. Spesso gli errori che trova non sono errori, ma è facile
zittirlo. È possibile sopprimere determinati messaggi in tre modi
(combinabili tra loro):

1. Dalla riga di comando.
2. Con un file di configurazione.
3. Mettendo nei file .py dei commenti come questo:

  #pylint:disable-msg=123

Una volta addomesticato (i.e. una volta soppressi quei 5/6 warnings
inutili) è un tool davvero utile. Cerca sia errori nello stile (PEP8)
sia errori nel funzionamento del codice.


PyChecker
=========

È un tool abbastanza simile a PyLint, ma più veloce e meno pignolo.
Purtroppo da diversi anni non è più mantenuto, quindi io evito di usarlo
nei miei progetti a causa di alcuni bug che ogni tanto appaiono. Inoltre
se usate feature di Python 2.6 (come per esempio 'with'), PyChecker
*non* funzionerà.


PEP8
====

È il tool che usate tutti voi. L'ho provato personalmente e devo dire
che non mi ci trovo né bene né male. Di feature in più rispetto a PyLint
e PyFlakes non ne ha (anzi, fa meno checks) e non c'è modo di sopprimere
i falsi positivi. Inoltre, se ricordo bene, alcune regole se le inventa.
Però è veloce e un tool in più (specie se ben mantenuto) non fa mai
male, quindi a voi la scelta. :-)



Suggerimenti e critiche sono ben accetti.

Thanks,
Andrea

-- 
Andrea Corbellini
Ubuntu Member  | http://www.ubuntu.com
BeeSeek Member | http://www.beeseek.org

Attachment: signature.asc
Description: This is a digitally signed message part


Follow ups