/usr/lib/python3/dist-packages/pyutilib/component/config/plugin_ConfigParser.py is in python3-pyutilib 5.3.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | # _________________________________________________________________________
#
# PyUtilib: A Python utility library.
# Copyright (c) 2008 Sandia Corporation.
# This software is distributed under the BSD License.
# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
# the U.S. Government retains certain rights in this software.
# _________________________________________________________________________
"""A parser used by the Configuration class."""
__all__ = ['Configuration_ConfigParser']
import os.path
try:
import ConfigParser
except ImportError:
import configparser as ConfigParser
try:
from ordereddict import OrderedDict
except:
OrderedDict = dict
from pyutilib.component.config.configuration import *
from pyutilib.component.config.managed_plugin import *
#
# Force the config file option manager to be case sensitive
#
ConfigParser.RawConfigParser.optionxform = str
class Configuration_ConfigParser(ManagedSingletonPlugin):
"""A configuration parser that uses the ConfigParser package."""
implements(IConfiguration)
def __init__(self, **kwds):
kwds['name']='Configuration_ConfigParser'
ManagedSingletonPlugin.__init__(self,**kwds)
def load(self, filename):
"""Returns a list of tuples: [ (section,option,value) ]"""
parser = ConfigParser.ConfigParser()
if not os.path.exists(filename):
raise ConfigurationError("File "+filename+" does not exist!")
parser.read(filename)
#
# Collect data
#
data = []
for section in parser.sections():
for (option,value) in parser.items(section):
data.append( (section,option,value) )
return data
def save(self, filename, config, header=None):
"""Save configuration information to the specified file."""
if sys.version_info[:2] == (2,6):
parser = ConfigParser.ConfigParser(dict_type=OrderedDict)
else:
parser = ConfigParser.ConfigParser()
for (section,option,value) in config:
if not parser.has_section(section):
parser.add_section(section)
parser.set(section, option, str(value))
OUTPUT=open(filename,"w")
if not header is None:
for line in header.split("\n"):
OUTPUT.write("; "+line+'\n')
parser.write(OUTPUT)
OUTPUT.close()
|