Pylint ile tek bir spesifik çizgiyi yok saymak mümkün mü?


150

Başlığımda şu satır var:

import config.logging_settings

Bu aslında python günlük ayarlarımı değiştiriyor, ancak pylint bunun kullanılmayan bir içe aktarma olduğunu düşünüyor. unused-importGenel olarak uyarıları kaldırmak istemiyorum , bu yüzden bu belirli bir satırı görmezden gelmek mümkün mü?

.pylintrcBu proje için bir sahip olmak umursamıyorum, bu yüzden bir yapılandırma dosyasını değiştirerek cevaplar kabul edilecektir.

Aksi takdirde, bunun gibi bir şey de takdir edilecektir:

import config.logging_settings # pylint: disable-this-line-in-some-way

Yanıtlar:


227

Pylint mesaj kontrolü Pylint kılavuzunda belgelenmiştir :

Belirli bir mesajı yerel olarak devre dışı bırakmak mümkün mü?

Evet, bu özellik Pylint 0.11'de eklendi. Bu
# pylint: disable=some-message,another-one
, istenen blok düzeyinde veya istenen kod satırının sonuna eklenerek yapılabilir

Mesaj kodunu veya sembolik isimleri kullanabilirsiniz.

Örneğin

def test():
    # Disable all the no-member violations in this function
    # pylint: disable=no-member
    ...
global VAR # pylint: disable=global-statement

Kılavuz ayrıca başka örneklere de sahiptir .

Orada bir wiki o belgelerin hepsi PyLint mesajları ve bunların kodlarını.


Flake8 s severim # noqa. Kodda çok fazla yorum görmek istemiyorum. # nolintdaha da net olurdu.
Nils Lindemann

61
import config.logging_settings # pylint: disable=W0611

Bu basitti ve o çizgiye özgüdür.

Sthenault'un dikkat çektiği gibi, daha okunabilir formu kullanabilirsiniz ve kullanmalısınız:

import config.logging_settings # pylint: disable=unused-import

Mesajın açık sembolünü nereden alıyorsunuz? Linter'm (spyder'daki) bunu bildirmiyor ve jomo'nun cevabına bağlı wiki de listelemiyor.
Joooeey

Yani unused-import? Sanırım benim linter W0611 kullandığımda bana bir uyarı verdi, ama> 3 yıl oldu bu yüzden hatırlamıyorum: / Üzgünüm
Unfun Cat 15:18

4

Aradığın şeyin olduğuna inanıyorum ...

import config.logging_settings  # @UnusedImport

Diğer biçimlendirme uyarılarına çarpmamak için yorumdan önceki çift boşluğa dikkat edin.

Ayrıca, IDE'nize bağlı olarak (bir tane kullanıyorsanız), muhtemelen doğru yoksayma kuralını ekleme seçeneği vardır (örneğin Ctrl1, imleç uyarı üzerindeyken tutulma tuşuna basarken otomatik olarak önerecektir@UnusedImport


2
Bu, bazı IDE'ler için işe yarayabilir, ancak işe yaramadı emacs/flycheck. Teşekkürler. Başkalarına yardımcı olabileceğinden lütfen yanıtı saklayın.
Unfun Cat

Çalıştırırken pylintveya flake8komut satırından çalışmaz .
Jacob Tomlinson

@JacobTomlinson İlginç, teşekkürler. Pydev'in kabul ettiği şey buydu ve pyclipse'nin basitçe pylint'e dönüştüğü izlenimi altındaydım. Ya biraz özelleştirilmeli ya da tutulma bu yönergeleri işliyor ve çıktıyı bastırıyor olmalı.
Temel

4

Https://github.com/PyCQA/pylint/tree/master/pylint/checkers adresindeki dosyalara göz atın . Bir hata hata iletisi almak için bu dosyaları Ctrl + F-ing ya da Github arama özelliğini kullanarak daha iyi bir yol bulamadım:

Mesaj "Modülde isim yok ..." ise, aramayı kullanın:

No name %r in module %r repo:PyCQA/pylint/tree/master path:/pylint/checkers

Veya daha az sonuç almak için:

"No name %r in module %r" repo:PyCQA/pylint/tree/master path:/pylint/checkers

Github size şunu gösterecektir:

"E0611": (
    "No name %r in module %r",
    "no-name-in-module",
    "Used when a name cannot be found in a module.",

Daha sonra şunları yapabilirsiniz:

from collections import Sequence # pylint: disable=no-name-in-module

1
hepsini dokümanlarda
Esteban

Teşekkürler, kaynaktan geçmekten çok daha iyi. Pylint doc için iki ayna daha buldum. Görünüşe göre, readthedoc resmi ayna. Diğeri pylint.org
loxaxs
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.