Re: [Matplotlib-users] Strange error after installing matplotlib from macports

2009-09-15 Thread Damon McDougall
Hi Jouni,

Wow, that worked a treat. Thank you very much! Maybe you should post  
that to the -devel mailing list, too!

On the computer that this bug didn't occur, the ~/Library/Fonts  
directory is completely empty! I wonder where it is looking for  
lcmssi8.afm if it isn't in ~/Library/Fonts

Yeah I didn't want to play around with the installed files Macports  
creates, so I installed matplotlib from svn and, also since I don't  
know how to apply a patch, I just edited the afm.py to make your  
changes. This worked fine, and I no longer get the error!

Also, as I now have produced a graph (just a sin wave) as a test, the  
~/.matplotlib directory contains some files (fontList.cache and  
tex.cache). It seems as though these files are created to aid in the  
speed of producing plots in the future by saving previously produced  
text output.

Thank you very much, Jouni!
Regards,
--Damon

On 15 Sep 2009, at 12:49, Jouni K. Seppänen wrote:

> Damon McDougall  writes:
>
>> (Pdb) p fh
>> 
> That's a font that probably came with a TeX distribution and somehow  
> got
> installed in your font library.
>
>> (Pdb) p line
>> 'C 0 ; WX 708.333 ; N Gamma ; B 0 0 836.364 684.027 ;'
>
> Failing on this line is a bug in matplotlib, since the AFM spec says
> that bounding-box coordinates are "numbers", not "integers".  
> Apparently
> not many AFM files use that precise bounding boxes, since we haven't  
> run
> into this before.
>
> I don't know how the MacPorts packaging system would react to  
> modifying
> installed files, but I imagine that applying the attached patch should
> fix this.
>
>> Also, after some curiosity, I realised the file ~/.matplotlib/
>> fontList.cache doesn't exist. In fact, the ~/.matplotlib directory is
>> empty, there aren't even any hidden files. On my other computer,
>> matplotlib works fine and the ~/.matplotlib directory contains three
>> files: fontList.cache, fontManager.cache and tex.cache.
>
> Maybe the files just didn't get written into your directory, since
> matplotlib bailed out at the first failure.
>
> Index: lib/matplotlib/afm.py
> ===
> --- lib/matplotlib/afm.py (revision 7750)
> +++ lib/matplotlib/afm.py (working copy)
> @@ -165,7 +165,8 @@
> num = _to_int(vals[0].split()[1])
> wx = _to_float(vals[1].split()[1])
> name = vals[2].split()[1]
> -bbox = _to_list_of_ints(vals[3][2:])
> +bbox = _to_list_of_floats(vals[3][2:])
> +bbox = map(int, bbox)
> # Workaround: If the character name is 'Euro', give it the  
> corresponding
> # character code, according to WinAnsiEncoding (see PDF  
> Reference).
> if name == 'Euro':
>
> -- 
> Jouni K. Seppänen
> http://www.iki.fi/jks
> --
> Come build with us! The BlackBerry® Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart  
> your
> developing skills, take BlackBerry mobile applications to market and  
> stay
> ahead of the curve. Join us from November 9-12, 2009. Register  
> now!
> http://p.sf.net/sfu/devconf___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Strange error after installing matplotlib from macports

2009-09-15 Thread Jouni K . Seppänen
Damon McDougall  writes:

> (Pdb) p fh
>  (Pdb) p line
> 'C 0 ; WX 708.333 ; N Gamma ; B 0 0 836.364 684.027 ;'

Failing on this line is a bug in matplotlib, since the AFM spec says
that bounding-box coordinates are "numbers", not "integers". Apparently
not many AFM files use that precise bounding boxes, since we haven't run
into this before.

I don't know how the MacPorts packaging system would react to modifying
installed files, but I imagine that applying the attached patch should
fix this.

> Also, after some curiosity, I realised the file ~/.matplotlib/ 
> fontList.cache doesn't exist. In fact, the ~/.matplotlib directory is  
> empty, there aren't even any hidden files. On my other computer,  
> matplotlib works fine and the ~/.matplotlib directory contains three  
> files: fontList.cache, fontManager.cache and tex.cache.

Maybe the files just didn't get written into your directory, since
matplotlib bailed out at the first failure.

Index: lib/matplotlib/afm.py
===
--- lib/matplotlib/afm.py	(revision 7750)
+++ lib/matplotlib/afm.py	(working copy)
@@ -165,7 +165,8 @@
 num = _to_int(vals[0].split()[1])
 wx = _to_float(vals[1].split()[1])
 name = vals[2].split()[1]
-bbox = _to_list_of_ints(vals[3][2:])
+bbox = _to_list_of_floats(vals[3][2:])
+bbox = map(int, bbox)
 # Workaround: If the character name is 'Euro', give it the corresponding
 # character code, according to WinAnsiEncoding (see PDF Reference).
 if name == 'Euro':

-- 
Jouni K. Seppänen
http://www.iki.fi/jks
--
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Strange error after installing matplotlib from macports

2009-09-15 Thread Damon McDougall
Hi Jouni,

Sure. Here is the output from your suggestion:

Python 2.5.4 (r254:67916, Sep 15 2009, 11:16:42)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
 >>> from pdb import pm
 >>> from matplotlib.figure import Figure
Traceback (most recent call last):
   File "", line 1, in 
   File "/opt/local/lib/python2.5/site-packages/matplotlib/figure.py",  
line 19, in 
 from axes import Axes, SubplotBase, subplot_class_factory
   File "/opt/local/lib/python2.5/site-packages/matplotlib/axes.py",  
line 12, in 
 import matplotlib.axis as maxis
   File "/opt/local/lib/python2.5/site-packages/matplotlib/axis.py",  
line 10, in 
 import matplotlib.font_manager as font_manager
   File "/opt/local/lib/python2.5/site-packages/matplotlib/ 
font_manager.py", line 1301, in 
 _rebuild()
   File "/opt/local/lib/python2.5/site-packages/matplotlib/ 
font_manager.py", line 1292, in _rebuild
 fontManager = FontManager()
   File "/opt/local/lib/python2.5/site-packages/matplotlib/ 
font_manager.py", line 1010, in __init__
 self.afmlist = createFontList(self.afmfiles, fontext='afm')
   File "/opt/local/lib/python2.5/site-packages/matplotlib/ 
font_manager.py", line 578, in createFontList
 font = afm.AFM(fh)
   File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py",  
line 294, in __init__
 parse_afm(fh)
   File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py",  
line 282, in parse_afm
 dcmetrics_ascii, dcmetrics_name = _parse_char_metrics(fh)
   File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py",  
line 168, in _parse_char_metrics
 bbox = _to_list_of_ints(vals[3][2:])
   File "/opt/local/lib/python2.5/site-packages/matplotlib/afm.py",  
line 47, in _to_list_of_ints
 return [_to_int(val) for val in s.split()]
ValueError: invalid literal for int() with base 10: '836.364'
 >>> pm()
 > /opt/local/lib/python2.5/site-packages/matplotlib/afm.py(47) 
_to_list_of_ints()
-> return [_to_int(val) for val in s.split()]
(Pdb) up
 > /opt/local/lib/python2.5/site-packages/matplotlib/afm.py(168) 
_parse_char_metrics()
-> bbox = _to_list_of_ints(vals[3][2:])
(Pdb) p fh

(Pdb) p line
'C 0 ; WX 708.333 ; N Gamma ; B 0 0 836.364 684.027 ;'
(Pdb) p vals
['C 0 ', ' WX 708.333 ', ' N Gamma ', ' B 0 0 836.364 684.027 ']


Also, after some curiosity, I realised the file ~/.matplotlib/ 
fontList.cache doesn't exist. In fact, the ~/.matplotlib directory is  
empty, there aren't even any hidden files. On my other computer,  
matplotlib works fine and the ~/.matplotlib directory contains three  
files: fontList.cache, fontManager.cache and tex.cache.

Hope this explains more. Thanks in advance for any help.
Regards,
--Damon

On 15 Sep 2009, at 11:42, Jouni K. Seppänen wrote:

> Damon McDougall  writes:
>
> from matplotlib.figure import Figure
>> ValueError: invalid literal for int() with base 10: '836.364'
>>
>> I have no clue what is going on. Does anybody have any ideas?
>
> Could you do the following: (if you already exited that Python shell
> and can't reproduce the problem any longer, you can delete your
> ~/.matplotlib/fontList.cache and try again)
>
> from pdb import pm
> pm()
>
> This should get you to a debugger. Then type:
>
> up
> p fh
> p line
> p vals
>
> to get some more information on what is going wrong.
>
> -- 
> Jouni K. Seppänen
> http://www.iki.fi/jks
>
>
> --
> Come build with us! The BlackBerry® Developer Conference in SF, CA
> is the only developer event you need to attend this year. Jumpstart  
> your
> developing skills, take BlackBerry mobile applications to market and  
> stay
> ahead of the curve. Join us from November 9-12, 2009. Register  
> now!
> http://p.sf.net/sfu/devconf
> ___
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Strange error after installing matplotlib from macports

2009-09-15 Thread Jouni K . Seppänen
Damon McDougall  writes:

>  >>> from matplotlib.figure import Figure
> ValueError: invalid literal for int() with base 10: '836.364'
>
> I have no clue what is going on. Does anybody have any ideas?

Could you do the following: (if you already exited that Python shell 
and can't reproduce the problem any longer, you can delete your
~/.matplotlib/fontList.cache and try again)

from pdb import pm
pm()

This should get you to a debugger. Then type:

up
p fh
p line
p vals

to get some more information on what is going wrong.

-- 
Jouni K. Seppänen
http://www.iki.fi/jks


--
Come build with us! The BlackBerry® Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9-12, 2009. Register now!
http://p.sf.net/sfu/devconf
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users