[reportlab-users] format error? Boy is that confusing!

Glenn Linderman v+python at g.nevcal.com
Wed May 6 12:41:13 EDT 2015

On 5/6/2015 3:53 AM, Robin Becker wrote:
> On 05/05/2015 22:44, Glenn Linderman wrote:
> .......blem.
>> What makes this stack trace so unintelligible, is that it says 
>> "format not
>> resolved" and then shows a relative URL.  It makes it seem like it is 
>> trying to
>> interpret the URL as a format code (of some unknown sort), and my 
>> thoughts
>> immediately went to the possibility of having omitted the format code 
>> parameter,
>> and supplied the URL as the wrong parameter, somewhere along the 
>> line, and of
>> course doc.build has so many deferred operations that there is little 
>> clue as to
>> where in the document this actually takes place.
> here format appears to refer to a .fmt attribute in the Destination 
> object. Destinations are created when a reference is made to them, but 
> need to be filled in by a later definition so that a click on the tag 
> / link or whatever can jump to the appropriate place. Like <a> in html 
> they are both a link and a target. I assume that the document never 
> saw '../../hc/foo.png' as a target and so the definition of the 
> destination never got carried out.

I don't fully understand the above, but the message did contain the text 
'../../hc/foo.png', so something saw it, and got it into the message.  
The flowable text was '<a href="../../hc/foo.png">'.  So it seems like 
href would be a big clue as to what was supposed to happen?  But I 
realize that at that depth of call stack not everything would 
necessarily be in context.

>> It would be extremely more useful to for the message to say something 
>> like "URL
>> scheme missing" or "unknown scheme" using the terminology for URLs.  
>> If, at the
>> point of error generation, it truly is not known, and cannot easily 
>> be known,
>> whether this is a "format" (whatever that means) or a URL (which is 
>> missing its
>> scheme), then having the message say "format unresolved or URL scheme 
>> missing"
>> would certain be an improvement in clarity at little expense of 
>> reworking the
>> code (just changing a message).
> Since the destination definition never got seen we don't actually know 
> what was intended. I suppose a better error message might be "target 
> of destination with name '../../hc/foo.png' was not defined", however, 
> that doesn't cover the semantics of the case where you just forgot to 
> put in http and the link was to an external. So perhaps we can use
> "missing URL scheme or undefined destination target for xxx"

I'd have understood this one, so it would be an improvement from my 
perspective.  When I saw format, I immediately thought of  "printf" type 
formats, or that sort of thing, a format code that controls text 
arrangement. And maybe that is what is happening at the lowest level of 
the stack, but the '../../hc/foo.png' is certainly not supposed to be 
the format.... it is what is supposed to be formatted.


>> Personally, I have no clue what other cases would cause the message, 
>> that would
>> make "format not resolved" a useful message, but I'm making the 
>> assumption that
>> such a case exists.
>> Here's an abbreviated stack trace:
> ........
>>      if f is None: raise ValueError("format not resolved %s" % 
>> self.name)
>> ValueError: format not resolved ../../hc/foo.png
>>   Errorlevel 1 from bixutls.py.  Exiting.
> /........

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/reportlab-users/attachments/20150506/42e9d513/attachment.html>

More information about the reportlab-users mailing list