From: SourceForge.net <no...@so...> - 2008-03-24 18:17:04
|
Patches item #1924524, was opened at 2008-03-24 11:17 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Casey Raymondson (brzrkr0) Assigned to: Nobody/Anonymous (nobody) Summary: [python] "No constructor defined" for any number of args Initial Comment: When a Python wrapper class doesn't have a constructor (such as when wrapping an abstract class), the wrapper class includes an __init__ method that raises: AttributeError: No constructor defined This lets clients know that there is no constructor if they try to instantiate the class from Python. However, the current swig version only creates such an __init__ method that only takes self as an argument. If a client calls __init__ using additional arguments or keyword arguments, they will not see the "No constructor defined" exception, but will instead get the following: TypeError: __init__() takes exactly 1 argument (2 given) This exception gives no indication that the real problem is that there is no constructor defined. I am submitting a patch to python.cxx that replaces this __init__(self) with __init__(self, *args, **kwargs), which will result in the more informative AttributeError, regardless of how many arguments are passed into __init__. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 |
From: SourceForge.net <no...@so...> - 2008-03-24 18:18:06
|
Patches item #1924524, was opened at 2008-03-24 11:17 Message generated for change (Comment added) made by brzrkr0 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Casey Raymondson (brzrkr0) Assigned to: Nobody/Anonymous (nobody) Summary: [python] "No constructor defined" for any number of args Initial Comment: When a Python wrapper class doesn't have a constructor (such as when wrapping an abstract class), the wrapper class includes an __init__ method that raises: AttributeError: No constructor defined This lets clients know that there is no constructor if they try to instantiate the class from Python. However, the current swig version only creates such an __init__ method that only takes self as an argument. If a client calls __init__ using additional arguments or keyword arguments, they will not see the "No constructor defined" exception, but will instead get the following: TypeError: __init__() takes exactly 1 argument (2 given) This exception gives no indication that the real problem is that there is no constructor defined. I am submitting a patch to python.cxx that replaces this __init__(self) with __init__(self, *args, **kwargs), which will result in the more informative AttributeError, regardless of how many arguments are passed into __init__. ---------------------------------------------------------------------- >Comment By: Casey Raymondson (brzrkr0) Date: 2008-03-24 11:18 Message: Logged In: YES user_id=1684735 Originator: YES The patch was created against the current head (r10319) in subversion. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 |
From: SourceForge.net <no...@so...> - 2008-03-24 22:37:40
|
Patches item #1924524, was opened at 2008-03-24 11:17 Message generated for change (Comment added) made by brzrkr0 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Casey Raymondson (brzrkr0) Assigned to: Nobody/Anonymous (nobody) Summary: [python] "No constructor defined" for any number of args Initial Comment: When a Python wrapper class doesn't have a constructor (such as when wrapping an abstract class), the wrapper class includes an __init__ method that raises: AttributeError: No constructor defined This lets clients know that there is no constructor if they try to instantiate the class from Python. However, the current swig version only creates such an __init__ method that only takes self as an argument. If a client calls __init__ using additional arguments or keyword arguments, they will not see the "No constructor defined" exception, but will instead get the following: TypeError: __init__() takes exactly 1 argument (2 given) This exception gives no indication that the real problem is that there is no constructor defined. I am submitting a patch to python.cxx that replaces this __init__(self) with __init__(self, *args, **kwargs), which will result in the more informative AttributeError, regardless of how many arguments are passed into __init__. ---------------------------------------------------------------------- >Comment By: Casey Raymondson (brzrkr0) Date: 2008-03-24 15:37 Message: Logged In: YES user_id=1684735 Originator: YES File Added: test_case.zip ---------------------------------------------------------------------- Comment By: Casey Raymondson (brzrkr0) Date: 2008-03-24 11:18 Message: Logged In: YES user_id=1684735 Originator: YES The patch was created against the current head (r10319) in subversion. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 |
From: SourceForge.net <no...@so...> - 2008-03-26 20:44:28
|
Patches item #1924524, was opened at 2008-03-24 18:17 Message generated for change (Comment added) made by wsfulton You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Casey Raymondson (brzrkr0) >Assigned to: William Fulton (wsfulton) Summary: [python] "No constructor defined" for any number of args Initial Comment: When a Python wrapper class doesn't have a constructor (such as when wrapping an abstract class), the wrapper class includes an __init__ method that raises: AttributeError: No constructor defined This lets clients know that there is no constructor if they try to instantiate the class from Python. However, the current swig version only creates such an __init__ method that only takes self as an argument. If a client calls __init__ using additional arguments or keyword arguments, they will not see the "No constructor defined" exception, but will instead get the following: TypeError: __init__() takes exactly 1 argument (2 given) This exception gives no indication that the real problem is that there is no constructor defined. I am submitting a patch to python.cxx that replaces this __init__(self) with __init__(self, *args, **kwargs), which will result in the more informative AttributeError, regardless of how many arguments are passed into __init__. ---------------------------------------------------------------------- >Comment By: William Fulton (wsfulton) Date: 2008-03-26 20:44 Message: Logged In: YES user_id=242951 Originator: NO Thanks, applied for swig-1.3.35 ---------------------------------------------------------------------- Comment By: Casey Raymondson (brzrkr0) Date: 2008-03-24 22:37 Message: Logged In: YES user_id=1684735 Originator: YES File Added: test_case.zip ---------------------------------------------------------------------- Comment By: Casey Raymondson (brzrkr0) Date: 2008-03-24 18:18 Message: Logged In: YES user_id=1684735 Originator: YES The patch was created against the current head (r10319) in subversion. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=301645&aid=1924524&group_id=1645 |