On the plus side, there is no longer an error when I apply the patch.  On
the downside, it generates a rather strange symbol instead of a
perpendicular symbol....Let me try to quickly upgrade to 0.99.1.  I did that
and I seem to get the same error...

On Mon, Apr 19, 2010 at 10:49 AM, Michael Droettboom <md...@stsci.edu>wrote:

> Does forcibly casting the path to a string resolve the problem?  i.e.
> applying this patch:
>
> Index: mathtext.py
> ===================================================================
> --- mathtext.py (revision 8216)
> +++ mathtext.py (working copy)
> @@ -597,7 +597,7 @@
>
>        cached_font = self._fonts.get(basename)
>        if cached_font is None:
> -            font = FT2Font(basename)
> +            font = FT2Font(str(basename))
>            cached_font = self.CachedFont(font)
>            self._fonts[basename] = cached_font
>            self._fonts[font.postscript_name] = cached_font
>
> Mike
>
> william ratcliff wrote:
>
>> Mike,
>>
>> The basename is:
>> u'C:\\WINDOWS\\Fonts\\HTOWERTI.TTF'
>>
>> Let me try to find where my matplotlibrc file is located...
>>
>> Thanks,
>> William
>>
>> On Mon, Apr 19, 2010 at 10:22 AM, Michael Droettboom <md...@stsci.edu<mailto:
>> md...@stsci.edu>> wrote:
>>
>>    One might see that error if the path to the font being used
>>    contains non-ascii characters (the "basename" variable in the last
>>    frame of the stack in the stacktrace).  Is that possible?  We may
>>    need to implement the same workaround we use for image files for
>>    loading fonts (which is to open the file with Python and pass a
>>    file handle to C++ rather than passing a string that may contain
>>    Unicode, which is difficult to handle in cross-platform way from
>>    C/C++).
>>
>>    Mike
>>
>>    william ratcliff wrote:
>>
>>        I think the actual error was:
>>        TypeError: cannot return std::string from Unicode object
>>
>>        It was the error returned when I walked through with a debugger...
>>
>>        On Mon, Apr 19, 2010 at 8:51 AM, Michael Droettboom
>>        <md...@stsci.edu <mailto:md...@stsci.edu>
>>        <mailto:md...@stsci.edu <mailto:md...@stsci.edu>>> wrote:
>>
>>           It looks like the end of the traceback -- where the actual
>>           exception is named -- is missing.  Can you repost it in its
>>        entirety?
>>
>>           Mike
>>
>>           william ratcliff wrote:
>>
>>               Hi!  I am using matplotlib 0.99.0 under windows xp.  I
>>        tried
>>               the following:
>>               ax.text(.96,.80,r'$P \perp
>>
>>  
>> Q$',fontsize=18,horizontalalignment='right',verticalalignment='top',transform=ax.transAxes,color='black')
>>                   and get the following error:
>>               (However, in figure labels, symbols using mathtext, such as
>>               theta seem to work fine...)
>>
>>               Thanks,
>>               William
>>
>>               TypeError: cannot return std::string from Unicode object
>>               File
>>
>>  "C:\mytripleaxisproject\trunk\eclipse\src\utilities\bfo_film_fig2.py",
>>               line 301, in <module>
>>                film110()
>>               File
>>
>>  "C:\mytripleaxisproject\trunk\eclipse\src\utilities\bfo_film_fig2.py",
>>               line 157, in film110
>>                plt.show()
>>               File
>>
>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4.py",
>>               line 63, in show
>>                manager.window.show()
>>               File
>>
>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4.py",
>>               line 168, in resizeEvent
>>                self.draw()
>>               File
>>
>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_qt4agg.py",
>>               line 130, in draw
>>                FigureCanvasAgg.draw(self)
>>               File
>>
>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py",
>>               line 314, in draw
>>                self.figure.draw(self.renderer)
>>               File "C:\Python25\Lib\site-packages\matplotlib\artist.py",
>>               line 46, in draw_wrapper
>>                draw(artist, renderer, *kl)
>>               File "C:\Python25\Lib\site-packages\matplotlib\figure.py",
>>               line 774, in draw
>>                for a in self.axes: a.draw(renderer)
>>               File "C:\Python25\Lib\site-packages\matplotlib\artist.py",
>>               line 46, in draw_wrapper
>>                draw(artist, renderer, *kl)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\axes.py", line
>>               1721, in draw
>>                a.draw(renderer)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\text.py", line
>>               515, in draw
>>                bbox, info = self._get_layout(renderer)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\text.py", line
>>               279, in _get_layout
>>                clean_line, self._fontproperties, ismath=ismath)
>>               File
>>
>>  "C:\Python25\Lib\site-packages\matplotlib\backends\backend_agg.py",
>>               line 156, in get_text_width_height_descent
>>                self.mathtext_parser.parse(s, self.dpi, prop)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 2810, in parse
>>                box = self._parser.parse(s, font_output, fontsize, dpi)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 2259, in parse
>>                self._expression.parseString(s)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 1048, in parseString
>>                loc, tokens = self._parse( instring, 0 )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2559, in parseImpl
>>                return self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2307, in parseImpl
>>                loc, exprtokens = e._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2672, in parseImpl
>>                loc, tokens = self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2307, in parseImpl
>>                loc, exprtokens = e._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2756, in parseImpl
>>                loc, tokens = self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2714, in parseImpl
>>                loc, tmptokens = self.expr._parse( instring, preloc,
>>        doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2373, in parseImpl
>>                return maxMatchExp._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2559, in parseImpl
>>                return self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2416, in parseImpl
>>                ret = e._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2559, in parseImpl
>>                return self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2559, in parseImpl
>>                return self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2416, in parseImpl
>>                ret = e._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2293, in parseImpl
>>                loc, resultlist = self.exprs[0]._parse( instring, loc,
>>               doActions, callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2756, in parseImpl
>>                loc, tokens = self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2559, in parseImpl
>>                return self.expr._parse( instring, loc, doActions,
>>               callPreParse=False )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2373, in parseImpl
>>                return maxMatchExp._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 924, in _parseNoCache
>>                loc,tokens = self.parseImpl( instring, preloc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 2416, in parseImpl
>>                ret = e._parse( instring, loc, doActions )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 981, in _parseCache
>>                value = self._parseNoCache( instring, loc, doActions,
>>               callPreParse )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\pyparsing.py",
>>               line 950, in _parseNoCache
>>                tokens = fn( instring, tokensStart, retTokens )
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 2374, in symbol
>>                char = Char(c, self.get_state())
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 1264, in __init__
>>                self._update_metrics()
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 1271, in _update_metrics
>>                self.font, self.font_class, self.c, self.fontsize,
>>        self.dpi)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 446, in get_metrics
>>                info = self._get_info(font, font_class, sym, fontsize,
>>        dpi)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 579, in _get_info
>>                self._get_glyph(fontname, font_class, sym, fontsize)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 697, in _get_glyph
>>                fontname, font_class, sym, fontsize)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 827, in _get_glyph
>>                cached_font = self._get_font(new_fontname)
>>               File
>>        "C:\Python25\Lib\site-packages\matplotlib\mathtext.py",
>>               line 560, in _get_font
>>                font = FT2Font(basename)
>>
>>
>>  ------------------------------------------------------------------------
>>
>>
>>  
>> ------------------------------------------------------------------------------
>>               Download Intel&#174; Parallel Studio Eval
>>               Try the new software tools for yourself. Speed
>>        compiling, find
>>               bugs
>>               proactively, and fine-tune applications for parallel
>>        performance.
>>               See why Intel Parallel Studio got high marks during beta.
>>               http://p.sf.net/sfu/intel-sw-dev
>>
>>  ------------------------------------------------------------------------
>>
>>               _______________________________________________
>>               Matplotlib-users mailing list
>>               Matplotlib-users@lists.sourceforge.net
>>        <mailto:Matplotlib-users@lists.sourceforge.net>
>>               <mailto:Matplotlib-users@lists.sourceforge.net
>>        <mailto:Matplotlib-users@lists.sourceforge.net>>
>>
>>
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>           --     Michael Droettboom
>>           Science Software Branch
>>           Operations and Engineering Division
>>           Space Telescope Science Institute
>>           Operated by AURA for NASA
>>
>>
>>
>>    --     Michael Droettboom
>>    Science Software Branch
>>    Operations and Engineering Division
>>    Space Telescope Science Institute
>>    Operated by AURA for NASA
>>
>>
>>
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>
------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to