On 5/27/06, Sean Jamieson <[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)

no I'm sorry I didn't notice I was at 2spaces and u where at 4.

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

woops I had that as just one function forgot to change it in the split.

Line 76: self._createTree( rootNode, self )

Line 79: def _createTree( self, node, obj ):
Line 80:     for attr, value in obj.XMLAttrs.iteritems():

yea all that makes sence.

Line 83:         if isinstance( v, XMLNode ) or inspect.isclass( v ) and
issubclass( v, XMLNode ):

i'm not sure about that part, from my reading of __init__ i though all the inner classes where "transform" to instances

Line 85:         elif isinstance( v, XMLValue ):

yes ur right about that part but shouldn't it be both checks, if it's a XMLValue instance or a instances if a subclass if it.

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.

jejeje don't worry I'll get the new package and check it out.

Sean

Jorge Vargas wrote:

> On 5/25/06, *Sean Jamieson* < [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]>>> 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]>>>> 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