เป็นไปได้หรือไม่ที่จะละเว้นบรรทัดเดียวที่มี pylint?


150

ฉันมีบรรทัดต่อไปนี้ในส่วนหัวของฉัน:

import config.logging_settings

นี่เป็นการเปลี่ยนการตั้งค่าการบันทึกของหลาม แต่ pylint คิดว่าเป็นการอิมพอร์ตที่ไม่ได้ใช้ ฉันไม่ต้องการลบunused-importคำเตือนโดยทั่วไปดังนั้นจึงเป็นไปได้ไหมที่จะละเว้นบรรทัดนี้

ฉันไม่รังเกียจที่จะมี.pylintrcโครงการนี้ดังนั้นคำตอบที่เปลี่ยนไฟล์ config จะได้รับการยอมรับ

มิเช่นนั้นสิ่งนี้จะได้รับการชื่นชม:

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 และรหัสของพวกเขาทั้งหมด


ฉันชอบflake8# noqa s ฉันไม่ต้องการที่จะเห็นความคิดเห็นมากมายในรหัส # nolintจะชัดเจนยิ่งขึ้น
Nils Lindemann

61
import config.logging_settings # pylint: disable=W0611

นั่นเป็นเรื่องง่ายและเฉพาะเจาะจงสำหรับบรรทัดนั้น

ตามที่ sthenault กรุณาชี้ให้เห็นว่าคุณสามารถและควรใช้แบบฟอร์มที่อ่านง่ายขึ้น:

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

คุณได้รับข้อความแจ้งสัญลักษณ์ชัดเจนจากที่ใด ผู้ให้การสนับสนุนของฉัน (ผู้สอดแนม) ไม่รายงานและวิกิที่เชื่อมโยงกับคำตอบของ jomo ไม่ได้ระบุไว้เช่นกัน
Joooeey

คุณหมายถึงunused-importอะไร ฉันคิดว่าผู้ให้ยืมของฉันให้คำเตือนเมื่อฉันใช้ W0611 แต่มันเป็น> 3 ปีดังนั้นฉันจำไม่ได้: / ขออภัย
The Unfun Cat

4

ฉันเชื่อว่าสิ่งที่คุณกำลังมองหาคือ ...

import config.logging_settings  # @UnusedImport

หมายเหตุเว้นวรรคสองข้างหน้าความคิดเห็นเพื่อหลีกเลี่ยงการชนคำเตือนการจัดรูปแบบอื่น ๆ

นอกจากนี้ขึ้นอยู่กับ IDE ของคุณ (ถ้าคุณใช้อยู่) อาจมีตัวเลือกในการเพิ่มกฎการเพิกเฉยที่ถูกต้อง (เช่นในการกดคราสCtrl1ขณะที่เคอร์เซอร์อยู่เหนือคำเตือนจะแนะนำโดยอัตโนมัติ@UnusedImport


2
นี้อาจทำงานสำหรับ IDEs บางอย่าง emacs/flycheckแต่ไม่ได้ทำงาน ขอบคุณ โปรดเก็บคำตอบไว้เพราะอาจช่วยคนอื่นได้
Cat Unfun

สิ่งนี้ไม่ทำงานเมื่อทำงานpylintหรือflake8จากบรรทัดคำสั่ง
Jacob Tomlinson

@JacobTomlinson น่าสนใจขอบคุณ มันคือสิ่งที่ Pydev ยอมรับและฉันรู้สึกว่า pyclipse ก็แค่ปอกเปลือกออกเป็น pylint จะต้องได้รับการปรับแต่งเล็กน้อยหรืออาจจะคราสกำลังประมวลผลคำสั่งเหล่านั้นและระงับการส่งออก
พื้นฐาน

4

เช็คเอาไฟล์ในhttps://github.com/PyCQA/pylint/tree/master/pylint/checkers ฉันไม่พบวิธีที่ดีกว่าในการรับชื่อข้อผิดพลาดจากข้อความมากกว่า Ctrl + F-ing ไฟล์เหล่านั้นหรือใช้คุณสมบัติการค้นหา Github:

หากข้อความคือ "No name ... in module ... " ให้ใช้การค้นหา:

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

Github จะแสดง:

"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
คุณสามารถค้นหาได้ทั้งหมดในเอกสาร
Esteban

ขอบคุณมันดีกว่าการผ่านแหล่งข้อมูล ฉันพบมิเรอร์มากกว่าสองรายการสำหรับ pylint doc เห็นได้ชัดว่าreadthedocเป็นกระจกอย่างเป็นทางการ อีกรายการหนึ่งคือpylint.org
loxaxs
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.