[reportlab-users] Puzzling Error

Jerome Alet reportlab-users@reportlab.com
Wed, 6 Nov 2002 14:51:06 +0100


On Wed, Nov 06, 2002 at 11:37:55AM +0000, Robin Becker wrote:
> In article <20021106110654.GB12409@mail.librelogiciel.com>, Jerome Alet
> <alet@librelogiciel.com> writes
> >
> >however two subsequent accesses to the same attribute produce two 
> >different instances to represent the very same value, and so the 
> >hash value created to access to the font dictionnary in 
> >pdfmetrics.py is different each time, so the font is never found. 
> >
> >the str() call solved this.
> >
> >it seems that 2.2 is intelligent enough to either return the previous
> >instance, or more probably put the new one at the same physical location
> >than the old one (who was probably automatically deleted when unused).
> ......
> I guess it's just luck. I seem to remember from somewhere that string
> constants that look like identifiers get interned, but if the string is
> being assembled some how that won't always be done.

It seems I've got a working version with 1.5.2 which requires no
modification to pdfmetrics.py (I've deleted the str() calls and the
string.lower() call), so we're back to the pre-pycanvas version

Instead of redefining __str__ I've redefined __hash__ in pycanvas.py 
so all is automatic and transparent

the test suite seems to pass with 1.5.2.

Can I send you the pdfmetrics.py and pycanvas.py code privately 
in order for you to double check this ?

thanks in advance

Jerome Alet