2015-06-07 5 views
5

मैं SublimePythonide का उपयोग कर रहा हूं जो pyflakes का उपयोग कर रहा है।pyflakes कुछ त्रुटियों को अनदेखा करने के लिए कैसे?

(E501) line too long 
(E101) indentation contains mixed spaces and tabs 

क्या ऐसा करने के लिए सबसे आसान तरीका है: कुछ त्रुटियाँ है कि मैं इसे पसंद की उपेक्षा करना चाहते हैं?

+1

सबसे आसान तरीका है इन त्रुटियों से बचने के लिए है। – ZdaR

+0

@ZdaR मुझे लंबी लाइनें पसंद हैं – user3571278

+5

** ** ** 'E101' को अनदेखा न करें, क्योंकि आपके कोड को चलाने का प्रयास करते समय आपको लगभग निश्चित रूप से त्रुटियां मिलेंगी। [पीईपी -8] (https://www.python.org/dev/peps/pep-0008/#indentation) 4 रिक्त स्थान का उपयोग करने की दृढ़ता से अनुशंसा करता है। – MattDMo

उत्तर

7

उदात्त में एक प्लगइन का विन्यास लगभग हमेशा एक ही प्रक्रिया का उपयोग करता साथ डुप्लिकेट है: पर क्लिक करें Preferences -> Package Settings -> Plugin Name -> Settings-Default (आश्चर्य आश्चर्य) डिफ़ॉल्ट सेटिंग्स को खोलने के लिए। इस फ़ाइल में आमतौर पर प्लगइन के लिए सभी संभावित सेटिंग्स होती हैं, आमतौर पर टिप्पणियों के साथ-साथ प्रत्येक व्यक्ति क्या करता है। इस फ़ाइल को संशोधित नहीं किया जा सकता है, इसलिए Preferences -> Package Settings -> Plugin Name -> Settings-User खोलने वाली किसी भी सेटिंग को कस्टमाइज़ करने के लिए। मैं आमतौर पर डिफ़ॉल्ट सेटिंग्स की संपूर्ण सामग्री को उपयोगकर्ता फ़ाइल में कॉपी करता हूं, फिर वांछित के रूप में अनुकूलित करें, फिर सहेजें और बंद करें।

इस विशेष प्लगइन के मामले में, जबकि यह pyflakes का उपयोग करता है (के रूप में विज्ञापित), यह भी pep8, एक शैली चेकर है कि बहुत ही PEP-8 आधिकारिक अजगर शैली गाइड मैं टिप्पणी में उल्लेख किया है का उपयोग करता है का उपयोग करता है। यह ज्ञान उपयोगी है क्योंकि pyflakes विशिष्ट त्रुटि कोड का उपयोग नहीं करता है, जबकि pep8 करता है।

तो, प्लगइन की सेटिंग्स फ़ाइल की जांच के बाद, हमें "pep8_ignore" विकल्प के साथ-साथ "pyflakes_ignore" एक मिलता है। चूंकि error codespep8 से आ रहे हैं, हम उस सेटिंग का उपयोग करेंगे:

"pep8_ignore": [ "E501", // line too long 
       "E303", // too many blank lines (3) 
       "E402" // module level import not at top of file 
       ] 

कृपया ध्यान दें कि कोड E121, E123, E126, E133, E226, E241, E242, E704 और डिफ़ॉल्ट रूप से नजरअंदाज कर दिया जाता है क्योंकि वे नहीं कर रहे हैं नियम सर्वसम्मति से स्वीकार किए जाते हैं, और पीईपी 8 उन्हें लागू नहीं करता है।


के बारे में लंबी लाइनों:

कभी कभी, लंबी लाइनों अपरिहार्य हैं। 79-वर्ण रेखाओं के पीईपी -8 के recommendation प्राचीन इतिहास में आधारित हैं जब टर्मिनल मॉनीटरों में केवल 80 वर्ण-व्यापी स्क्रीन थीं, लेकिन यह आज भी कई कारणों से जारी है: यह पुराने कोड के साथ पीछे-पीछे है, कुछ उपकरणों का अभी भी उपयोग किया जा रहा है उन सीमाओं, यह अच्छा लग रहा है, यह व्यापक रूप से प्रदर्शित होने पर कई फ़ाइलों को एक साथ खोलने में आसान बनाता है, और यह पठनीय है (कोडिंग के दौरान आपको हमेशा ध्यान में रखना चाहिए)। यदि आप 90- या 100-वर्ण सीमा रखना पसंद करते हैं, तो यह ठीक है (यदि आपकी टीम/प्रोजेक्ट इसके साथ सहमत है), लेकिन लगातार इसका उपयोग करें, और सावधान रहें कि अन्य अलग-अलग मानों का उपयोग कर सकते हैं।यदि आप 8012 के डिफ़ॉल्ट से pep8 को एक बड़े मान पर सेट करना चाहते हैं, तो बस "pep8_max_line_length" सेटिंग को संशोधित करें।

सीमा के भीतर रहने के लिए लाइनों की चरित्र गणना को कम करने के कई तरीके हैं, या कई छोटी लाइनों में लंबी लाइनों को विभाजित करने के कई तरीके हैं। टिप्पणी में अपने उदाहरण के मामले में:

flag, message = FacebookUserController.AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 

आप चीजों की एक जोड़ी कर सकते हैं:

# shorten the module/class name 
fbuc = FacebookUserController 
# or 
import FacebookUserController as fbuc 
flag, message = fbuc.AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 
# or eliminate it all together 
from FacebookUserController import AddFBUserToDB 
flag, message = AddFBUserToDB(iOSUserId, fburl, fbsecret, code) 
# split the function's arguments onto separate lines 
flag, message = FacebookUserController.AddFBUserToDB(iOSUserId, 
                fburl, 
                fbsecret, 
                code) 
# There are multiple ways of doing this, just make sure the subsequent 
# line(s) are indented. You don't need to escape newlines inside of 
# braces, brackets, and parentheses, but you do need to outside of them. 
1

जैसा कि अन्य सुझाव देते हैं, संभवतः चेतावनियों पर ध्यान देते हैं। लेकिन उन मामलों में आप अंतहीन लाइनों में # NOQA जोड़ सकते हैं। # से पहले दो रिक्त स्थानों पर ध्यान दें क्योंकि यह भी एक स्टाइल चीज है जिसके बारे में शिकायत की जाएगी।

और यदि pyflakes flake8 में लपेटा गया है जो विशिष्ट त्रुटियों से अनदेखा करने की अनुमति देता है।

परियोजना डाल या tox.ini में जोड़ने में एक फ़ाइल में

उदाहरण के लिए:

[flake8] 
exclude = .tox,./build 
filename = *.py 
ignore = E501,E101 

यह संभवतः How do I get Pyflakes to ignore a statement?

संबंधित मुद्दे

 संबंधित मुद्दे