2 from .core_nodes
import XmlDescriptor, ObjectRegistry
6 def __init__(self, name, child_node, default_ctor=None):
11 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
13 if cn.getAttribute(
"name") == self.
namename:
19 setattr(obj, self.
att_nameatt_name, value)
21 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
22 param = parent.appendChild(dom.createElement(
"param"))
23 param.setAttribute(
"name", self.
namename)
24 param.appendChild(getattr(obj, self.
att_nameatt_name).to_dom(dom))
28 if not isinstance(value, self.
child_nodechild_node):
29 raise ValueError(
"%s isn't a valid value for %s" % (value, self.
namename))
39 self.
_type_type = type
42 return len(self.
_items_items)
45 return iter(self.
_items_items)
48 return self.
_items_items[name]
51 return self.
_items_items[i:j]
55 self.
_items_items[key] = value
65 return "<SifNodeList %s>" % self.
_items_items
68 if not isinstance(value, self.
_type_type):
69 raise ValueError(
"Not a valid object: %s" % value)
73 def __init__(self, name, child_node, nested=True):
82 if not isinstance(value, self.
child_nodechild_node):
83 raise ValueError(
"Invalid value for %s: %s" % (self.
namename, value))
86 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
93 value = self.
child_nodechild_node.from_dom(element, registry)
97 setattr(obj, self.
att_nameatt_name, value)
99 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
100 value = getattr(obj, self.
att_nameatt_name)
102 node = dom.createElement(self.
namename)
103 parent.appendChild(node)
106 node.appendChild(value.to_dom(dom))
110 def __init__(self, child_node, name=None, wrapper_tag=None, tags=None):
111 super().
__init__(wrapper_tag
or child_node._tag)
126 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
129 if cn.tagName
in self.
tagstags:
133 values.append(self.
child_nodechild_node.from_dom(value_node, registry))
137 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
139 value_node = value.to_dom(dom)
141 wrapper = dom.createElement(self.
wrapper_tagwrapper_tag)
142 wrapper.appendChild(value_node)
144 parent.appendChild(value_node)
152 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
153 wrapper = parent.appendChild(dom.createElement(self.
namename))
156 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
176 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
177 wrapper = parent.appendChild(dom.createElement(
"param"))
178 wrapper.setAttribute(
"name", self.
namename)
181 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
183 if wrapper.getAttribute(
"name") == self.
namename:
192 def to_xml(self, obj, parent: minidom.Element, dom: minidom.Document):
193 value = getattr(obj, self.
namename,
None)
197 node = parent.appendChild(dom.createElement(self.
namename))
198 value_node = node.appendChild(dom.createElement(
"bone_valuenode"))
199 value_node.setAttribute(
"type", value.type)
200 value_node.setAttribute(
"guid", value.guid)
204 def from_xml(self, obj, parent: minidom.Element, registry: ObjectRegistry):
210 value = registry.get_object(value_node.getAttribute(
"guid"))
211 if value.type != value_node.getAttribute(
"type"):
212 raise ValueError(
"Bone type %s is not %s" % (value.type, value_node.getAttribute(
"type")))
214 setattr(obj, self.
att_nameatt_name, value)
def __setitem__(self, key, "Layer" value)
def __getitem__(self, name)
def __getslice__(self, i, j)
def validate(self, value)
def append(self, "Layer" value)
def from_python(self, value)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def __init__(self, child_node, name=None, wrapper_tag=None, tags=None)
def __init__(self, name, child_node, default_ctor=None)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def __init__(self, name, child_node, nested=True)
def from_python(self, value)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def from_xml(self, obj, minidom.Element parent, ObjectRegistry registry)
def from_python(self, value)
def to_xml(self, obj, minidom.Element parent, minidom.Document dom)
def initialize_object(self, dict, obj)
def __init__(self, name, XmlDescriptor wrapped)
def xml_first_element_child(minidom.Node xml, tagname=None, allow_none=False)
def xml_child_elements(minidom.Node xml, tagname=None)