typo
[PyX/mjg.git] / pyx / config.py
blob6af7f4e51fcd640c375359568c503be6c4a5394a
1 # -*- coding: ISO-8859-1 -*-
4 # Copyright (C) 2003-2004 Jörg Lehmann <joergl@users.sourceforge.net>
5 # Copyright (C) 2003-2005 André Wobst <wobsta@users.sourceforge.net>
7 # This file is part of PyX (http://pyx.sourceforge.net/).
9 # PyX is free software; you can redistribute it and/or modify
10 # it under the terms of the GNU General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # PyX is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 # GNU General Public License for more details.
19 # You should have received a copy of the GNU General Public License
20 # along with PyX; if not, write to the Free Software
21 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 import ConfigParser, os.path, warnings
24 import siteconfig
26 class _marker: pass
28 cflist = [os.path.join(siteconfig.pyxrcdir, "pyxrc"), os.path.expanduser("~/.pyxrc")]
30 config = ConfigParser.ConfigParser()
31 config.read(cflist)
33 def get(section, option, default=_marker):
34 if default is _marker:
35 return config.get(section, option)
36 else:
37 try:
38 return config.get(section, option)
39 except ConfigParser.Error:
40 return default
42 def getint(section, option, default=_marker):
43 if default is _marker:
44 return config.getint(section, option)
45 else:
46 try:
47 return config.getint(section, option)
48 except ConfigParser.Error:
49 return default
51 def getfloat(section, option, default=_marker):
52 if default is _marker:
53 return config.getfloat(section, option)
54 else:
55 try:
56 return config.getfloat(section, option)
57 except ConfigParser.Error:
58 return default
60 def getboolean(section, option, default=_marker):
61 if default is _marker:
62 return config.getboolean(section, option)
63 else:
64 try:
65 return config.getboolean(section, option)
66 except ConfigParser.Error:
67 return default
69 def getlist(section, option, default=_marker):
70 if default is _marker:
71 l = config.get(section, option).split()
72 else:
73 try:
74 l = config.get(section, option).split()
75 except ConfigParser.Error:
76 return default
77 if space:
78 l = [item.replace(space, ' ') for item in l]
79 return l
82 space = get("general", "space", None)
83 formatWarnings = get("general", "warnings", "default")
84 if formatWarnings not in ["default", "short", "shortest"]:
85 raise RuntimeError("invalid config value for option 'warnings' in section 'general'")
86 if formatWarnings != "default":
87 def formatwarning(message, category, filename, lineno, line=None):
88 if formatWarnings == "short":
89 return "%s:%s: %s: %s\n" % (filename, lineno, category.__name__, message)
90 else:
91 return "%s\n" % message
92 warnings.formatwarning = formatwarning