NumPy 1.14 - numpy.testing.suppress_warnings()

numpy.testing.suppress_warnings




numpy

numpy.testing.suppress_warnings

class numpy.testing.suppress_warnings(forwarding_rule='always') [source]

प्रसंग प्रबंधक और डेकोरेटर warnings.catch_warnings के समान ही कर रहे हैं।

हालाँकि, यह http://bugs.python.org/issue4180 आसपास काम करने के लिए एक फ़िल्टर तंत्र भी प्रदान करता है।

यह बग 3.4 के पहले पायथन का कारण बनता है, क्योंकि उन्हें एक बार (यहां तक ​​कि कैच_वर्डिंग के बाद भी) नजरअंदाज नहीं किए जाने के बाद, फिर से चेतावनी दिखाने के लिए नहीं। इसका अर्थ है कि कोई भी "अनदेखा" फ़िल्टर आसानी से उपयोग नहीं किया जा सकता है, क्योंकि निम्नलिखित परीक्षणों के लिए चेतावनी देखने की आवश्यकता हो सकती है। इसके अतिरिक्त यह परीक्षण चेतावनियों के लिए आसान विशिष्टता प्रदान करता है और इसे नस्ट किया जा सकता है।

पैरामीटर:

Forwarding_rule : str, वैकल्पिक

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

टिप्पणियाँ

संदर्भ प्रबंधक के अंदर जोड़े गए फ़िल्टर को फिर से छोड़ने पर छोड़ दिया जाएगा। एक संदर्भ के बाहर परिभाषित सभी फिल्टर दर्ज करने पर स्वचालित रूप से लागू किया जाएगा।

जब एक रिकॉर्डिंग फ़िल्टर जोड़ा जाता है, तो मिलान चेतावनी log विशेषता में संग्रहीत होती है और साथ ही record द्वारा वापस की गई सूची में भी।

यदि फ़िल्टर जोड़े जाते हैं और module कीवर्ड दिया जाता है, तो इस मॉड्यूल की चेतावनी रजिस्ट्री को लागू करते समय, संदर्भ में प्रवेश करते समय, या इसे बाहर निकालते समय अतिरिक्त रूप से साफ़ कर दिया जाएगा। यह संदर्भ छोड़ने के बाद दूसरी बार प्रकट होने की चेतावनी दे सकता है यदि उन्हें एक बार (डिफ़ॉल्ट) मुद्रित करने के लिए कॉन्फ़िगर किया गया था और संदर्भ दर्ज किए जाने से पहले ही मुद्रित किया गया था।

जब इस नियम को "हमेशा" (डिफ़ॉल्ट) किया जाता है, तो इस संदर्भ प्रबंधक से नेस्टिंग करना अपेक्षित होगा। अनफिल्टर्ड और अनक्रेडर्ड चेतावनियों को पास किया जाएगा और बाहरी स्तर से मिलान किया जाएगा। बाहरी स्तर पर उन्हें मुद्रित किया जाएगा (या किसी अन्य चेतावनी के संदर्भ से पकड़ा जाएगा)। अग्रेषण नियम तर्क इस व्यवहार को संशोधित कर सकता है।

इस संदर्भ प्रबंधक की तरह catch_warnings नहीं है।

उदाहरण

>>> with suppress_warnings() as sup:
...     sup.filter(DeprecationWarning, "Some text")
...     sup.filter(module=np.ma.core)
...     log = sup.record(FutureWarning, "Does this occur?")
...     command_giving_warnings()
...     # The FutureWarning was given once, the filtered warnings were
...     # ignored. All other warnings abide outside settings (may be
...     # printed/error)
...     assert_(len(log) == 1)
...     assert_(len(sup.log) == 1)  # also stored in log attribute

या एक डेकोरेटर के रूप में:

>>> sup = suppress_warnings()
>>> sup.filter(module=np.ma.core)  # module must match exact
>>> @sup
>>> def some_function():
...     # do something which causes a warning in np.ma.core
...     pass

तरीके

__call__ ( __call__ ) समारोह डेकोरेटर एक पूरे फ़ंक्शन के लिए कुछ दमन लागू करने के लिए।
filter ([श्रेणी, संदेश, मॉड्यूल]) यदि राज्य में प्रवेश किया जाता है तो एक नया दबाने वाला फ़िल्टर जोड़ें या इसे लागू करें।
record ([श्रेणी, संदेश, मॉड्यूल]) राज्य दर्ज होने पर एक नया रिकॉर्डिंग फ़िल्टर संलग्न करें या इसे लागू करें।