<div dir="ltr">Hi Arthur!<br><br>Good point about documentation, I think we should change it as you said.<br><br>Regarding the exception, this is the standard Python behavior. Consider this example:<br><br>x = 10<br>def func():<br>    print(x)<br>    x = 5<br><br>func()<br><br>If you run this example, you'll get the exception "UnboundLocalError: local variable 'x' referenced before assignment" in the first line of the function. This is because when Python parses the program text, it sees "x = 5" assignment and assumes that the x is a local name. It then uses name x as a local name during all function body, even before "x = 5" line. You cannot use name x as a global name in the beginning of the function and as a local name in the end.<br><br>See for example: <a href="http://stackoverflow.com/questions/9264763/unboundlocalerror-in-python">http://stackoverflow.com/questions/9264763/unboundlocalerror-in-python</a><br><a href="http://stackoverflow.com/questions/21456739/unboundlocalerror-local-variable-l-referenced-before-assignment-python">http://stackoverflow.com/questions/21456739/unboundlocalerror-local-variable-l-referenced-before-assignment-python</a><br><br><br>Regards,<br>Alexander<br><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 27, 2014 at 9:27 PM, Goldberg, Arthur P <span dir="ltr"><<a href="mailto:arthur.p.goldberg@mssm.edu" target="_blank">arthur.p.goldberg@mssm.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>
<div style="word-wrap:break-word">
<div>Hi guys</div>
<div><br>
</div>
<div> Generally, pony has been great. Thanks!</div>
<div><br>
</div>
<div>However I think this is a bug. I ran the attached program, and it generates this call stack. The error is reported in line 202 but it is actually in line 203.  I know that the ID in 203 overrides the db.entity class of that name, but I would think that
 the error does not exist until line 203.</div>
<div><br>
</div>
<div>Traceback (most recent call last):</div>
<div>  File "../geneticsSubjects.py", line 212, in <module></div>
<div>    dumpIDs()</div>
<div>  File "<auto generated wrapper of dumpIDs() function>", line 2, in dumpIDs</div>
<div>  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pony/orm/core.py", line 345, in new_func</div>
<div>    try: return func(*args, **kwargs)</div>
<div>  File "../geneticsSubjects.py", line 202, in dumpIDs</div>
<div>    print( ID.__header__() )</div>
<div>UnboundLocalError: local variable 'ID' referenced before assignment</div>
<div><br>
</div>
<div><br>
</div>
<div></div>
</div>
<div style="word-wrap:break-word">
<div></div>
<div><br>
</div>
<div> Also, I have a documentation suggestion.for example, your documentation  says:</div>
<div>
<blockquote type="cite">
<pre style="margin-top:0px;margin-bottom:0px;padding:9.5px;font-family:Consolas,Monaco,'Lucida Console','Liberation Mono','DejaVu Sans Mono','Bitstream Vera Sans Mono','Courier New';font-size:15.5555562973022px;color:rgb(51,51,51);line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;border:0px;text-align:justify;background-color:rgb(238,238,236)"><span style="margin:0px;padding:0px;color:rgb(32,74,135);font-weight:bold">for</span> <span style="margin:0px;padding:0px">p</span> <span style="margin:0px;padding:0px;color:rgb(32,74,135);font-weight:bold">in</span> <span style="margin:0px;padding:0px">select</span><span style="margin:0px;padding:0px">(</span><span style="margin:0px;padding:0px">p</span> <span style="margin:0px;padding:0px;color:rgb(32,74,135);font-weight:bold">for</span> <span style="margin:0px;padding:0px">p</span> <span style="margin:0px;padding:0px;color:rgb(32,74,135);font-weight:bold">in</span> <span style="margin:0px;padding:0px">Product</span><span style="margin:0px;padding:0px">):</span>
    <span style="margin:0px;padding:0px;color:rgb(32,74,135);font-weight:bold">print</span> <span style="margin:0px;padding:0px">p</span><span style="margin:0px;padding:0px;color:rgb(206,92,0);font-weight:bold">.</span><span style="margin:0px;padding:0px">name</span><span style="margin:0px;padding:0px">,</span> <span style="margin:0px;padding:0px">p</span><span style="margin:0px;padding:0px;color:rgb(206,92,0);font-weight:bold">.</span><span style="margin:0px;padding:0px">price</span></pre>
</blockquote>
<div> whereas it  is more convenient to say:</div>
</div>
<div><br>
</div>
<div>for p in Product.select():</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>

<br>_______________________________________________<br>
ponyorm-list mailing list<br>
<a href="mailto:ponyorm-list@ponyorm.org">ponyorm-list@ponyorm.org</a><br>
<a href="/ponyorm-list" target="_blank">/ponyorm-list</a><br>
<br></blockquote></div><br></div>