নপি, স্কিপি, স্কালার্ন, নিপি ইত্যাদি নিয়ে আমার এই সমস্যাটি ছিল এবং আমি এপিলেটটি এ জাতীয়ভাবে মোড়ানো দ্বারা সমাধান করেছি:
$ বিড়াল epylint.py
#!/usr/bin/python
"""
Synopsis: epylint wrapper that filters a bunch of false-positive warnings and errors
Author: DOHMATOB Elvis Dopgima <gmdopp@gmail.com> <elvis.dohmatob@inria.fr>
"""
import os
import sys
import re
from subprocess import Popen, STDOUT, PIPE
NUMPY_HAS_NO_MEMBER = re.compile("Module 'numpy(?:\..+)?' has no '.+' member")
SCIPY_HAS_NO_MEMBER = re.compile("Module 'scipy(?:\..+)?' has no '.+' member")
SCIPY_HAS_NO_MEMBER2 = re.compile("No name '.+' in module 'scipy(?:\..+)?'")
NIPY_HAS_NO_MEMBER = re.compile("Module 'nipy(?:\..+)?' has no '.+' member")
SK_ATTR_DEFINED_OUTSIDE_INIT = re.compile("Attribute '.+_' defined outside __init__")
REL_IMPORT_SHOULD_BE = re.compile("Relative import '.+', should be '.+")
REDEFINING_NAME_FROM_OUTER_SCOPE = re.compile("Redefining name '.+' from outer scope")
if __name__ == "__main__":
basename = os.path.basename(sys.argv[1])
for line in Popen(['epylint', sys.argv[1], '--disable=C,R,I' # filter thesew arnings
], stdout=PIPE, stderr=STDOUT, universal_newlines=True).stdout:
if line.startswith("***********"):
continue
elif line.startswith("No config file found,"):
continue
elif "anomalous-backslash-in-string," in line:
continue
if NUMPY_HAS_NO_MEMBER.search(line):
continue
if SCIPY_HAS_NO_MEMBER.search(line):
continue
if SCIPY_HAS_NO_MEMBER2.search(line):
continue
if "Used * or ** magic" in line:
continue
if "No module named" in line and "_flymake" in line:
continue
if SK_ATTR_DEFINED_OUTSIDE_INIT.search(line):
continue
if "Access to a protected member" in line:
continue
if REL_IMPORT_SHOULD_BE.search(line):
continue
if REDEFINING_NAME_FROM_OUTER_SCOPE.search(line):
continue
if NIPY_HAS_NO_MEMBER.search(line):
continue
# XXX extend by adding more handles for false-positives here
else:
print line,
এই স্ক্রিপ্টটি কেবল এপিলিন্ট চালায়, তারপরে মিথ্যা-ইতিবাচক সতর্কতা এবং ত্রুটিগুলি ফিল্টার করার জন্য এর আউটপুটটিকে স্ক্র্যাপ করে। আপনি আরও এলিফ ক্ষেত্রে যুক্ত করে এটি বাড়িয়ে দিতে পারেন।
নোট: এটি যদি আপনার ক্ষেত্রে প্রযোজ্য হয়, তবে আপনি আপনার পাইচারারগুলি পরিবর্তন করতে চান sh তাই এটি পছন্দ করে likes
#!/bin/bash
epylint.py "$1" 2>/dev/null
pyflakes "$1"
pep8 --ignore=E221,E701,E202 --repeat "$1"
true
(অবশ্যই, আপনাকে প্রথমে epylint.py এক্সিকিউটেবল করতে হবে)
আমার .emacs https://github.com/dohmatob/mydotemacs এর লিঙ্কটি এখানে । আশা করি এটি কারও কাজে লাগবে।