2014-09-28 6 views
6

के लिए चेतावनी अक्षम करें मैं एक परियोजना में पिलिंट का उपयोग कर रहा हूं और कुछ मुझे परेशान करता है।पिलिंट: सबक्लास

उदाहरण के लिए, मैं एक यूनिट टेस्ट (unittest.TestCase का सबक्लास) बनाते हैं। इस अभिभावक वर्ग में बहुत सी विधि है, इसलिए पिलिंट कहते हैं "R0904: बहुत अधिक सार्वजनिक विधियां"। इस चेतावनी को "हल" करने के लिए, मैं इस चेक को स्थानीय रूप से अक्षम करता हूं।

लेकिन मुझे बहुत से यूनिट टेस्ट लिखने की ज़रूरत है और यह हर बार स्थानीय चेक को अक्षम करने के लिए परेशान करता है।

तो मैं unittest.TestCase के सभी सबक्लास के लिए इस चेक को अक्षम करने का एक तरीका ढूंढ रहा हूं। एक पिलिंट कॉन्फ़िगरेशन फ़ाइल में हो सकता है, लेकिन मुझे कुछ भी नहीं मिला।

क्या आपको ऐसा करने का कोई विचार है?

आपकी सहायता के लिए बहुत बहुत धन्यवाद।

+0

उम्मीद है कि एक आसान विकल्प है, लेकिन यदि नहीं ... तो आप हमेशा एक प्लगइन लिख सकते हैं जो उप-वर्ग (या बंदरगाहों, लेकिन सबक्लासिंग यहां क्लीनर लगता है) डिज़ाइन चेकर। मैं इसे 'अनदेखा-परीक्षण-वर्ग' का एक नया विकल्प जोड़कर करूँगा और किसी भी वर्ग के लिए 'अधिकतम-सार्वजनिक-विधियों' चेक को छोड़ने के लिए उपयोग करता हूं जो किसी भी अनदेखी कक्षाओं से प्राप्त होता है। (क्लास चेकर की 'अनदेखा-इफेस-विधियों' को संभालने वाला कोड एक अच्छा मॉडल होना चाहिए।) वास्तव में, ऐसा लगता है कि यह पर्याप्त सामान्य उपयोग हो सकता है कि यदि आप इसे करते हैं तो आप इसे अपस्ट्रीम सबमिट कर सकते हैं। – abarnert

+2

आपको वहां बहुत कुछ नहीं मिला है, लेकिन आप हमेशा एक पैकेज में 'pylintrc' को छोड़ सकते हैं (यानी इसमें' __init __। Py' वाली कोई निर्देशिका), इसलिए यदि आपके सभी परीक्षण एक 'परीक्षण' निर्देशिका में हैं, उदाहरण के लिए, आप इसे कम से कम एक परियोजना के आधार पर अक्षम कर सकते हैं, भले ही वैश्विक स्तर पर न हो। –

+0

आपके उत्तर के लिए धन्यवाद। Abarnert, मैं जांचूँगा कि इसके लिए प्लगइन कैसे बनाएं। मेरा मुद्दा न केवल एकजुट वर्ग के लिए है। उदाहरण के लिए, मैं sqlalchemy का उपयोग करता हूं और sqlalchemy.types.TypeDecorator के उप-वर्ग के लिए। मैं एक वैकल्पिक प्लगइन लिखने की कोशिश करूंगा जैसे अक्षम-XXXX = unittest.TestCase, ..., ... –

उत्तर

2

आप pylintrc फ़ाइल को परिभाषित कर सकते हैं और उस का उपयोग कर पिलिंट चला सकते हैं। आप निम्नानुसार ऐसा कर सकते हैं:

$ pylint --generate-rcfile > pylintrc 

यह डिफ़ॉल्ट pylintrc फ़ाइल उत्पन्न करता है। यह एक पैरा ऐसा दिखता है जैसे होना चाहिए:

# Disable the message, report, category or checker with the given id(s). You 
# can either give multiple identifier separated by comma (,) or put this option 
# multiple time (only on the command line, not in the configuration file where 
# it should appear only once). 
#disable= 

आपको लगता है कि पैरा के बाद निम्न पंक्ति जोड़ना चाहते हैं (लेकिन भीतर संदेश खंड नियंत्रण):

disable=R0904 

या:

disable=too-many-public-methods 

आपको उस आरसीफ़ाइल के साथ पिलिंट चलाने की आवश्यकता है। यह --rcfile=<file> तर्क का उपयोग करके किया जा सकता है।