updated pre-PEP: The create statement

Michele Simionato michele.simionato at gmail.com
Tue Apr 11 05:54:12 EDT 2006


Steven Bethard wrote:
> Azolex wrote:
> > Steven Bethard wrote:
> >> and named, nested hierarchies like XML documents could be created
> >> like::
> >>
> >>     create ETobject html:
> >>         "This statement would generate an ElementTree object"
> >>
> >>         create ETobject head:
> >>             "generate the head"
> >>             ...
> >>
> >>         create ETobject body:
> >>             "generate the body"
> >>             ...
> >
> > I think this is is a most important eventual use-case, and would like to
> > see it better worked out - or else declared outside the scope of the
> > proposed statement. As far as I can see, this does not cut it, since xml
> > and html allow /sequencial repetition/ of tags and the results of the
> > statement suites are passed as unordered namespaces/dicts.
>
> Good point.  The code above would only work if you didn't care about the
> order of elements.  I'm half inclined to pull the example, but the
> original was due to Michele Simionato, and I haven't quite convinced
> myself yet that you couldn't hack it to have ETObject append to an
> internal list somehow to keep order.  Michele?  Did you have a plan for
> how this would work?
>
> STeVe

Honestly, I don't want the 'create' statement to be used to write XML
in Python.
I think this would be a misuse of the functionality. OTOH I believe
that the main selling point for the 'create' statements is that it make
it easy to implement declarative minilanguages, so I have given an XML
example. To solve the ordering issue one
should change the internals of Python, in such a way to pass an ordered
dict
to the 'create' statement instead of an usual dictionary.
I think the main use case for 'create' would be in things like
object-relational-mappers,
not in XML generation. You can pull out the example in the official
PEP, if you like.
It was just matter for thought.

   Michele Simionato




More information about the Python-list mailing list