On 2011-02-15 15:26:28 +0100, Hanno Schlichting said:

> On Tue, Feb 15, 2011 at 2:35 PM, Michael Howitz <m...@gocept.com> wrote:
>> When I have an acquisition wrapped object, e. g. my_object and call:
>> 
>>>>> unicode(my_object)
>> 
>> The method __str__ of my_object is called even when it has an 
>> __unicode__ method.
> 
> Acquisition wrappers only fill the tp_repr and tp_str slot and as far
> as I can tell there's no tp_unicode slot in PyObject_HEAD_INIT.
> 
> So I'm not sure how to add the C equivalent of a __unicode__ to the
> Wrappertype and XaqWrappertype PyExtensionClasses. It would probably
> have to do a lookup for a __unicode__ method on the wrapped instance,
> call it if it exists and otherwise call its own __str__ - essentially
> duplicating the logic of the string type.

Jup.

> 
> My C-fu is too weak to attempt this.

Heh. My C-fu is also rather weak but I might try it if there are no 
objections.  (or there is somebody hacking it in 5 minutes …)

> The workaround is to call
> unicode(aq_base(my_object)).

Yes, but that's not really an option.

Regards,
-- 
Christian Zagrodnick · c...@gocept.com
gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany
http://gocept.com · tel +49 345 1229889 4 · fax +49 345 1229889 1
Zope and Plone consulting and development


_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to