[Python-ideas] Alternative Unicode implementations (NSString/NSMutableString)

Jim J. Jewett jimjjewett at gmail.com
Tue Jul 18 18:35:11 EDT 2017


Ronald Oussoren came up with a concrete use case for wanting the
interpreter to consider something a string, even if it isn't
implemented with the default datastructure.

In https://mail.python.org/pipermail/python-ideas/2017-July/046407.html
he writes:

   The reason I need to subclass str: in PyObjC I use
   a subclass of str to represent Objective-C strings
   (NSString/NSMutableString), and I need to keep track
   of the original value; mostly because there are some
   Objective-C APIs that use object identity. The worst
   part is that fully initialising the PyUnicodeObject fields
   often isn’t necessary as a lot of Objective-C strings
   aren’t used as strings in Python code.

The PyUnicodeObject (via its leading PyASCIIObject member) currently
uses 7 flag bits including 2 for kind.  Would it be worth adding an
8th big to indicate that string is a virtual subclass, and that the
internals should not be touched directly?  (This would require
changing some of the macros; at the time of PEP 393 it Martin ruled
YAGNI ... but is this something that might reasonably be reconsidered,
if someone did the work.  Which I am considering, but not committing
to.)

-jJ


More information about the Python-ideas mailing list