Issue 8966: ctypes: remove implicit conversion between unicode and bytes (original) (raw)

Created on 2010-06-10 23:03 by vstinner, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
ctypes_conversion.patch vstinner,2010-06-10 23:03
ctypes_s_set.patch vstinner,2010-06-10 23:03
ctypes_tests-2.patch vstinner,2010-06-11 21:58
Messages (4)
msg107499 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-06-10 23:03
ctypes doesn't have strict separation between bytes and characters, whereas Python3 splitted str/unicode of Python2 into bytes/str which a strict separation. The result is that sometimes it works (no error), sometimes it fails (the first time that the user inserts a non-ASCII character). I wrote 3 patches: - ctypes_s_set.patch: fix s_set(), return an unicode string instead of a bytes string - ctypes_conversion.patch: remove ctypes.set_conversion_mode() and all code using it (remove the implicit conversions) - ctypes_tests.patch: fix all tests according the changes introduced by the two previous patches ctypes_s_set.patch is trivial and fixes a real bug. ctypes_conversion.patch does basically remove code. ctypes_tests.patch is the biggest part because the test suite is mostly based on the implicit conversion. Except the parts removing the calls to ctypes.set_conversion_mode() and the tests testing the implicit conversion, ctypes_tests.patch can be commited alone because it improves the test suite (use the right types).
msg107590 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-06-11 21:53
I commited ctypes_s_set.patch in Python 3.2 (r81911) because it does fix a real bug.
msg107591 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-06-11 21:58
Update ctypes_tests.patch against last changes: ctypes_tests-2.patch.
msg111750 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2010-07-28 00:22
I commited both patches to 3.2, but I splitted them in a different way: - r83191 "fixes" tests (remove implicit conversion) - r83195 removes the implicit conversion in ctypes So it's easier to review the commits and revert the second commit.
History
Date User Action Args
2022-04-11 14:57:02 admin set github: 53212
2010-07-28 00:22:40 vstinner set status: open -> closedresolution: fixedmessages: +
2010-07-27 21:47:51 flox set nosy: + flox
2010-06-11 21:58:42 vstinner set files: - ctypes_tests.patch
2010-06-11 21:58:34 vstinner set files: + ctypes_tests-2.patchmessages: +
2010-06-11 21:53:39 vstinner set messages: +
2010-06-10 23:04:03 vstinner set files: - ctypes_conversion.patch
2010-06-10 23:03:59 vstinner set files: + ctypes_tests.patch
2010-06-10 23:03:51 vstinner set files: + ctypes_s_set.patch
2010-06-10 23:03:41 vstinner set files: + ctypes_conversion.patch
2010-06-10 23:03:25 vstinner create