All pastes #2128971 Raw Edit

Unnamed

public text v1 · immutable
#2128971 ·published 2012-03-17 02:54 UTC
rendered paste body
def registerElement(elementClass):
    """                                                                                                                                                            
    Register the supplied XML elements with the parser.                                                                                                            
    """
    qname = elementClass.namespace, elementClass.name

    if qname in _elements_by_qname:
        raise AssertionError(
            "Attempting to register qname %s multiple times: (%r, %r)"
            % (qname, _elements_by_qname[qname], elementClass)
        )

    if not (qname in _elements_by_qname and issubclass(elementClass, _elements_by_qname[qname])):
        _elements_by_qname[qname] = elementClass

    globals()[elementClass.__name__] = elementClass

    return elementClass