@@ -626,9 +626,28 @@ Available Context Managers
626626 If the *record * argument is :const: `False ` (the default) the context manager
627627 returns :class: `None ` on entry. If *record * is :const: `True `, a list is
628628 returned that is progressively populated with objects as seen by a custom
629- :func: `showwarning ` function (which also suppresses output to ``sys.stdout ``).
630- Each object in the list has attributes with the same names as the arguments to
631- :func: `showwarning `.
629+ :func: `showwarning ` function (which also suppresses output to ``sys.stderr ``).
630+ Each object in the list is guaranteed to have the following attributes:
631+
632+ - ``message ``: the warning message (an instance of :exc: `Warning `)
633+ - ``category ``: the warning category (a subclass of :exc: `Warning `)
634+ - ``filename ``: the file name where the warning occurred (:class: `str `)
635+ - ``lineno ``: the line number in the file (:class: `int `)
636+ - ``file ``: the file object used for output (if any), or ``None ``
637+ - ``line ``: the line of source code (if available), or ``None ``
638+ - ``source ``: the original object that generated the warning (if
639+ available), or ``None ``
640+ - ``module ``: the module name where the warning occurred
641+ (:class: `str `), or ``None ``
642+
643+ .. versionchanged :: 3.6
644+ The ``source `` attribute was added.
645+
646+ .. versionchanged :: 3.15
647+ The ``module `` attribute was added.
648+
649+ The type of these objects is not specified and may change; only the
650+ presence of these attributes is guaranteed.
632651
633652 The *module * argument takes a module that will be used instead of the
634653 module returned when you import :mod: `!warnings ` whose filter will be
0 commit comments