2013-05-15 15 views
12

Nel mio progetto django sto usando un'app scritta esternamente che è scritta male. Ora voglio ignorare questa app dalla mia segnalazione di pylint, tuttavia non riesco a convincere Pylint a ignorarlo. Pylint è già ignorando le migrazioni del Sud, in questo modo:pylint: ignore multiple in rcfile

[MASTER] 
ignore=migrations 

Tuttavia, la documentazione afferma che più ignora possono essere specificati. Ma ne ho provati alcuni e non sono riuscito a farli funzionare.

non funziona:

[MASTER] 
ignore=migrations,badapp 

Inoltre, non funziona:

[MASTER] 
ignore=migrations 
ignore=badapp 

La mia struttura del progetto è come questo:

|-- goodapp 
| |-- models.py 
| |-- tests.py 
| +-- views.py 
|-- badapp 
| |-- models.py 
| |-- tests.py 
| +-- views.py 
|-- manage.py 

preferisco non cospargere il mio codice con # pylint: skip-file, ma piuttosto configurare pylint utilizzando il file rc.

+0

Penso che questo non funzioni, perché pilone non riesce a trovare il file __init__.py in "goodapp" e "badapp". – cwirz

risposta

8

ignore può essere impostato più volte quando somministrato come opzione di riga di comando, ad esempio

pylint --ignore=migrations --ignore=badapp mymodule.py 

Ma non nel file di configurazione (vedere la documentazione ConfigParser). Sebbene

[MASTER] 
ignore=migrations,badapp 

dovrebbe funzionare, se non che dovrebbe essere segnalato come un bug.

+0

un test rapido localmente mi fa pensare che funzioni come previsto – sthenault

+1

non funziona per me su pylint 1.3.1 (CentOS 6, Fedora 21 hanno entrambi pylint 1.3.1). forse è un bug Ho creato 3 directory 'a, b, c' con lo stesso' tmp.py' e ho provato ad usare un 'pylintrc' con' ignore = a, b, c' e ho anche provato '--ignore = a, b, c '. Il file di configurazione e l'opzione della riga di comando non funzionavano entrambi. –

1

È possibile fare --ignore=migrations,badapp ma non per esempio --ignore=lib/migrations,apps/badapp - pylint non comprende percorsi completi, solo nomi di base. Inoltre nella mia versione ignora tutte le istanze multipe --ignore nella riga di comando utilizzando solo l'ultimo parametro --ignore.