durusmail: quixote-users: Re: A toy Nevow implementation
A toy Nevow implementation
2004-01-15
2004-01-15
2004-01-15
2004-01-15
Debug syntax errors in PTL (was: A toy Nevow implementation)
2004-01-15
Debug syntax errors in PTL (was: A toy Nevowimplementation)
2004-01-15
Debug syntax errors in PTL (was: A toy Nevowimplementation)
2004-01-16
Jason E. Sibre (2 parts)
Debug syntax errors in PTL
2004-01-22
Debug syntax errors in PTL
2004-01-18
2004-01-18
2004-01-15
Re: A toy Nevow implementation
2004-01-16
2004-01-19
Re: A toy Nevow implementation
2004-01-19
Re: A toy Nevow implementation
2004-01-19
2004-01-19
2004-01-19
2004-01-19
2004-01-19
2004-01-19
2004-01-19
2004-01-19
2004-01-20
2004-01-20
2004-01-20
2004-01-20
2004-01-21
2004-01-20
Re: A toy Nevow implementation
Oscar Rambla
2004-01-19
On Monday 19 January 2004 11:23, Graham Fawcett wrote:
> A quick comment on the 'node tree' idea...
>
> Oscar Rambla wrote:
> >>Well, if we can maintain the tree structure, and if you have access to
> >>each node's name, attributes and children, then you should be able to
> >>transform the tree. If I needed to do a lot of this kind of thing, I
> >>would probably use another tool, but perhaps there are some simple,
> >>common cases that we should facilitate. Some use-cases would be helpful.
> >>I would hesitate to do /too/ much of this, or we will begin to
> >>reinvent existing XML technologies.
> >
> > I didn't pretend you to do it , in any way. Maintain the tree structure
> > would be enough for me. If I needed to do a lot of things I could
> > translate it to a well-proven XML tool. Sorry but I don't see the way to
> > maintain it with the current version.
>

Sorry again! I should have play a bit with your code before thinking.
I had just realized of it. It's wonderful!

> Here's a quick example. You can tell from the code that I did not design
> it for easy tree manipulations -- but it is possible!
>
>
>      # given a list of four LI elements,
>      # insert a new element at the second position, and
>      # remove the "dummy" elements
>
>      from nevow import *
>
>      mylist = ul[
>                  li['first point'],
>                  li['last point'],
>                  li(id='dummy1')['dummy point 1'],
>                  li(id='dummy2')['dummy point 2'],
>      ]
>
>      mylist.content.lst.insert(1, li['inserted point'])
>
>      for item in mylist.content.lst[:]:
>          if item.attribs.get('id', '').startswith('dummy'):
>              mylist.content.lst.remove(item)
>
>      print mylist
>
>
> which prints (without the newlines):
>
>      
    >
  • first point
  • >
  • inserted point
  • >
  • last point
  • >
> > With a little work we could clean this up, and it could look like: > > > mylist.children.insert(1, li['inserted point']) > > for item in mylist.children[:]: > if item.attribs.get('id', '').startswith('dummy'): > mylist.children.remove(item) > > > which is a bit more DOM-like. > With the clean up even better. Need hands? > * * * * * * > > By the way, there is a tiny error in my nevow.py file. I assume that > those of you who tried it found the bug and fixed it yourselves. If you > get an error like: > > File "", line 1 > = Tag("") > ^ > SyntaxError: invalid syntax > > add the following lines: > > for tagname in tagnames.split(' '): > + if tagname: > .... cmd = '%s = Tag("%s")' % (tagname, tagname) > .... exec cmd > > or strip out the extra space at the end of the 'tagnames' variable. Checked. Thank you. Oscar Rambla CODI tecnic@codidoc.com
reply