⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esistools.py

📁 reduced python source for embedded apps
💻 PY
字号:
"""Miscellaneous utility functions useful for dealing with ESIS streams."""__version__ = '$Revision: 1.1.1.1 $'import reimport stringimport sysimport xml.dom.coreimport xml.dom.esis_builder_data_rx = re.compile(r"[^\\][^\\]*")def decode(s):    r = ''    while s:        m = _data_rx.match(s)        if m:            r = r + m.group()            s = s[len(m.group()):]        elif s[1] == "\\":            r = r + "\\"            s = s[2:]        elif s[1] == "n":            r = r + "\n"            s = s[2:]        else:            raise ValueError, "can't handle " + `s`    return r_charmap = {}for c in map(chr, range(256)):    _charmap[c] = c_charmap["\n"] = r"\n"_charmap["\\"] = r"\\"del cdef encode(s):    return string.join(map(_charmap.get, s), '')class ExtendedEsisBuilder(xml.dom.esis_builder.EsisBuilder):    def __init__(self, *args, **kw):        self.__empties = {}        self.__is_empty = 0        apply(xml.dom.esis_builder.EsisBuilder.__init__, (self,) + args, kw)        self.buildFragment()    def feed(self, data):        for line in string.split(data, '\n'):            if not line:                 break            event = line[0]            text = line[1:]            if event == '(':                element = self.document.createElement(text, self.attr_store)                self.attr_store = {}                self.push(element)                if self.__is_empty:                    self.__empties[text] = text                    self.__is_empty = 0            elif event == ')':                self.pop()            elif event == 'A':                l = re.split(' ', text, 2)                name = l[0]                value = decode(l[2])                self.attr_store[name] = value            elif event == '-':                text = self.document.createText(decode(text))                self.push(text)            elif event == 'C':                return            elif event == 'e':                self.__is_empty = 1            elif event == '&':                eref = self.document.createEntityReference(text)                self.push(eref)            else:                sys.stderr.write('Unknown event: %s\n' % line)    def get_empties(self):        return self.__empties.keys()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -