2012-02-11 16 views
18

Ho un grande corpo di codice Python che deve avere uno stile/formato conforme a pep8 imposto su di esso. Ci sono varianti di pep8 che varie regole (come this one by a coworker), ma la cosa più difficile è occuparsi di dividere troppe righe e formattare il codice modificato.Programma di formattazione sorgente python programmabile

Ho guardato le domande su questo:

  1. python-formatter-tool
  2. python-source-formatter-pretty-printer

Sono dal 2009 e il 2010. Spero che gli strumenti migliori sono state sviluppate da allora.

Conosco PythonTidy che è abbastanza buono ma rende peggio il codice, IMHO. Pylint rileva errori di formattazione ma non li corregge. I servizi Web non sono realmente rilevanti per le mie esigenze perché voglio uno strumento che possa far parte di una build.

Qualcuno ha una raccomandazione che non è già stata coperta? Grazie.

+0

E non è programmatico, presumibilmente. – hughdbrown

+2

Per quanto riguarda la votazione da chiudere, sarebbe utile sapere perché le due precedenti domande sugli strumenti di formattazione python non hanno voti ravvicinati, ma questo tentativo lo fa. – hughdbrown

risposta

1

Google yapf funziona molto bene.

C'è una demo online qui: yapf.now.sh

È possibile integrare nel vostro flusso di lavoro ed eseguirlo quando si salva i file nel vostro editor o come git precommit gancio o qualcosa di simile.

+1

Arresta l'orologio. Abbiamo un vincitore. Questa è la cosa più vicina a ciò che voglio. E ci sono voluti solo sei anni per ottenere la risposta! – hughdbrown

7

Un altro che sembra abbastanza decente: autopep8

ma nota che seguire ciecamente tutte le convenzioni in PEP8 non è proprio nello spirito di PEP8. Da PEP8 stessa:

Ma ancora più importante: sapere quando essere incoerenti - a volte la guida stile semplicemente non si applica.

+0

Avrei dovuto commentare in precedenza che ho qualcosa che si occupa di alcuni errori pep8 ma nulla che gestisca in modo intelligente le linee troppo lunghe, portandomi a credere che sia necessaria una soluzione più generale, un formattatore di codice. – hughdbrown

2

PyCharm ha questa funzionalità costruito in e ora ha una, open source edizione gratuita comunità. Apri il tuo file e clicca su CtrlAltL.

Unifortunately, non riforterà automaticamente anche nomi di funzioni e nomi di variabili alla convenzione PEP8 ... quelli dovranno essere eseguiti uno a uno con la funzionalità di rinomina di PyCharm.

Problemi correlati