2015-03-23 20 views
11

Bu kod bir proje için Python dosyalarının çoğunda (birçok) var.pylint yinelenen kod yanlış pozitif

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

PyLint şikayet:

==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) 

hangisi doğrudur tamamen ilgisiz iken. from __future__ [...] hatları, Python 2 to Python 3'dan to prevent compatibility regressions var. Bu nedenle, pylint, farklı dosyalarda benzer olduklarından şikayet etmemelidir.

Bunu yaparken pytlint'i durdurmanın bir yolu var mı?

pylint: disable=duplicate-code hakkında biliyorum, ancak bu, içe aktarma kapsamı nedeniyle tüm dosya için devre dışı bırakacaktır. Ancak, tüm dosya için devre dışı bırakmak istemiyorum. senin pylintrc config file arasında similarities bölümünde ignore-imports değişen

+0

Muhtemelen bir sebeple şikayetçi? Bu neden yanlış bir pozitif ve gerçek bir kod çoğaltma değil? – Torxed

+0

@Torxed: Soru cevapla düzenlenmiştir. – Sardathrion

+0

Belki bu ithalatı 'common_imports.py' adlı başka bir dosyaya koyabilir ve o dosyayı diğer dosyalarınızda' common_imports import * 'ile içe aktarabilirsiniz. DÜZENLEME: Hayır, sadece denedim ve bu '__future__' ithalatı ile çalışmak gibi görünmüyor ... –

cevap

18

PyLint benzerlikler Yapılandırma

deneyin.

Standart pylintrc:

[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

Komut satırından bunu yapmanın herhangi bir yolu? ... – Sardathrion

+1

@Sardathrion pylint/path/to/project/--ignore-imports = no' (* test edilmemiş *) yapmayı deneyin, ama gerçekten de Bir yapılandırma dosyasındaki * tüm * seçeneklere erişim. Eğer daha sonra değiştirebileceğiniz varsayılan seçenekleri basacak 'pylint --generate-rcfile' çalıştırırsanız. Dosyayı kodunuzun dizininde tutmanız yeterli. – tmthydvnprt

+1

Bu işe yaradı! Harika, çok teşekkür ederim. Pylint'i scons'lardan çalıştırdığımız için gerçekten bir ~/.pylintrc kullanamıyorum ... Sorma. Bu korkunç.^_ ~ – Sardathrion

İlgili konular