2015-03-23 12 views
11

Ho questo codice in (molti) dei miei file Python per un progetto.pylint duplicate code false positive

from __future__ import absolute_import 
from __future__ import division 
from __future__ import print_function 
from __future__ import unicode_literals 
from pprint import pformat 

pylint lamenta che:

==ook:2 
==eek:2 
from __future__ import absolute_import 
from __future__ import division 
from __future__ import print_function 
from __future__ import unicode_literals 
from pprint import pformat (duplicate-code) 

che pur vero è del tutto irrilevante. Le linee from __future__ [...] ci sono to prevent compatibility regressions da Python 2 to Python 3. In quanto tale, pylint non dovrebbe lamentarsi del fatto che siano simili in file diversi.

C'è un modo per smettere di fare questo?

So di pylint: disable=duplicate-code ma che lo disabiliterà per l'intero file a causa dell'ambito di importazione. Tuttavia, non voglio disabilitarlo per l'intero file.

+0

Probabilmente lamentarsi per un motivo? Perché questo è un falso positivo e non una vera e propria duplicazione del codice? – Torxed

+0

@Torxed: domanda modificata con la risposta. – Sardathrion

+0

Forse potresti metterli in un altro file, ad esempio 'common_imports.py', e importare quel file con' from common_imports import * 'in tutti gli altri tuoi file? EDIT: No, ho appena provato, e questo sembra non funzionare con le importazioni di "__future__' ... –

risposta

18

pylint somiglianze Config

provare a cambiare la ignore-imports nella sezione similarities del pylintrc config file. pylintrc

predefinito:

[SIMILARITIES] 

# Minimum lines number of a similarity. 
min-similarity-lines=4 

# Ignore comments when computing similarities. 
ignore-comments=yes 

# Ignore docstrings when computing similarities. 
ignore-docstrings=yes 

# Ignore imports when computing similarities. 
ignore-imports=no 
+1

Un modo per farlo dalla riga di comando? ... – Sardathrion

+1

@Sardathrion Prova a fare "pylint/path/to/project/--ignore-imports = no' (* un tested *), ma in realtà è bello avere accedere a * tutte * le opzioni da un file di configurazione. Se si esegue 'pylint --generate-rcfile' che stamperà le opzioni predefinite che è possibile modificare. Basta tenere il file nella directory del tuo codice. – tmthydvnprt

+1

Ha funzionato! Grande, grazie mille. Non posso davvero usare un '~/.pylintrc' mentre eseguiamo il puntatore da scons ... Non chiedere. È orribile.^_ ~ – Sardathrion

Problemi correlati