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