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.
Created on 2012年01月23日 07:53 by vpelletier, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue13840.patch | meador.inge, 2012年01月25日 03:14 | review | ||
| Messages (6) | |||
|---|---|---|---|
| msg151800 - (view) | Author: Vincent Pelletier (vpelletier) | Date: 2012年01月23日 07:53 | |
ctypes.create_string_buffer documentation[1] says init_or_size parameter should accept a string. As of 3.2, it raises:
>>> import ctypes
>>> ctypes.create_string_buffer('foo')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.2/ctypes/__init__.py", line 59, in create_string_buffer
buf.value = init
TypeError: str/bytes expected instead of str instance
It works fine as of 2.7 (and very probably any 2.x up to ctypes introduction):
>>> import ctypes
>>> ctypes.create_string_buffer('foo')
<ctypes.c_char_Array_4 object at 0x7fbdcb8b95f0>
[1] http://docs.python.org/py3k/library/ctypes.html#ctypes.create_string_buffer
Regards,
Vincent Pelletier
|
|||
| msg151801 - (view) | Author: Georg Brandl (georg.brandl) * (Python committer) | Date: 2012年01月23日 07:58 | |
It should only take bytes; "str" is Unicode in 3.x. So the docs and the error message are wrong, the behavior is correct. Reclassifying as a docs issue. |
|||
| msg151809 - (view) | Author: Vincent Pelletier (vpelletier) | Date: 2012年01月23日 11:20 | |
Thanks for the quick reply. FWIW, in 2.7 doc ctype.create_string_buffer is said to accept unicode objects as parameter. I don't use this personally, so I don't mind 3.x only working on bytes - and already fixed my code accordingly. It's just that I noticed this after your answer. Also, I didn't try to confirm if it actually works. |
|||
| msg151931 - (view) | Author: Meador Inge (meador.inge) * (Python committer) | Date: 2012年01月25日 03:14 | |
The 'create_unicode_buffer' docs are currently wrong too: """ If the first parameter is a bytes object, it is converted into an unicode string according to ctypes conversion rules. """ >>> ctypes.create_unicode_buffer(b'foo') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/meadori/src/python/cpython/Lib/ctypes/__init__.py", line 294, in create_unicode_buffer buf.value = init TypeError: unicode string expected instead of bytes instance The attached patch fixes the documentation and exception messages. Although, it might be more friendly to implement things according to the current docs (i.e. do the conversions). |
|||
| msg152015 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年01月26日 14:49 | |
New changeset be9d02536a81 by Meador Inge in branch '3.2': - Issue #13840: Fix ctypes.create_string_buffer exception message and docs. http://hg.python.org/cpython/rev/be9d02536a81 New changeset 52f68c95e025 by Meador Inge in branch 'default': - Issue #13840: Fix ctypes.create_string_buffer exception message and docs. http://hg.python.org/cpython/rev/52f68c95e025 |
|||
| msg152016 - (view) | Author: Meador Inge (meador.inge) * (Python committer) | Date: 2012年01月26日 14:50 | |
I just fixed the docs and error message for now. I might revisit the ASCII decoding later. Thanks for the bug report Vincent. |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:25 | admin | set | github: 58048 |
| 2012年01月26日 14:50:54 | meador.inge | set | status: open -> closed resolution: fixed messages: + msg152016 stage: patch review -> resolved |
| 2012年01月26日 14:49:36 | python-dev | set | nosy:
+ python-dev messages: + msg152015 |
| 2012年01月25日 03:14:25 | meador.inge | set | files:
+ issue13840.patch versions: + Python 3.3 messages: + msg151931 components: + ctypes keywords: + patch stage: patch review |
| 2012年01月24日 19:23:15 | meador.inge | set | nosy:
+ meador.inge |
| 2012年01月23日 11:20:09 | vpelletier | set | messages: + msg151809 |
| 2012年01月23日 07:58:50 | georg.brandl | set | nosy:
+ georg.brandl, docs@python messages: + msg151801 assignee: docs@python components: + Documentation, - ctypes |
| 2012年01月23日 07:53:07 | vpelletier | create | |