A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2010-June/100793.html below:

[Python-Dev] bytes

[Python-Dev] bytes / unicodeP.J. Eby pje at telecommunity.com
Mon Jun 21 19:29:55 CEST 2010
At 05:49 PM 6/21/2010 +0100, Michael Foord wrote:
>Why is your proposed bstr wrapper not practical to implement outside 
>the core and use in your own libraries and frameworks?

__contains__ doesn't have a converse operation, so you can't code a 
type that works around this (Python 3.1 shown):

 >>> from os.path import join
 >>> join(b'x','y')
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "c:\Python31\lib\ntpath.py", line 161, in join
     if b[:1] in seps:
TypeError: Type str doesn't support the buffer API
 >>> join('y',b'x')
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "c:\Python31\lib\ntpath.py", line 161, in join
     if b[:1] in seps:
TypeError: 'in <string>' requires string as left operand, not bytes

IOW, only one of these two cases can be worked around by using a bstr 
(or ebytes) that doesn't have support from the core string type.

I'm not sure if the "in" operator is the only case where implementing 
such a type would fail, but it's the most obvious one.  String 
formatting, of both the % and .format() varieties is 
another.  (__rmod__ doesn't help if your bytes object is one of 
several data items in a tuple or dict -- the common case for % formatting.)

More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4