New submission from STINNER Victor:

Currently, the warnings.showformat() function take between 4 and 6 parameters 
and it's not possible to add new parameters.

warnings.showformat() calls warnings.formatwarnings() with 5 parameters. Again, 
it's not easy to pass new parameters.

I would like to add a new "source" parameter for ResourceWarning: see issue 
#26567 "ResourceWarning: Use tracemalloc to display the traceback where an 
object was allocated when a ResourceWarning is emitted".

To make warnings extensible, I propose to:

* Add new showmsg() and formatmsg() functions to the warnings module, these 
functions take a warnings.WarningMessage instance
* The _warnings module calls warnings.showmsg() rather than 
warnings.showwarning()
* For backward compatibility, warnings.showmsg() calls warnings.showwarning() 
if warnings.showwarning() was replaced. Same for warnings.formatmsg(): call 
warnings.formatwarning() if replaced.

Attached patch implements these changes.

With these changes, the warnings looks a little bit more like the logging 
module and its logging.LogRecord class.

The patch is incomplete, it doesn't add much tests yet and it doesn't touch the 
documentation. I would prefer to get the new API (and the whole idea) approved 
before going too far.

Note: If warnings.showwarning is deleted ("del warnings.showwarning"), 
showmsg() uses its own implementation. Same for formatmsg().

----------
files: warnings_showmsg.patch
keywords: patch
messages: 261814
nosy: haypo
priority: normal
severity: normal
status: open
title: Add a new warnings.showmsg() function taking a warnings.WarningMessage 
object
versions: Python 3.6
Added file: http://bugs.python.org/file42172/warnings_showmsg.patch

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue26568>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to