def main(): super_concat = False options, args = interface() xml = ElementTree().parse(options.input, parser=XMLParser(target=MyTreeBuilder())) # delete the older subs. models from the xml file for node in [ 'HKYModel', 'gtrModel', 'siteModel', 'patterns', 'treeLikelihood' ]: xml = delete_node(xml, node, 1) # delete the kappa and frequency parameters in 'operators' delete = [ 'kappa', 'frequencies', 'alpha', 'pInv', 'ac', 'ag', 'at', 'cg', 'gt' ] xml = delete_children_from_node(xml, xml.find('operators'), delete) xml = delete_children_from_node( xml, xml.find('mcmc').find('posterior').find('prior'), delete) # there are 2 log tags, disambiguated w/ id params. delete elements from # the one we want (fileLog) xml = delete_children_from_node(xml, get_file_log_section(xml), delete) # jettison some comments xml = comment_remover(xml, [ 'The general time reversible', 'HKY substitution model', 'site model', 'The unique patterns from 1 to end', 'npatterns=' ]) # load our substitution model information substitution_models = cPickle.load(open(options.subs)) snippets = ElementTree().parse(options.params, parser=XMLParser(target=MyTreeBuilder())) # insert patterns on a per locus basis insert_position = get_position(xml, 'alignment') xml = insert_patterns_for_locus(xml, substitution_models, insert_position, snippets) # insert substitution models on a per locus basis insert_position = get_position(xml, 'strictClockBranchRates') xml, insert_position = insert_models_for_locus(xml, substitution_models, insert_position, snippets) # insert site models on a per locus basis xml, insert_position = insert_site_models_for_locus( xml, substitution_models, insert_position, snippets) # insert tree likelihoods on a per locus basis xml, insert_position = insert_tree_likelihoods_for_locus( xml, substitution_models, insert_position, snippets) # insert operators xml = insert_operators_for_locus(xml, substitution_models, snippets) write(xml, options.output) pdb.set_trace() """model_names, site_names = get_xml_model_names(set(sub_models_from_modeltest.values()))
def open_data_file(path): with open(path, 'rb') as encoding_detect_file: file_text = encoding_detect_file.read() encoding = chardet.detect(file_text)['encoding'] parser = XMLParser(encoding=encoding) tree = parse(path, parser=parser) root = tree.getroot() return root
def xml(self, cmd, **kwargs): # NOTE: darcs is currently encoding agnostic and will print # patch metadata byte-for-byte, even in the XML changelog. etree = ElementTree() # While we are decoding the XML as latin-1 to be as liberal as # possible, etree will still raise an exception if any # non-printable characters are in the XML changelog. parser = XMLParser(encoding='latin-1') fp = self._run(cmd, **kwargs) etree.parse(fp, parser=parser) self.checkexit(fp.close()) return etree.getroot()
def open(self): register_namespace("mrng", "http://mremoteng.org") xmlp = XMLParser(encoding="utf-8") with open(self.filePath, 'r') as xml_file: tree = ET.parse(xml_file, parser=xmlp) self.root = tree.getroot()
def connect(self): self.__parser = XMLParser(target=XmppHandler(self)) self.send(( '<?xml version=\'1.0\'?><stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="%s" version="1.0">' % (_escape_attrib(self.__jid.domain()), )).encode(self.__encoding)) self.__stream_open = True