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

📄 umitconfigparser.py

📁 Ubuntu packages of security software。 相当不错的源码
💻 PY
字号:
#!/usr/bin/env python# -*- coding: utf-8 -*-# Copyright (C) 2005 Insecure.Com LLC.## Author: Adriano Monteiro Marques <py.adriano@gmail.com>## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAfrom os.path import existsfrom ConfigParser import ConfigParser, DEFAULTSECT, NoOptionError, NoSectionErrorfrom zenmapCore.UmitLogging import logclass UmitConfigParser(ConfigParser):    filenames = None    fp = None        def __init__(self, *args):        ConfigParser.__init__(self, *args)    def set(self, section, option, value):        if not self.has_section(section):            self.add_section(section)                ConfigParser.set(self, section, option, value)        self.save_changes()    def read(self, filename):        log.debug(">>> Trying to parse: %s" % filename)        self.filename = ConfigParser.read(self, filename)        return self.filename    def readfp(self, fp, filename=None):        ConfigParser.readfp(self, fp, filename)        self.fp = fp        self.filenames = filename    def save_changes(self):        if self.filenames:            filename = None            if type(self.filenames) == type(""):                filename = self.filenames            elif type(self.filenames) == type([]) and len(self.filenames) == 1:                filename = self.filenames[0]            else:                raise Exception("Wrong filename %s" % self.filenames)            self.write(open(filename, 'w'))        elif self.fp:            self.write(self.fp)    def write(self, fp):        '''Write alphabetically sorted config files'''        if self._defaults:            fp.write("[%s]\n" % DEFAULTSECT)                        items = self._defaults.items()            items.sort()                        for (key, value) in items:                fp.write("%s = %s\n" % (key, str(value).replace('\n', '\n\t')))            fp.write("\n")        sects = self._sections.keys()        sects.sort()                for section in sects:            fp.write("[%s]\n" % section)            for (key, value) in self._sections[section].items():                if key != "__name__":                    fp.write("%s = %s\n" %                             (key, str(value).replace('\n', '\n\t')))            fp.write("\n")def test_umit_conf_content(filename):    parser = ConfigParser()    parser.read(filename)    # Paths section    section = "paths"    assert exists(get_or_false(parser, section, "config_file") or "")    assert exists(get_or_false(parser, section, "locale_dir") or "")    assert exists(get_or_false(parser, section, "misc_dir") or "")    assert exists(get_or_false(parser, section, "icons_dir") or "")    assert exists(get_or_false(parser, section, "pixmaps_dir") or "")    assert exists(get_or_false(parser, section, "config_dir") or "")    assert exists(get_or_false(parser, section, "docs_dir") or "")    assert get_or_false(parser, section, "nmap_command_path")def get_or_false(parser, section, option):    try:        result = parser.get(section, option)        return result    except NoOptionError:        return False    except NoSectionError:        return False

⌨️ 快捷键说明

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