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

2009-09-15 Thread Jouni K . Seppänen
Damon McDougall damon.mcdoug...@gmail.com 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 BlackBerryreg; 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#45;12, 2009. Register now#33;
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 stdin, line 1, in module
   File /opt/local/lib/python2.5/site-packages/matplotlib/figure.py,  
line 19, in module
 from axes import Axes, SubplotBase, subplot_class_factory
   File /opt/local/lib/python2.5/site-packages/matplotlib/axes.py,  
line 12, in module
 import matplotlib.axis as maxis
   File /opt/local/lib/python2.5/site-packages/matplotlib/axis.py,  
line 10, in module
 import matplotlib.font_manager as font_manager
   File /opt/local/lib/python2.5/site-packages/matplotlib/ 
font_manager.py, line 1301, in module
 _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
closed file '/Users/Damon/Library/Fonts/lcmssi8.afm', mode 'r' at  
0x1019b67b0
(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 damon.mcdoug...@gmail.com 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 BlackBerryreg; 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#45;12, 2009. Register  
 now#33;
 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 BlackBerryreg; 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#45;12, 2009. Register now#33;
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 damon.mcdoug...@gmail.com writes:

 (Pdb) p fh
 closed file '/Users/Damon/Library/Fonts/lcmssi8.afm', mode 'r' at  

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 BlackBerryreg; 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#45;12, 2009. Register now#33;
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,

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 damon.mcdoug...@gmail.com writes:

 (Pdb) p fh
 closed file '/Users/Damon/Library/Fonts/lcmssi8.afm', mode 'r' at

 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 BlackBerryreg; 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#45;12, 2009. Register  
 now#33;
 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 BlackBerryreg; 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#45;12, 2009. Register now#33;
http://p.sf.net/sfu/devconf
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users