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 lemburg
Recipients lemburg, vstinner
Date 2010-05-28.08:14:40
SpamBayes Score 6.868709e-05
Marked as misclassified No
Message-id <4BFF7B6E.3030804@egenix.com>
In-reply-to <1275002949.14.0.769648340098.issue8839@psf.upfronthosting.co.za>
Content
STINNER Victor wrote:
> 
> New submission from STINNER Victor <victor.stinner@haypocalc.com>:
> 
> "t#" format was introduced by r11803 (11 years ago): "Implement new format character 't#'. This is like s#, accepting an object that implements the buffer interface, but requires a buffer that contains 8-bit character data."
> 
> Python3 now has a strict separation between byte string (bytes and bytearray types) and unicode string (str), and has PyBuffer and PyCapsule APIs. "t#" format can be replaced by "y#" or "y*".
>
> Extract of getarg.c:
> 
>       /*TEO: This can be eliminated --- here only for backward
>         compatibility */
>     case 't': { /* 8-bit character buffer, read-only access */
> 
> In Python, the last function using "t#" is _codecs.charbuffer_encode() and I proposed to remove this function in #8838. We can also patch this function.
> 
> I don't know if third party modules use this format or not. I don't know if it can be just removed or if it should raise a deprecation warning (but who will notice such warning since there are disabled by default?).

Since Python3 completely removed the getcharbuffer interface
to which the "t#" interfaces in Python2, "t#" does indeed no
longer serve any special purpose.

It's probably wise to just map "t#" to "y#" in order to ease
porting extensions from 2.x to 3.x.
History
Date User Action Args
2010-05-28 08:14:57lemburgsetrecipients: + lemburg, vstinner
2010-05-28 08:14:41lemburglinkissue8839 messages
2010-05-28 08:14:40lemburgcreate