[lxml-dev] lxml 1.3 coming up
jholg at gmx.de
jholg at gmx.de
Wed Jun 27 14:36:03 CEST 2007
Hi,
just noticed that this seems to have been lost entirely:
> Hi,
>
> > And I think I've found another thing that could be changed: The
> > DataElement()
> > does not treat None arguments the way normal direct assignment does,
> > setting xsi:nil="true". Instead it returns this:
> >
> > >>> root.n = DataElement(None)
> > >>> print root
> > root = None [ObjectifiedElement]
> > n = None [NoneElement]
> > * py:pytype = 'none'
> >
>
> Find attached a patch that:
>
> - changes the above to apply xsi:nil="true" for None value arguments
>
> - lets DataElement() graciously handle ObjectifiedDataElement arguments,
> keeping their attributes intact, if not overridden by the DataElement()
> args. This also reuses existing xsi:type or py:pytype information, unless
> _pytype and/or _xsi are provided as parameters to DataElement()
>
> Previously, DataElement() cut off all attributes if given an
> ObjectifiedDataElement instance.
>
> - Type-checks the _value against the given type hint:
> >>> objectify.DataElement(273.34, _xsi="int")
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "objectify.pyx", line 1742, in objectify.DataElement
> ValueError: invalid literal for int(): 273.34
> >>>
> You will run into the error anyway - sooner or later - when accessing the
> .pyval in any way, so why not during instantiation.
>
> Tests are included for the described behaviour.
>
> Additionally, I've revamped some of the tests I provided earlier and split
> them up: More but smaller test methods now.
>
> Please try it out, if any of the DataElement changes are not ok I can also
> send only the split-up tests, of course.
Or am I missing something?
Holger
--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kanns mit allen: http://www.gmx.net/de/go/multimessenger
More information about the lxml-dev
mailing list