On Wed, 29 Jun 2005 06:38:36 -0400 Kent Johnson <[EMAIL PROTECTED]> wrote:
> Don Parris wrote: > > On Tue, 28 Jun 2005 05:50:54 -0400 > > Kent Johnson <[EMAIL PROTECTED]> wrote: <SNIP> Thanks for the explanation of indentation! I kind of understood that, but wanted to be sure I understood correctly what was happening with the text file inside the for loop. And if that sounds a little loopy, well... :) > > 'Global name "rows" is not defined means that Python doesn't know what > 'rows' means - you haven't assigned any value to that name. I'm surprised > your code didn't work when you add the line "rows = Results" as indicated > above; what error do you get then? But a simpler way is just to use > Results in the call to indent: > > mbrPhone.write(indent(Results, hasHeader=False, separateRows=False, > prefix='| ', postfix=' |')) > > What happens if you try that? > Well this is kind of instructive. Assigning rows = Results and using Results as an argument to indent() produce the same traceback message. I was right that the "rows" argument needed the value of "Results", so I *am* learning something. However, it seems that the function doesn't like the value I give it. ### Using Results as the argument to indent() ### Traceback (most recent call last): File "ekklesia.py", line 165, in ? Main() File "ekklesia.py", line 160, in Main RunMenu(Menu_Main) File "ekklesia.py", line 31, in RunMenu if len(MenuList[sel]) == 3: MenuList[sel][1](MenuList[sel][2]) File "ekklesia.py", line 32, in RunMenu else: MenuList[sel][1]() File "/home/donp/python/ekklesia/ekklesia_db.py", line 63, in mbr_Phone prefix='| ', postfix=' |')) File "/home/donp/python/ekklesia/tbl_Tabs.py", line 24, in indent logicalRows = [rowWrapper(row) for row in rows] File "/home/donp/python/ekklesia/tbl_Tabs.py", line 21, in rowWrapper newRows = [wrapfunc(item).split('\n') for item in row] AttributeError: 'NoneType' object has no attribute 'split' ### end traceback ### My SQL query functions return a tuple, so indent() has to recognize that much. I suspected this has to do with the wrapfunc argument. I had dropped it at some point, thinking that would help me grasp the problem. I fed it rows(using the rows= Results at the moment), and got this traceback: ### revised function call and traceback ### mbrPhone.write(indent(rows, hasHeader=False, separateRows=False, prefix='| ', postfix=' |'))wrapfunc=lambda x:wrap_onspace(rows, 12)) Traceback (most recent call last): File "ekklesia.py", line 9, in ? from ekklesia_db import * File "/home/donp/python/ekklesia/ekklesia_db.py", line 64 mbrPhone.close() ^ SyntaxError: invalid syntax ### end function call and traceback ### mbrPhone.close() is properly indented. I even put the whole indent() call on one single line. So now I'm not sure where to go. I know that error messages can sometimes be misleading. I also know that close() takes exactly 0 arguments. So maybe I need to look back at indent()? > > BTW, I really appreciate your patience and willingness to help me > > understand this. > > No problem, that's what we do here. At least on a good day :-) > > > If I had ever dreamed that I would have a desire to program 20 years > > after the fact, I would have stopped passing notes in Math class. I do > > it well, but hate it. Yet, I find myself drawn further and further into > > the code, actually wanting to know more about it - why it does what it > > does. > > I don't know about the 'hating it' part, but you are certainly not alone > in finding yourself fascinated with programming in Python. But snakes can > do that, can't they? We are all trapped by its hypnotic stare... ;-) > You bet! > BTW have you found a tutorial you like? There are many free Python > tutorials, take a look at this page: > http://wiki.python.org/moin/BeginnersGuide/NonProgrammers > I've read the Python tutorial, Alan's tutorial, and have worked through some of the others as well. It looks simple enough, but when I try things out for myself, I find it difficult to see how the examples apply in my situation. Which is why I sought out this list. My Guess is that I need to "just do it" for a while before it'll come to me. Don -- evangelinux GNU Evangelist http://matheteuo.org/ http://chaddb.sourceforge.net/ "Free software is like God's love - you can share it with anyone anytime anywhere." _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor