It finds all strings in the code, single quote, double quote, triple
single and triple double. The complication is that single quotes for
example, allow escaped single quotes inside, etc.

On Nov 10, 2:55 pm, Timbo <tfarr...@swgen.com> wrote:
> Massimo,
>
> I'm trying to rewrite template.py for Jython and I can't seem to
> figure out what the re_strings regex is doing.  I wrote a routine for
> what I thought it was doing and that puts "\n" all over my pages.  So
> I took it out entirely and things seem OK.
>
> What is re_strings for?
>
> On Nov 10, 8:15 am, Timbo <tfarr...@swgen.com> wrote:
>
> > As it turns out, Java has a fair number of nasty WONT-FIX bugs.
>
> > In my above documented attempt where it couldn't delete the
> > file...there's a WONT-FIX bug for that:
>
> >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4715154
>
> > No wonder ppl hate Java.
>
> > Massimo, are you going to re-work template.py to work around the bug?
> > I know that template.py is kinda touchy when it comes to backward
> > compatibility.  I've looked into this a little more and I'm
> > considering creating a Jython branch as I could really use it.
> > However the two bugs above might cause problems with my application
> > code.  I'll have to look into that.
>
> > -tim
>
> > On Nov 9, 1:15 pm, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > This is clearly a Java bug. A major one. I love the "won't fix"
>
> > > On Nov 9, 12:33 pm, Timbo <tfarr...@swgen.com> wrote:
>
> > > > No difference.
>
> > > > I think this is the bug we're dealing with:
>
> > > >http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050507
>
> > > > Since it's a wont-fix, our only option is to work around it by relying
> > > > less on regexps.  Is that an acceptable solution?
>
> > > > On Nov 9, 11:58 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > another test. in gluon/templates.py
>
> > > > > can you replace
>
> > > > > re_strings = re.compile(r'(?P<name>'
> > > > >                          + r"[uU]?[rR]?'''([^']+|'{1,2}(?!'))*'''|"
> > > > >                          + r"'([^'\\]|\\.)*'|"
> > > > >                          + r'"""([^"]|"{1,2}(?!"))*"""|'
> > > > >                          + r'"([^"\\]|\\.)*")', re.DOTALL)
>
> > > > > with
>
> > > > > re_strings = re.compile(r'(?P<name>'
> > > > >                          + r"[uU]?[rR]?'''([^']|'{1,2}(?!'))*'''|"
> > > > >                          + r"'([^'\\]|\\.)*'|"
> > > > >                          + r'"""([^"]|"{1,2}(?!"))*"""|'
> > > > >                          + r'"([^"\\]|\\.)*")', re.DOTALL)
>
> > > > > Does it make things better?
>
> > > > > Massimo
> > > > > On Nov 9, 11:21 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > The first problem is because you did not upgraded admin in a while 
> > > > > > ;-)
>
> > > > > > cd applications/admin
> > > > > > tar zxvf ../../admin.w2p
>
> > > > > > The second error. Can you help me fix it?
>
> > > > > > Try each one of these models?
>
> > > > > > <html><body>{{='hello world'}</body></html>
>
> > > > > > <html><body>{{='''hello world'''}</body></html>
>
> > > > > > <html><body>{{="hello world"}</body></html>
>
> > > > > > <html><body>{{="""hello world"""}</body></html>
>
> > > > > > which ones break? Any, none? Please email me privately.
>
> > > > > > Massimo
>
> > > > > > On Nov 9, 11:07 am, Timbo <tfarr...@swgen.com> wrote:
>
> > > > > > > OK so I downloaded fresh versions of both.  If put in the above
> > > > > > > workaroudn for the TCP_NODELAY issue.  And upon running I get:
>
> > > > > > > C:\jython2.5.1>jython.bat \web2py2\web2py.py
> > > > > > > WARNING:root:no file locking
> > > > > > > WARNING:root:unable to import dbhash
> > > > > > > WARNING:root:GUI not available because Tk library is not installed
> > > > > > > unpacking apps; this may take a few seconds...
> > > > > > > Traceback (most recent call last):
> > > > > > >   File "\web2py2\web2py.py", line 20, in <module>
> > > > > > >     gluon.widget.start(cron=True)
> > > > > > >   File "C:\web2py2\gluon\widget.py", line 726, in start
> > > > > > >     (options, args) = console()
> > > > > > >   File "C:\web2py2\gluon\widget.py", line 699, in console
> > > > > > >     w2p_unpack('admin.w2p', 'applications/admin/')
> > > > > > >   File "C:\web2py2\gluon\fileutils.py", line 189, in w2p_unpack
> > > > > > >     os.unlink(tarname)
> > > > > > >   File "C:\jython2.5.1\Lib\os.py", line 342, in remove
> > > > > > >     raise OSError(0, "couldn't delete file", path)
> > > > > > > OSError: [Errno 0] couldn't delete file: 'admin.tar'
>
> > > > > > > So I wrapped that in a try-block. The next issue to deal with is a
> > > > > > > lack of sqlite (Welcome app).  That's not difficult but annoying.
> > > > > > > Just delete the db.py model (for now).  And that gets us to the 
> > > > > > > root
> > > > > > > issue I can't get past with any template.  Here's the traceback 
> > > > > > > for
> > > > > > > the Welcome app main page:
>
> > > > > > > Traceback (most recent call last):
> > > > > > >   File "C:\web2py2\gluon\main.py", line 459, in wsgibase
> > > > > > >     serve_controller(request, response, session)
> > > > > > >   File "C:\web2py2\gluon\main.py", line 459, in wsgibase
> > > > > > >     serve_controller(request, response, session)
> > > > > > >   File "C:\web2py2\gluon\main.py", line 206, in serve_controller
> > > > > > >     run_view_in(response._view_environment)
> > > > > > >   File "C:\web2py2\gluon\compileapp.py", line 492, in run_view_in
> > > > > > >     ccode = parse_template(response.view,
> > > > > > >   File "C:\web2py2\gluon\template.py", line 149, in parse_template
> > > > > > >     return parse(text)
> > > > > > >   File "C:\web2py2\gluon\template.py", line 65, in parse
> > > > > > >     text = replace(re_strings, text, lambda x: x.replace('\n', 
> > > > > > > '\\n'))
> > > > > > >   File "C:\web2py2\gluon\template.py", line 77, in replace
> > > > > > >     for item in regex.finditer(text, i):
> > > > > > > RuntimeError: maximum recursion depth exceeded
>
> > > > > > > This is Jython 2.5.1 fresh install, 1.71.2 fresh install with 
> > > > > > > only the
> > > > > > > changes I've mentioned in this post.  There are no bugs for this 
> > > > > > > in
> > > > > > > Jython as the answer has always been "just increase the recursion
> > > > > > > depth". I've tried setting the recursion depth to something
> > > > > > > ridiculously high and that made no difference.
>
> > > > > > > Can anyone else confirm/deny this?  I'm testing on Windows, can 
> > > > > > > we get
> > > > > > > a Linux user to test this?
>
> > > > > > > -tim
>
> > > > > > > On Nov 9, 10:00 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > I cannot reproduce this with jython2.5rc3 on mac.
>
> > > > > > > > On Nov 9, 9:52 am, Timbo <tfarr...@swgen.com> wrote:
>
> > > > > > > > > No need, it blows up for me on the admin interface.  I have 
> > > > > > > > > no special
> > > > > > > > > customizations.  I'm trying this on Sun JRE6/Jython2.5.1 on 
> > > > > > > > > WinXP.
>
> > > > > > > > > On Nov 9, 8:34 am, mdipierro <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > > > Can you send me the view that creates the regex problem in 
> > > > > > > > > > Jython. I
> > > > > > > > > > have seen it before and I thought it was fixed.
>
> > > > > > > > > > On Nov 9, 7:53 am, Timbo <tfarr...@swgen.com> wrote:
>
> > > > > > > > > > > Jython does support TCP_NODELAY, but it does so in the 
> > > > > > > > > > > Java
> > > > > > > > > > > fashion...that is to say only on a client socket.  The 
> > > > > > > > > > > short story is
> > > > > > > > > > > this: most platforms allow you to set socket options to 
> > > > > > > > > > > server
> > > > > > > > > > > (accepting) sockets and the accepted (client) sockets 
> > > > > > > > > > > that come from
> > > > > > > > > > > them inherit the options from the server socket.  This 
> > > > > > > > > > > varies based on
> > > > > > > > > > > platform.  Some platforms inherit all options, some just 
> > > > > > > > > > > TCP_NODELAY.
> > > > > > > > > > > Java is a little different in that it inherits none and 
> > > > > > > > > > > consequently
> > > > > > > > > > > it does not allow setting TCP_NODELAY to a server socket.
>
> > > > > > > > > > > The good news is that it does support it on the client 
> > > > > > > > > > > socket it just
> > > > > > > > > > > that you have to socket.setsockopt() on the client 
> > > > > > > > > > > connection after
> > > > > > > > > > > you accept it.  This behavior is currently up for debate 
> > > > > > > > > > > right now
> > > > > > > > > > > with Jython.  Seehttp://bugs.jython.org/issue1309
>
> > > > > > > > > > > Now the blocker that I ran into with Jython + web2py is 
> > > > > > > > > > > the template
> > > > > > > > > > > module.  web2py templates rely heavily on regexps.  This 
> > > > > > > > > > > is great
> > > > > > > > > > > because it makes them fast...but Jython does something 
> > > > > > > > > > > different with
> > > > > > > > > > > cPython such that everytime I try to render a template, I 
> > > > > > > > > > > get a
> > > > > > > > > > > "Recursion limit exceeded error".  Maybe Regexps are not 
> > > > > > > > > > > the same in
> > > > > > > > > > > Java as in Python (Perl).  This is one I haven't been 
> > > > > > > > > > > able to track
> > > > > > > > > > > down.
>
> > > > > > > > > > > Java (and hence Jython) is great from a concurrency 
> > > > > > > > > > > perspective since
> > > > > > > > > > > it is fully multi-threaded whereas cPython has the GIL to 
> > > > > > > > > > > deal with.
> > > > > > > > > > > It would be awesome if we could find a happy marriage 
> > > > > > > > > > > between web2py
> > > > > > > > > > > templates and Jython.
>
> > > > > > > > > > > -tim
>
> > > > > > > > > > > On Nov 9, 3:04 am, Vasile Ermicioi <elff...@gmail.com> 
> > > > > > > > > > > wrote:
>
> > > > > > > > > > > > I have to convince someone that python is better than 
> > > > > > > > > > > > Java (and even can
> > > > > > > > > > > > work with Java) -
> > > > > > > > > > > > Jython+Web2py is my best argument :)
>
> > > > > > > > > > > > On Mon, Nov 9, 2009 at 8:38 AM, mdipierro 
> > > > > > > > > > > > <mdipie...@cs.depaul.edu> wrote:
>
> > > > > > > > > > > > > I changed it in trunk so that it is automatic and now 
> > > > > > > > > > > > > (again) web2py
> > > > > > > > > > > > > works with Jython out of the box. I have email the 
> > > > > > > > > > > > > author of
> > > > > > > > > > > > > wsgiserver hoping this is fixed in the official 
> > > > > > > > > > > > > distribution.
>
> > > > > > > > > > > > > On Nov 8, 1:56 pm, mdipierro 
> > > > > > > > > > > > > <mdipie...@cs.depaul.edu> wrote:
> > > > > > > > > > > > > > jython does not seem to support socket option 
> > > > > > > > > > > > > > no_delay. In gluon/
> > > > > > > > > > > > > > wsgiserver.py replace
>
> > > > > > > > > > > > > >  nodelay = True
>
> > > > > > > > > > > > > > with
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to