#!/usr/bin/python3 #import copy import os #import sys import lxml.etree as etree #from lxml.builder import ElementMaker # from lxml import etree #import dating import filing # import subscription from nitpo import Nitpo #from subscription import Subscription class Omnibus(Nitpo): def __init__(self, do_verbose=False): """subscription profiles""" super().__init__() ns = self.const['ns'] #self.nsmap = {None: ns} self.N = "{%s}" % self.const['ns'] #self.E = ElementMaker(nsmap={None: self.const['ns']}) #self.check_conf('folders', 'profile') #self.to_print = '' #self.s = Subscription() #self.event = {} #self.do_verbose = do_verbose def read(self): self.check_conf('folders', 'profile') profile_fudi = self.conf['folders']['profile'] omnibus_fufi = profile_fudi + '/' + 'omnibus.xml' # print(omnibus_fufi) if not os.path.isfile(omnibus_fufi): return None doc = filing.parse_lax(omnibus_fufi) if doc is None: return None return doc def disect(self, doc): """parse doc into surks""" # print(etree.tostring(doc, pretty_print=True).decode()) xp = '/n:omnibus/n:surk' surk_eles = doc.xpath(xp, namespaces={'n': self.const['ns']}) docus = {} for surk_ele in surk_eles: emad = surk_ele.attrib['emad'] if emad is None: continue docus[emad] = surk_ele return docus