I tried the following command in both my app (where URL) and the welcome app (where URL does not fail):
{{=gluon.html._gURL(request).__name__}} and the result for both apps was: _URL Does that provide any clues? On Sep 18, 5:03 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > Massimo, any ideas? > > On Sep 18, 2010, at 1:24 PM, Avik Basu wrote: > > > > > > > > > I put this: > > {{=URL.__name__}} > > > in the view of my index page and it showed > > URL > > > (not _URL as you said) > > > Also, I don't know if its helpful to mention that the latest format > > for the URL function is not working anywhere in my app, not just in > > appadmin. So, if I put: > > > {{=URL('index')}} > > > in my index page, I get the same syntax error that I had in appadmin. > > That's good to know. > > You could try this (you'll need to import gluon.html): > > {{=gluon.html._gURL(request).__name__}} > > That's what the global URL should be. > > I think you were saying that this works OK in the other apps, right? You > could stick similar logic into welcome, for comparison purposes, good vs bad. > You might have to delete the welcome/compiled directory. > > By way of background, the URL logic was updated not all that long ago. Have a > look at html._gURL, and then compileapp.build_environment() to see how it's > being used. URL is being replaced by the closure (I think it's a closure) > _gURL(request), so the value of request gets bound to the URL call, without > having to supply it all the time. > > Also, a single argument to the original URL is treated as the application, > whereas the closure treats it as the function. We see the former in the > syntax error print below, more evidence that we're not invoking the closure. > > > > > > > On Sep 18, 4:10 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > >> On Sep 18, 2010, at 12:52 PM, Avik Basu wrote: > > >>> Line 219 of gluon/compileapp.py is as you described it. I also deleted > >>> the whole gluon directory and downloaded the latest source of web2py > >>> before restarting the server. Also, as far as I can tell, I am not > >>> doing anything tricky with Globals or the URL symbol in my models. > > >>> I now get the following syntax error: > > >>> SyntaxError: URL: a=index c=None f=None r=None u=URL > > >> Thanks. > > >> I realized after I sent that last request that the __name__ of URL might > >> not be significant at this point, because we're inside the URL() function. > > >> This might be worth a try. In appadmin.py, near the beginning (after the > >> imports, but before response.menu is set): > > >> logger = logging.getLogger('web2py') > >> logger.warning('appadmin url.name=%s' % URL.__name__) > > >> What you *should* see is _URL. That's what I see if I stick it in my own > >> appadmin. > > >>> On Sep 18, 3:33 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > >>>> On Sep 18, 2010, at 11:52 AM, Avik Basu wrote: > > >>>>> After restarting the server, I get the following error: > > >>>>> SyntaxError: URL: a=index c=None f=None r=None > > >>>> I was afraid of that, and I can't explain it. > > >>>> Please check that line 219 of gluon/compileapp.py is: > > >>>> environment['URL'] = html._gURL(request) > > >>>> And you might want to quit your server, delete all the .pyc files in > >>>> gluon, and restart. > > >>>> Do you do anything tricky with globals() or the URL symbol in your > >>>> models? > > >>>> And let's try one more printing attempt: > > >>>> if not (application and controller and function): > >>>> if r: > >>>> msg = 'URL: a=%s c=%s f=%s r.a=%s r.c=%s r.f=%s' % > >>>> (application,controller,function,r.application,r.controller,r.function) > >>>> else: > >>>> msg = 'URL: a=%s c=%s f=%s r=%s u=%s' % > >>>> (application,controller,function,r,URL.__name__) > >>>> raise SyntaxError, msg > > >>>>> On Sep 18, 2:46 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > >>>>>> On Sep 18, 2010, at 11:40 AM, Avik Basu wrote: > > >>>>>>> When I replace the code in gluon/html.py, I still keep getting the > >>>>>>> same SyntaxError ('not enough information to build the url') which > >>>>>>> seems strange since that is not even in the code anymore. > > >>>>>>> I am sort of new to debugging the gluon code so I maybe making some > >>>>>>> simple mistake. I did delete the html.pyc file. Do I need to restart > >>>>>>> the server? > > >>>>>> I would assume so, given the message, and especially if you're not > >>>>>> seeing html.pyc getting recreated. > > >>>>>>> On Sep 18, 2:31 pm, Jonathan Lundell <jlund...@pobox.com> wrote: > >>>>>>>> On Sep 18, 2010, at 9:46 AM, Avik Basu wrote: > > >>>>>>>>> Sure, I'm happy to help debug. Send me the print statements when > >>>>>>>>> you > >>>>>>>>> get a chance. > > >>>>>>>> FWIW, I just did the same thing (move the current appadmin into my > >>>>>>>> own app) and it seems to work OK; at least I can access > >>>>>>>> appadmin/index OK.