def __init__(self, filter_node): self.mlt_service_id = filter_node.getAttribute(ID) try: self.multipart_filter = ( filter_node.getAttribute(MULTIPART_FILTER) == "true") except: # default is False self.multipart_filter = False try: self.mlt_drop_version = filter_node.getAttribute(MLT_DROP_VERSION) except: self.mlt_drop_version = None try: self.mlt_min_version = filter_node.getAttribute(MLT_MIN_VERSION) except: self.mlt_min_version = None self.xml = filter_node.toxml() self.name = filter_node.getElementsByTagName(NAME).item( 0).firstChild.nodeValue self.group = filter_node.getElementsByTagName(GROUP).item( 0).firstChild.nodeValue # Properties saved as name-value-type tuplets p_node_list = filter_node.getElementsByTagName(PROPERTY) self.properties = propertyparse.node_list_to_properties_array( p_node_list) # Property args saved in propertyname -> propertyargs_string dict self.property_args = propertyparse.node_list_to_args_dict(p_node_list) # Multipart property describes how filters are created and edited when filter # constists of multiple filters. # There 0 or 1 of these in the info object. node_list = filter_node.getElementsByTagName(MULTIPART_PROPERTY) if len(node_list) == 1: mp = node_list[0] value = mp.firstChild.nodeValue args = mp.getAttribute(ARGS) start_property = mp.getAttribute(MULTIPART_START) end_property = mp.getAttribute(MULTIPART_END) self.multipart_desc = (args, start_property, end_property) self.multipart_value = value # Extra editors that handle properties that have been set "no_editor" e_node_list = filter_node.getElementsByTagName(EXTRA_EDITOR) self.extra_editors = propertyparse.node_list_to_extraeditors_array( e_node_list) # Non-MLT properties are persistent values like properties that values are not directly written out as MLT properties p_node_list = filter_node.getElementsByTagName(NON_MLT_PROPERTY) self.non_mlt_properties = propertyparse.node_list_to_non_mlt_properties_array( p_node_list) # Property args for Non-MLT properties saved in propertyname -> propertyargs_string dict self.property_args.update( propertyparse.node_list_to_args_dict(p_node_list))
def __init__(self, filter_node): self.mlt_service_id = filter_node.getAttribute(ID) try: self.multipart_filter = (filter_node.getAttribute(MULTIPART_FILTER) == "true") except: # default is False self.multipart_filter = False try: self.mlt_drop_version = filter_node.getAttribute(MLT_DROP_VERSION) except: self.mlt_drop_version = None try: self.mlt_min_version = filter_node.getAttribute(MLT_MIN_VERSION) except: self.mlt_min_version = None self.xml = filter_node.toxml() self.name = filter_node.getElementsByTagName(NAME).item(0).firstChild.nodeValue self.group = filter_node.getElementsByTagName(GROUP).item(0).firstChild.nodeValue # Properties saved as name-value-type tuplets p_node_list = filter_node.getElementsByTagName(PROPERTY) self.properties = propertyparse.node_list_to_properties_array(p_node_list) # Property args saved in propertyname -> propertyargs_string dict self.property_args = propertyparse.node_list_to_args_dict(p_node_list) # Multipart property describes how filters are created and edited when filter # constists of multiple filters. # There 0 or 1 of these in the info object. node_list = filter_node.getElementsByTagName(MULTIPART_PROPERTY) if len(node_list) == 1: mp = node_list[0] value = mp.firstChild.nodeValue args = mp.getAttribute(ARGS) start_property = mp.getAttribute(MULTIPART_START) end_property = mp.getAttribute(MULTIPART_END) self.multipart_desc = (args, start_property, end_property) self.multipart_value = value # Extra editors that handle properties that have been set "no_editor" e_node_list = filter_node.getElementsByTagName(EXTRA_EDITOR) self.extra_editors = propertyparse.node_list_to_extraeditors_array(e_node_list) # Non-MLT properties are persistent values like properties that values are not directly written out as MLT properties p_node_list = filter_node.getElementsByTagName(NON_MLT_PROPERTY) self.non_mlt_properties = propertyparse.node_list_to_non_mlt_properties_array(p_node_list) # Property args for Non-MLT properties saved in propertyname -> propertyargs_string dict self.property_args.update(propertyparse.node_list_to_args_dict(p_node_list))
def __init__(self, anim_node): self.name = anim_node.getElementsByTagName(NAME_NODE).item(0).firstChild.nodeValue self.group = anim_node.getElementsByTagName(GROUP_NODE).item(0).firstChild.nodeValue self.project_file = anim_node.getElementsByTagName(NATRON_PROJECT_FILE_NODE).item(0).firstChild.nodeValue self.property_node_list = anim_node.getElementsByTagName(PROPERTY) self.interpretation_node_list = anim_node.getElementsByTagName(INTERPRETATION) self.properties = propertyparse.node_list_to_properties_array(self.property_node_list) self.property_args = propertyparse.node_list_to_args_dict(self.property_node_list) self.length = anim_node.getElementsByTagName(LENGTH_NODE).item(0).firstChild.nodeValue # Create dict for interpretations for each property: property name -> (natron_node, natron_property, interpretation, args) self.interpretations = {} for i_node in self.interpretation_node_list: natron_node = i_node.getAttribute(NATRON_NODE_NAME_ATTR) natron_property = i_node.getAttribute(NATRON_PROPERTY_NAME_ATTR) args_str = i_node.getAttribute(ARGS_ATTR) if len(args_str) == 0: args = None else: args = propertyparse.args_string_to_args_dict(args_str) interpretation = i_node.firstChild.nodeValue self.interpretations[i_node.getAttribute(NAME_ATTR)] = (natron_node, natron_property, interpretation, args)
def __init__(self, anim_node): self.name = anim_node.getElementsByTagName(NAME_NODE).item( 0).firstChild.nodeValue self.group = anim_node.getElementsByTagName(GROUP_NODE).item( 0).firstChild.nodeValue self.project_file = anim_node.getElementsByTagName( NATRON_PROJECT_FILE_NODE).item(0).firstChild.nodeValue self.property_node_list = anim_node.getElementsByTagName(PROPERTY) self.interpretation_node_list = anim_node.getElementsByTagName( INTERPRETATION) self.properties = propertyparse.node_list_to_properties_array( self.property_node_list) self.property_args = propertyparse.node_list_to_args_dict( self.property_node_list) self.length = anim_node.getElementsByTagName(LENGTH_NODE).item( 0).firstChild.nodeValue # Create dict for interpretations for each property: property name -> (natron_node, natron_property, interpretation, args) self.interpretations = {} for i_node in self.interpretation_node_list: natron_node = i_node.getAttribute(NATRON_NODE_NAME_ATTR) natron_property = i_node.getAttribute(NATRON_PROPERTY_NAME_ATTR) args_str = i_node.getAttribute(ARGS_ATTR) if len(args_str) == 0: args = None else: args = propertyparse.args_string_to_args_dict(args_str) interpretation = i_node.firstChild.nodeValue self.interpretations[i_node.getAttribute(NAME_ATTR)] = ( natron_node, natron_property, interpretation, args)
def __init__(self, compositor_node): self.mlt_service_id = compositor_node.getAttribute(MLT_SERVICE) self.xml = compositor_node.toxml() self.name = compositor_node.getElementsByTagName(NAME).item(0).firstChild.nodeValue # Properties saved as name-value-type tuplets p_node_list = compositor_node.getElementsByTagName(PROPERTY) self.properties = propertyparse.node_list_to_properties_array(p_node_list) # Property args saved in propertyname -> propertyargs_string dict self.property_args = propertyparse.node_list_to_args_dict(p_node_list) # Extra editors that handle properties that have been set "no_editor" e_node_list = compositor_node.getElementsByTagName(EXTRA_EDITOR) self.extra_editors = propertyparse.node_list_to_extraeditors_array(e_node_list)