Модуль warnings полезен, когда необходимо предупредить пользователя о каком-либо условии в программе и это условие не требует создания исключения и завершения программы. Например, может возникнуть необходимость выдать предупреждение, когда программа использует устаревший модуль.
Программисты Python выдают предупреждения, вызывая функцию warnings.warn(), определенную в этом модуле.
Предупреждающие сообщения обычно записываются в sys.stderr, но их расположение можно гибко изменять, от игнорирования всех предупреждений до превращения их в исключения. Расположение предупреждений может варьироваться в зависимости от категории предупреждения, текста предупреждения и местоположения источника, в которое оно отправлено. Повторения определенного предупреждения для одного и того же местоположения источника обычно подавляются.
Управление предупреждением состоит из двух этапов:
Определение того, следует ли выдавать предупреждающее сообщение, контролируется фильтром предупреждений, который представляет собой последовательность соответствующих правил и действий. Правила можно добавить в фильтр, вызвав warnings.filterwarnings() и сбрасывать его в состояние по умолчанию функцией warnings.resetwarnings().
Печать предупреждающих сообщений выполняется с помощью функции warnings.showwarning(), которая может быть переопределена. Реализация по умолчанию этой функции форматирует сообщение, вызывая warnings.formatwarning(), которая доступна для использования пользовательскими реализациями.