homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author perey
Recipients perey
Date 2012年06月04日.05:50:04
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1338789005.54.0.744601187049.issue14999@psf.upfronthosting.co.za>
In-reply-to
Content
The ctypes ArgumentError exception indicates the location of the problem by argument number. It counts arguments starting from 1, not 0 as is typical in Python.
Observed
--------
An example (anonymised) traceback:
 Traceback (most recent call last):
 ...
 foreign_function(a, b, c, d)
 ctypes.ArgumentError: argument 2: <class 'TypeError'>: wrong type
The error here was with the argument "b".
Expected
--------
Standard, zero-indexed Python counting would suggest that argument 2 should mean "c", and "b" would be argument 1.
Rationale
---------
This may be as intended, but for me it violates the principle of least surprise.
I *think* this is the vicinity of the bug:
http://hg.python.org/cpython/file/696d3631a4a1/Modules/_ctypes/callproc.c#l1103
 _ctypes_extend_error(PyExc_ArgError, "argument %d: ", i+1);
If I'm right and the "i+1" (here and/or in subsequent lines) is the cause, that definitely makes it look intentional.
History
Date User Action Args
2012年06月04日 05:50:05pereysetrecipients: + perey
2012年06月04日 05:50:05pereysetmessageid: <1338789005.54.0.744601187049.issue14999@psf.upfronthosting.co.za>
2012年06月04日 05:50:04pereylinkissue14999 messages
2012年06月04日 05:50:04pereycreate

AltStyle によって変換されたページ (->オリジナル) /