On 2008-01-10 14:31, Eric Smith wrote: > (I'm posting to python-dev, because this isn't strictly 3.0 related. > Hopefully most people read it in addition to python-3000). > > I'm working on backporting the changes I made for PEP 3101 (Advanced > String Formatting) to the trunk, in order to meet the pre-PyCon release > date for 2.6a1. > > I have a few questions about how I should handle str/unicode. 3.0 was > pretty easy, because everything was unicode.
Since this is a new feature, why bother with strings at all (even in 2.6) ? Use Unicode throughout and be done with it. > 1: How should the builtin format() work? It takes 2 parameters, an > object o and a string s, and returns o.__format__(s). If s is None, it > returns o.__format__(empty_string). In 3.0, the empty string is of > course unicode. For 2.6, should I use u'' or ''? > > > 2: In 3.0, object.__format__() is essentially this: > > class object: > def __format__(self, format_spec): > return format(str(self), format_spec) > > In 2.6, I assume it should be the equivalent of: > > class object: > def __format__(self, format_spec): > if isinstance(format_spec, str): > return format(str(self), format_spec) > elif isinstance(format_spec, unicode): > return format(unicode(self), format_spec) > else: > error > > Does that seem right? > > > 3: Every overridden __format__() method is going to have to check for > string or unicode, just like object.__format() does, and return either a > string or unicode object, appropriately. I don't see any way around > this, but I'd like to hear any thoughts. I guess there aren't all that > many __format__ methods that will be implemented, so this might not be a > big burden. I'll of course implement the built in ones. > > Thanks in advance for any insights. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Jan 10 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-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com