Uri Okrent added the comment:

My reading of the docs leads me to lean towards bug since this seems to break 
the contract of BaseException API in a standard lib module:

https://docs.python.org/3/library/exceptions.html#BaseException says 
BaseExceptions have args and with_traceback so those probably should be 
preserved in all standard lib inheritors.

This excerpt from the tutorial also seems to imply the same:
https://docs.python.org/3/tutorial/errors.html#user-defined-exceptions

"In this example, the default __init__() of Exception has been overridden. The 
new behavior simply creates the value attribute. This replaces the default 
behavior of creating the args attribute."

The tutorial goes out of its way to note that the default behavior of creating 
args has been replaced in this simple example -- i.e., one would expect args to 
be present.


As for your other comments, should I make a similar change to other inheritors 
of xmlrpc.client that inherit from xmlrpc.client.Error?  Should I instead 
completely remove Fault's constructor and just make faultCode and faultString 
properties so the attributes aren't duplicated (that seems like it may be 
dangerous)?

I will update the test for pickling with the other protocols.

----------

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

Reply via email to