क्या पाइलिंट के साथ एक एकल विशिष्ट रेखा को अनदेखा करना संभव है?


150

मेरे हेडर में निम्न पंक्ति है:

import config.logging_settings

यह वास्तव में मेरी अजगर लॉगिंग सेटिंग्स को बदल देता है, लेकिन पाइलिंट को लगता है कि यह एक अप्रयुक्त आयात है। मैं unused-importसामान्य रूप से चेतावनियों को दूर नहीं करना चाहता हूं, तो क्या इस एक विशिष्ट लाइन को अनदेखा करना संभव है?

मुझे .pylintrcइस परियोजना के लिए कोई आपत्ति नहीं होगी, इसलिए एक कॉन्फ़िगर फ़ाइल को बदलने वाले उत्तर स्वीकार किए जाएंगे।

अन्यथा, कुछ इस तरह से भी सराहना की जाएगी:

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

जवाबों:


227

Pylint संदेश नियंत्रण Pylint मैनुअल में प्रलेखित है :

क्या किसी विशेष संदेश को स्थानीय रूप से अक्षम करना संभव है?

हां, इस फीचर को Pylint 0.11 में जोड़ा गया है। यह
# pylint: disable=some-message,another-one
वांछित ब्लॉक स्तर पर या कोड की वांछित लाइन के अंत में जोड़कर किया जा सकता है

आप संदेश कोड या प्रतीकात्मक नामों का उपयोग कर सकते हैं।

उदाहरण के लिए

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

मैनुअल में और भी उदाहरण हैं

नहीं है एक विकि है कि दस्तावेजों सभी pylint संदेशों और उनके कोड।


मुझे फ्लेक 8 एस पसंद है # noqa। मैं कोड में बहुत सारी टिप्पणियाँ नहीं देखना चाहता। # nolintऔर भी स्पष्ट होगा।
निल्स लिंडमैन

61
import config.logging_settings # pylint: disable=W0611

यह सरल और उस लाइन के लिए विशिष्ट था।

जैसा कि sthenault कृपया बताया, आप और अधिक पठनीय रूप का उपयोग करना चाहिए:

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

आपको संदेश स्पष्ट प्रतीक कहां से मिलेगा? मेरा लिंटर (स्पाईडर में एक) इसकी सूचना नहीं देता है और जोमो के जवाब में जुड़ा विकी इसे सूचीबद्ध नहीं करता है।
ज्यूइये

आपका मतलब है unused-import? मुझे लगता है कि मेरे लिंटर ने मुझे चेतावनी दी थी जब मैंने W0611 का इस्तेमाल किया था, लेकिन इसका> 3yrs था इसलिए मुझे याद नहीं है: / क्षमा करें
द अनफिन कैट

4

मेरा मानना ​​है कि आप जो खोज रहे हैं वह है ...

import config.logging_settings  # @UnusedImport

टिप्पणी से पहले दोहरे स्थान पर ध्यान दें, अन्य स्वरूपण चेतावनी से टकराने से बचने के लिए।

इसके अलावा, आपके आईडीई (यदि आप एक का उपयोग कर रहे हैं) पर निर्भर करता है, तो संभवतया सही उपेक्षा नियम जोड़ने का विकल्प है (जैसे ग्रहण दबाने Ctrl1पर कर्सर चेतावनी पर ऑटो-सुझाव देगा@UnusedImport


2
यह कुछ आईडीई के लिए काम कर सकता है, लेकिन इसके लिए काम नहीं किया emacs/flycheck। धन्यवाद। कृपया जवाब रखें क्योंकि यह किसी और की मदद कर सकता है।
अनफुन कैट

यह रनिंग pylintया flake8कमांड लाइन से काम नहीं करता है ।
जैकब टॉमलिंसन

@JacobTomlinson दिलचस्प, धन्यवाद। यह पिवदेव स्वीकार करता है और मैं इस धारणा के तहत था कि पाइक्लिप्स ने केवल पाइलिंट को खोल दिया था। या तो थोड़ा अनुकूलित होना चाहिए या शायद ग्रहण उन निर्देशों को संसाधित कर रहा है और आउटपुट को दबा रहा है।
बेसिक

4

Https://github.com/PyCQA/pylint/tree/master/pylint/checkers में फ़ाइलों की जांच करें । मुझे उन फ़ाइलों को Ctrl + F-ing से संदेश से त्रुटि नाम प्राप्त करने का एक बेहतर तरीका नहीं मिला है या Github खोज सुविधाओं का उपयोग कर रहा है:

यदि संदेश "मॉड्यूल में कोई नाम नहीं ..." है, तो खोज का उपयोग करें:

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

या, कम परिणाम पाने के लिए:

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

गिथुब आपको दिखाएंगे:

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

आप तब कर सकते हैं:

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

1
आप उन सभी को डॉक्स
एस्टेबन

धन्यवाद, यह स्रोत के माध्यम से जाने से बहुत बेहतर है। मुझे पाइलिंट डॉक के लिए दो और दर्पण मिले। जाहिर है, रीडथेडोक आधिकारिक दर्पण है। अन्य एक है pylint.org
loxaxs
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.