[Python-3000] PEP 3138- String representation in Python 3000 (original) (raw)
M.-A. Lemburg mal at egenix.com
Thu May 15 16:22:13 CEST 2008
- Previous message: [Python-3000] PEP 3138- String representation in Python 3000
- Next message: [Python-3000] PEP 3138- String representation in Python 3000
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2008-05-15 15:42, Nick Coghlan wrote:
M.-A. Lemburg wrote:
The .transform() methods would simply check for the corresponding type combination, ie. str.transform() would check for (str, str). str.encode() would check for (str, bytes), bytes.decode() for (bytes, str).
Alternatively, we could just not check the type combinations at all and only apply the result type check.
Note also that both bytearray and bytes provide decode() methods, and will presumably provide transform() methods, so actual type annotations may not be the best way to go about this. I'm not sure I understand. If we went with the approach of checking type annotations on the codec, then would a codec which was only annotated with (bytes, str) on the decode method be usable by bytearray.decode()?
Probably not, but the suggested form allows adding (bytearray, str) if the codec support this as well and bytearray.decode() could check for that combination.
And if we aren't going to check the type annotations before invoking the codec, what's the point in having them at all?
They provide meta-information about the codec capabilities and may be useful in other contexts as well, e.g. if you want to add an .encode() method to some other object.
Better to leave them out entirely, invoke the relevant method of the named codec and see if we get the right type back.
That's an option, yes.
OTOH, if you first decode a 100MB data string using e.g. gzip and then find that the return type doesn't match what you had expected, the added global warming due to wasted CPU heat is going to make you feel rather uncomfortable :-)
-- Marc-Andre Lemburg eGenix.com
Professional Python Services directly from the Source (#1, May 15 2008)
Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
:::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! ::::
eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48
D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
Registered at Amtsgericht Duesseldorf: HRB 46611
- Previous message: [Python-3000] PEP 3138- String representation in Python 3000
- Next message: [Python-3000] PEP 3138- String representation in Python 3000
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]