On Mon, Dec 7, 2009 at 08:01, Victor Subervi <victorsube...@gmail.com> wrote: > On Mon, Dec 7, 2009 at 11:29 AM, Carsten Haese <carsten.ha...@gmail.com> > wrote: >> >> Victor Subervi wrote: >> > I'll do my best to remember to do that from >> > now on to: >> > >> >>>> allTrees = [{'prodCat1': {}, 'prodCat2': {}}, {'presCat1': {}, >> > 'presCat2': {}}] >> >>>> level = 0 >> >>>> tree = [] >> >>>> for aTree in allTrees: >> > ... for name in sorted(aTree.keys()): >> > ... tree.append("%s%s" % ("\t" * level, name)) >> > ... print aTree([name], level + 1) >> > ... >> > Traceback (most recent call last): >> > File "<stdin>", line 4, in ? >> > TypeError: 'dict' object is not callable >> >>>> >> > >> > So It would seem I need to either figure a way to coerce the dicts into >> > being tuples a la: >> > http://code.activestate.com/recipes/361668/ >> > (which looks like a lot of work) or I need to supply tuples instead of >> > dicts. >> >> No. You need to test the actual code you want to test. The code you >> typed manually has some very significant differences from the code you >> first posted. For example, one uses <<printTree(aTree[name], level + >> 1)>>, and the other uses <<print aTree([name], level + 1)>>. The >> conclusions you are drawing from this test are meaningless guesses that >> have nothing to do with solving your actual problem. > > Another screw-up. Now that I'm at a computer where I can right click to > paste the correctly copied code, it executed in the shell just fine. For > whatever reason, the page itself no longer throws an error, although it's > still not working properly. >> >> > The dicts come from here: >> > >> > cursor.execute('select category from categories%s order by Category;' % >> > (store[0].upper() + store[1:])) >> > theTree = expand(cursor.fetchall()) >> > >> > which is the magical code supplied by the lister that does all the heavy >> > lifting but that I don't understand :-} >> > Suggestions? >> >> Start by understanding the code you're using. > > Well, if you could point me in the right direction, it would be appreciated. > I've tried googling this with no luck. Apparently, "expand" is not a > well-documented term in python and, of course, it's an often-used term in > English, which further confuses the issue. Yes, I would like to understand > this code.
Coming from PHP, I can see why you might be confused. Python is not PHP -- Python has namespaces and uses them, unlike PHP which IIRC shoves nearly everything into the default namespace. So you need to start by figuring out where the 'expand' function came from -- I'm pretty sure it's not a builtin. Look at the import statements in the file to see if the function has been specifically imported from somewhere, or if there's a statement of the form "from [module] import *". You will then know the module it came from, and be able to either look at the code or the documentation for that module, which should tell you more. -------- Rami Chowdhury "Never assume malice when stupidity will suffice." -- Hanlon's Razor 408-597-7068 (US) / 07875-841-046 (UK) / 0189-245544 (BD) -- http://mail.python.org/mailman/listinfo/python-list