canvas.insert now returns canvas wrapping item if attrs are given
[PyX.git] / pyx / config.py
blob441e943c710fe0a3595d377fc2448cb8a747a26c
1 # -*- encoding: utf-8 -*-
4 # Copyright (C) 2003-2011 Jörg Lehmann <joergl@users.sourceforge.net>
5 # Copyright (C) 2003-2011 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 filelocator
26 class _marker: pass
28 config = ConfigParser.ConfigParser()
29 config.readfp(filelocator.locator_classes["internal"]().openers("pyxrc", [], [""], "r")[0]())
30 config.read(os.path.expanduser("~/.pyxrc"))
32 def get(section, option, default=_marker):
33 if default is _marker:
34 return config.get(section, option)
35 else:
36 try:
37 return config.get(section, option)
38 except ConfigParser.Error:
39 return default
41 def getint(section, option, default=_marker):
42 if default is _marker:
43 return config.getint(section, option)
44 else:
45 try:
46 return config.getint(section, option)
47 except ConfigParser.Error:
48 return default
50 def getfloat(section, option, default=_marker):
51 if default is _marker:
52 return config.getfloat(section, option)
53 else:
54 try:
55 return config.getfloat(section, option)
56 except ConfigParser.Error:
57 return default
59 def getboolean(section, option, default=_marker):
60 if default is _marker:
61 return config.getboolean(section, option)
62 else:
63 try:
64 return config.getboolean(section, option)
65 except ConfigParser.Error:
66 return default
68 def getlist(section, option, default=_marker):
69 if default is _marker:
70 l = config.get(section, option).split()
71 else:
72 try:
73 l = config.get(section, option).split()
74 except ConfigParser.Error:
75 return default
76 if space:
77 l = [item.replace(space, ' ') for item in l]
78 return 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)
89 else:
90 return "%s\n" % message
91 warnings.formatwarning = formatwarning
93 filelocator.init()