Wow, I can be blind some days, thanks for pointing that out; fixed. py.xml and the library he made are both interesting, I'd even use them myself, they are elegant in their own ways.
I don't really see how his code works like mine. Sure the result is the same, but that's not really relevant ;-) His code assembles the nodes of the document at run time, with mine it's predefined (but you can add to it at run time). I do like how he uses addition to assemble his documents though, it seems quite flexible. It is something I might think about adding to my own. "You will be assimilated. Resistance is futile." Sean Jorge Vargas wrote: > hi Sean first of all I want to apologize for sending in something and > then just leaving, I have been busy with other stuff and haven't had > the time to pick it up again, by the way there is a reference to > redkey (or redsomething) still left. > > anyway I promise I'll soon make my patch work but I was reading Bruce > Eckel blog, i'm not sure if you know him but he is a big guy in Java > and recently has move to python a LOT, basically he did what your code > does :) maybe you want to make a post there telling him of ur code. > > http://www.artima.com/weblogs/viewpost.jsp?thread=163393 > > On 5/27/06, *Sean Jamieson * <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Ok, so I started playing with your patch. > I made a couple changes to get it closer to working > (most of the diff makes formatting consistent, sorry) > > The important changes are: > 1. call _createTree through self > 2. add an argument to _createTree, which is a reference to the > current node object (and Element doesnt have the XMLAttrs > attribute ;-) > > Line 76: self._createTree( rootNode, self ) > > Line 79: def _createTree( self, node, obj ): > Line 80: for attr, value in obj.XMLAttrs.iteritems (): > > Line 83: if isinstance( v, XMLNode ) or inspect.isclass( v > ) and > issubclass( v, XMLNode ): > > Line 85: elif isinstance( v, XMLValue ): > > But, for some reason, it is recursing infinitely (boy was that > looooong > backtrace scrolling up my screen fun) > > Unfortunately the message is useless, and I don't know anything about > ElementTree to understand the details of what your code does at > the moment. > > Sean > > Jorge Vargas wrote: > > > On 5/25/06, *Sean Jamieson* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote: > > > > > > Yep, working code is on pypi: > http://www.python.org/pypi/xmlmodel > > > > > > nice /me goes to poke around. > > > > some comments > > ------------ > > where does this comes from? > > from meta import TrackableTrackerMeta > > its failing in after easy_install > > > > >>> import xmlmodel > > Traceback (most recent call last): > > File "<stdin>", line 1, in ? > > File "build\bdist.win32\egg\xmlmodel\__init__.py", line 1, in ? > > File "build\bdist.win32\egg\xmlmodel\main.py", line 4, in ? > > ImportError: No module named meta > > > > and I have never heard of that module > > ------------- > > I notice your using DictObj from > > http://trac.turbogears.org/turbogears/ticket/779 > > I think it could be replace with Bunch, as TG did > > ------------- > > one thing that let me wondering is where does _order comes from > in XMLNode > > ------------- > > I really love your generators for the XML very nice implementation > > ------------ > > Now this will be funny even without getting it to compile I did an > > elementTree layout so as Linus ones said about a kernel > > If it works you should be double impress :) > > > > I added 2 methods to XMLModel which mimic what your toXML do, but > > since it's objects not a string I just made the recursive call > there, > > since I couldn't run it I'm not sure I got the correct value for v > > > > Jorge Vargas wrote: > > > > > On 5/25/06, *Sean Jamieson* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> wrote: > > > > > > > > > I was thinking about integrating cElementTree in the > future, > > > > > > > > > I think that is the way to go, it gives everything you > need and has > > > been tested a lot. > > > > > > but to make > > > a quick proof of concept, I just have my toxml() manually > > assembling a > > > string, using generators. > > > > > > > > > that's ok, but soon you'll need a nice backend :) > > > > > > you actually got workign code? if it's possible can I take > a look? > > > > > > currently, XMLValue and it's subclasses are optional, > with a > > > 'required' > > > bool keyword argument to __init__, also an XMLNodeList can > > have 0 > > > items > > > (and therefore not appear) > > > > > > I could add another magic attribute parsed from > XMLAttrs, like > > > _tagname, > > > called _required ... > > > > > > > > > I think there should be a general way (classes,fields) to > tell the > > > engine which fields are optional and which aren't, so the > render > > > function can detect a malform object, but this could turn > into a > > huge > > > validation scheme which I'm not sure if you want. Although if > > you ever > > > generate some xml-based std, there should be a validation > > > > > > but generally if a tag has child tags, its going to be > used. > > > > > > > > > yes that's the way it should > > > > > > I've seen hypy before, some months ago, it's yet another > > template > > > language; > > > It is an interesting idea though. > > > > > > > > > I like the indentation thing which is basically what your > doing > > here, > > > what i don't like is the placeholder which you avoid with > the class > > > structure. > > > > > > ------ > > > > > > Sean > > > > > > > > > Jorge Vargas wrote: > > > > > > > On 4/28/06, *Sean Jamieson* < [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> > > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> > > > <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>>> > > > > <mailto:[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]> <mailto: [EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> > > <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>>> wrote: > > > > > > > > Sorry for bringing this old topic up, but I was just > > playing with > > > > ElementTree yesterday and I made a link to this > > > > I believe your model can be implemented on top of > > ElementTree, > > > to give > > > > it a more friendly interface. > > > > > > > > class RSS2( XMLModel ): > > > > class XMLAttrs: > > > > _tagname = 'rss' > > > > version = ' 2.0' > > > > > > > > class channel( XMLNode ): > > > > title = XMLString() > > > > description = XMLString() > > > > link = XMLString() > > > > lastBuildDate = XMLDate( format = "%a, %d %b > > %Y %H:%M:%S > > > > EST" ) > > > > generator = XMLString() > > > > docs = XMLString() > > > > > > > > class item( XMLNodeList ): > > > > title = XMLString() > > > > link = XMLString() > > > > description = XMLString() > > > > category = XMLList( type = > XMLString() ) > > > > pubDate = XMLDate( format = "%a, %d > %b %Y > > > %H:%M:%S EST" ) > > > > > > > > > > > > Based on your example > > > > all the helper classes extend the Element > > > > even XMLModel is an extension to the Element. > > > > > > > > So all that needs to be done is a render function that > > will take > > > your > > > > class and do some calls to SubElement > > > > > > > > One question, how will you manage optional elements > in the > > template? > > > > > > > > how is that? > > > > > > > > on the other hand I remenber looking at > > > > http://manatlan.online.fr/hypy.php > > > > < http://manatlan.online.fr/hypy.php> it's something > > similar but > > > based > > > > on indentation no classes. > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "TurboGears" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/turbogears -~----------~----~----~----~------~----~------~--~---

