On 2008-05-19 23:03, Martin v. Löwis wrote:
They are convenience methods to the codecs registry
with the added benefit of applying type checks which the codecs
registry does not guarantee since it only manages codecs.
I argue that things that could be parameters to .transform don't
belong into the codec registry in the first place.
Of course, you can write everything directly against the codec
registry or some other specialized interface, but that's not
really what we're after here.
No need for writing directly against the codec registry.
Using some other specialized interface: yes, Yes, YES!
So you would like to force users to write e.g.
def uu(input,errors='strict',filename='<data>',mode=0666):
from cStringIO import StringIO
from binascii import b2a_uu
# using str() because of cStringIO's Unicode undesired Unicode behavior.
infile = StringIO(str(input))
outfile = StringIO()
read = infile.read
write = outfile.write
# Encode
write('begin %o %s\n' % (mode & 0777, filename))
chunk = read(45)
while chunk:
write(b2a_uu(chunk))
chunk = read(45)
write(' \nend\n')
return outfile.getvalue()
(this is adapted Py2 code taken from the uu codec)
instead of writing
output = input.transform('uu')
Fair enough, I've noted your -1.
Still, I don't think the specialized interfaces are very user-friendly.
They do serve their purpose, but common usage just doesn't really bother
with all those details.
And it doesn't end there...
You have to look up, implement and test a similar standardizing function
for all other specialized interfaces you want to use as well - more or
less reinventing the codec interface for every application you write.
Anyway, even without a .transform() method, you can still do:
import codecs
output = codecs.encode(input, 'uu')
However, you then have to do the type checking yourself.
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, May 20 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
_______________________________________________
Python-3000 mailing list
Python-3000@python.org
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe:
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com