20
20
# along with PyX; if not, write to the Free Software
21
21
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23
import ConfigParser, os.path
23
import ConfigParser, os.path, warnings
26
cflist = [os.path.join(siteconfig.pyxrcdir, "pyxrc"), os.path.expanduser("~/.pyxrc")]
28
28
config = ConfigParser.ConfigParser()
29
config.readfp(filelocator.locator_classes["internal"]().openers("pyxrc", [], [""], "r")[0]())
30
config.read(os.path.expanduser("~/.pyxrc"))
31
def get(section, option, default):
32
def get(section, option, default=_marker):
33
if default is _marker:
33
34
return config.get(section, option)
37
return config.get(section, option)
38
except ConfigParser.Error:
37
def getint(section, option, default):
41
def getint(section, option, default=_marker):
42
if default is _marker:
39
43
return config.getint(section, option)
46
return config.getint(section, option)
47
except ConfigParser.Error:
43
def getfloat(section, option, default):
50
def getfloat(section, option, default=_marker):
51
if default is _marker:
45
52
return config.getfloat(section, option)
55
return config.getfloat(section, option)
56
except ConfigParser.Error:
49
def getboolean(section, option, default):
59
def getboolean(section, option, default=_marker):
60
if default is _marker:
51
61
return config.getboolean(section, option)
64
return config.getboolean(section, option)
65
except ConfigParser.Error:
68
def getlist(section, option, default=_marker):
69
if default is _marker:
70
l = config.get(section, option).split()
73
l = config.get(section, option).split()
74
except ConfigParser.Error:
77
l = [item.replace(space, ' ') for item in l]
81
space = get("general", "space", None)
82
formatWarnings = get("general", "warnings", "default")
83
if formatWarnings not in ["default", "short", "shortest"]:
84
raise RuntimeError("invalid config value for option 'warnings' in section 'general'")
85
if formatWarnings != "default":
86
def formatwarning(message, category, filename, lineno, line=None):
87
if formatWarnings == "short":
88
return "%s:%s: %s: %s\n" % (filename, lineno, category.__name__, message)
90
return "%s\n" % message
91
warnings.formatwarning = formatwarning