On 6/14/06, Sean Jamieson <[EMAIL PROTECTED]> wrote:

Wow, I can be blind some days, thanks for pointing that out; fixed.

will you update Cheese Shop it still had the package without the meta.py file.

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 ;-)

is not that they work alike is that, yours is another approach to the problem :)

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.

yes that's the thing I like the most operator overloading at it's finest :)

"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
-~----------~----~----~----~------~----~------~--~---

Reply via email to