Package lxml :: Module objectify
[hide private]
[frames] | no frames]

Module objectify



Classes [hide private]
  BoolElement
Boolean type base on string values: 'true' or 'false'.
  ElementMaker
  FloatElement
  IntElement
  LongElement
  NoneElement
  NumberElement
  ObjectPath
Immutable object that represents a compiled object path.
  ObjectifiedDataElement
This is the base class for all data type Elements.
  ObjectifiedElement
Main XML Element class.
  ObjectifyElementClassLookup
Element class lookup method that uses the objectify classes.
  PyType
User defined type.
  StringElement
String data class.
  _ObjectifyElementMakerCaller
  _StringValueSetter
Functions [hide private]
 
DataElement(...)
Create a new element from a Python value and XML attributes taken from keyword arguments or a dictionary passed as second argument.
 
Element(...)
Objectify specific version of the lxml.etree Element() factory that always creates a structural (tree) element.
 
XML(...)
Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.
 
__checkBool(...)
 
__lower_bool(...)
 
annotate(...)
Recursively annotates the elements of an XML tree with 'xsi:type' and/or 'py:pytype' attributes.
 
deannotate(...)
Recursively de-annotate the elements of an XML tree by removing 'pytype' and/or 'type' attributes.
 
dump(...)
Return a recursively generated string representation of an element.
 
enableRecursiveStr(...)
Enable a recursively generated tree representation for str(element), based on objectify.dump(element).
 
fromstring(...)
Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.
 
getRegisteredTypes(...)
Returns a list of the currently registered PyType objects.
 
parse(...)
Parse a file or file-like object with the objectify parser.
 
pyannotate(...)
Recursively annotates the elements of an XML tree with 'pytype' attributes.
 
pytypename(...)
Find the name of the corresponding PyType for a Python object.
 
setDefaultParser(...)
 
setPytypeAttributeTag(...)
Changes name and namespace of the XML attribute that holds Python type information.
 
set_default_parser(...)
Replace the default parser used by objectify's Element() and fromstring() functions.
 
xsiannotate(...)
Recursively annotates the elements of an XML tree with 'xsi:type' attributes.
Variables [hide private]
  E = <lxml.objectify.ElementMaker object at 0x8963af4>
  PYTYPE_ATTRIBUTE = '{http://codespeak.net/lxml/objectify/pytyp...
  __version__ = '2.0.alpha4-47253'
Function Details [hide private]

DataElement(...)

 

Create a new element from a Python value and XML attributes taken from keyword arguments or a dictionary passed as second argument.

Automatically adds a 'pytype' attribute for the Python type of the value, if the type can be identified. If '_pytype' or '_xsi' are among the keyword arguments, they will be used instead.

If the _value argument is an ObjectifiedDataElement instance, its py:pytype, xsi:type and other attributes and nsmap are reused unless they are redefined in attrib and/or keyword arguments.

Element(...)

 

Objectify specific version of the lxml.etree Element() factory that always creates a structural (tree) element.

NOTE: requires parser based element class lookup activated in lxml.etree!

XML(...)

 

Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.

You can pass a different parser as second argument.

annotate(...)

 

Recursively annotates the elements of an XML tree with 'xsi:type' and/or 'py:pytype' attributes.

If the 'ignore_old' keyword argument is True (the default), current 'py:pytype' attributes will be ignored for the type annotation. Set to False if you want reuse existing 'py:pytype' information (iff appropriate for the element text value).

If the 'ignore_xsi' keyword argument is False (the default), existing 'xsi:type' attributes will be used for the type annotation, if they fit the element text values.

Note that the mapping from Python types to XSI types is usually ambiguous. Currently, only the first XSI type name in the corresponding PyType definition will be used for annotation. Thus, you should consider naming the widest type first if you define additional types.

The default 'py:pytype' annotation of empty elements can be set with the ``empty_pytype`` keyword argument. Pass 'str', for example, to make string values the default.

The default 'xsi:type' annotation of empty elements can be set with the ``empty_type`` keyword argument. The default is not to annotate empty elements. Pass 'string', for example, to make string values the default.

The keyword arguments 'annotate_xsi' (default: 0) and 'annotate_pytype' (default: 1) control which kind(s) of annotation to use.

deannotate(...)

 

Recursively de-annotate the elements of an XML tree by removing 'pytype' and/or 'type' attributes.

If the 'pytype' keyword argument is True (the default), 'pytype' attributes will be removed. If the 'xsi' keyword argument is True (the default), 'xsi:type' attributes will be removed.

fromstring(...)

 

Objectify specific version of the lxml.etree fromstring() function that uses the objectify parser.

You can pass a different parser as second argument.

getRegisteredTypes(...)

 

Returns a list of the currently registered PyType objects.

To add a new type, retrieve this list and call unregister() for all entries. Then add the new type at a suitable position (possibly replacing an existing one) and call register() for all entries.

This is necessary if the new type interferes with the type check functions of existing ones (normally only int/float/bool) and must the tried before other types. To add a type that is not yet parsable by the current type check functions, you can simply register() it, which will append it to the end of the type list.

parse(...)

 

Parse a file or file-like object with the objectify parser.

You can pass a different parser as second argument.

pyannotate(...)

 

Recursively annotates the elements of an XML tree with 'pytype' attributes.

If the 'ignore_old' keyword argument is True (the default), current 'pytype' attributes will be ignored and replaced. Otherwise, they will be checked and only replaced if they no longer fit the current text value.

Setting the keyword argument ``ignore_xsi`` to True makes the function additionally ignore existing ``xsi:type`` annotations. The default is to use them as a type hint.

The default annotation of empty elements can be set with the ``empty_pytype`` keyword argument. The default is not to annotate empty elements. Pass 'str', for example, to make string values the default.

setPytypeAttributeTag(...)

 

Changes name and namespace of the XML attribute that holds Python type information.

Reset by calling without argument.

Default: "{http://codespeak.net/lxml/objectify/pytype}pytype"

set_default_parser(...)

 

Replace the default parser used by objectify's Element() and fromstring() functions.

The new parser must be an etree.XMLParser.

Call without arguments to reset to the original parser.

xsiannotate(...)

 

Recursively annotates the elements of an XML tree with 'xsi:type' attributes.

If the 'ignore_old' keyword argument is True (the default), current 'xsi:type' attributes will be ignored and replaced. Otherwise, they will be checked and only replaced if they no longer fit the current text value.

Note that the mapping from Python types to XSI types is usually ambiguous. Currently, only the first XSI type name in the corresponding PyType definition will be used for annotation. Thus, you should consider naming the widest type first if you define additional types.

Setting the keyword argument ``ignore_pytype`` to True makes the function additionally ignore existing ``pytype`` annotations. The default is to use them as a type hint.

The default annotation of empty elements can be set with the ``empty_type`` keyword argument. The default is not to annotate empty elements. Pass 'string', for example, to make string values the default.

Variables Details [hide private]

PYTYPE_ATTRIBUTE

Value:
'{http://codespeak.net/lxml/objectify/pytype}pytype'