On Sep 11, 2009, at 5:36 PM, Dominic Sacré wrote: > Hi, > > I'm trying to make a Pyrex/Cython module that was originally > written for > Python 2.x work with Python 3.x, while at the same time keeping it > compatible with older versions. > > It seems like when using Python 3.x, Cython will automatically replace > 'unicode' with 'str', and 'str' with 'bytes'. Also, string literals > are > interpreted as 'bytes' unless prefixed with 'u'. > However, 'bytes' is not really useful in a context where an actual > string is expected, and causes problems for example when working with > strings passed from Python. > (One of many issues I have run into is the fact that b"foo" != > "foo"...) > > The only solution I've found to at least get most of my code > working is > basically to use unicode for almost everything, but if possible I'd > like > to avoid unicode strings in the 2.x version. > > Is there a sane way to use the native string type (i.e. 'str') in > either > Python version?
Not really, but you can get it: >>> type(list(object.__dict__.keys())[0]) <class 'str'> - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
