[Matplotlib-devel] Python 2.7 build failing due to Unicode characters...
Chris Barker
chris.barker at noaa.gov
Mon Sep 11 16:56:17 EDT 2017
On Fri, Sep 8, 2017 at 2:11 PM, Jody Klymak <jklymak at uvic.ca> wrote:
> Unfortunately, that is the problem. kiwi, which is written in CPP, has a
> check for python version:
>
> #if PY_MAJOR_VERSION >= 3
> #define FROM_STRING PyUnicode_FromString
> #else
> #define FROM_STRING PyString_FromString
> #endif
>
> ouch! IMHO, they made a major mistake here -- they should have used
Unicode in both versions, and cast a py2 string to unicode if need be.
> So it can handle Unicode, but has no way to know it *should* handle
> Unicode if we are using python 2.7 and unicode_literals.
>
actually, this looks like it can't handle unicode in the CPP code under py2
at all :-(
> I’ve opened an issue with them,
> <https://github.com/nucleic/kiwi/issues/39> though of course if someone
> here had expertise in this it’d be very helpful. Worst case scenario I can
> just cast every call to str, it just makes the code a bit of a mess.
>
unless they change the cpp, I think you'll have to do that. Then prepare
yourself for mysterious encoding errors to pop up later on ....
:-(
-CHB
> Now, whether or not this would fix your problem or not, I haven't a clue.
>
> the error is:
TypeError: Expected object of typefloat,
int, or long. Got object of type unicode instead.
are you sure this is a unicode instead of string problem? MAybe you need to
call float() or int() on the value before passing it in.
-CHB
> Am I supposed to put # -*- coding: utf-8 -*- at the top of every source
> that might create a string that calls these functions?
>
> that will make no difference.
> Or should I convert
> the string somehow in my wrappers before passing down?
>
> yeah, probably.
> Or does from
> __future__ import unicode_literals do this?
>
> what that does is make text literals, like:
"this is some text"
a unicode object, rather than a py2string object -- but if the string comes
from somewhere else, it makes no difference.
But if that IS in the source, then you will get a lot more unicode objects
getting passed around.
-CHB
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-devel/attachments/20170911/95a3377d/attachment.html>
More information about the Matplotlib-devel
mailing list