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
28 cflist
= [os
.path
.join(siteconfig
.pyxrcdir
, "pyxrc"), os
.path
.expanduser("~/.pyxrc")]
30 config
= ConfigParser
.ConfigParser()
33 def get(section
, option
, default
=_marker
):
34 if default
is _marker
:
35 return config
.get(section
, option
)
38 return config
.get(section
, option
)
39 except ConfigParser
.Error
:
42 def getint(section
, option
, default
=_marker
):
43 if default
is _marker
:
44 return config
.getint(section
, option
)
47 return config
.getint(section
, option
)
48 except ConfigParser
.Error
:
51 def getfloat(section
, option
, default
=_marker
):
52 if default
is _marker
:
53 return config
.getfloat(section
, option
)
56 return config
.getfloat(section
, option
)
57 except ConfigParser
.Error
:
60 def getboolean(section
, option
, default
=_marker
):
61 if default
is _marker
:
62 return config
.getboolean(section
, option
)
65 return config
.getboolean(section
, option
)
66 except ConfigParser
.Error
:
69 def getlist(section
, option
, default
=_marker
):
70 if default
is _marker
:
71 l
= config
.get(section
, option
).split()
74 l
= config
.get(section
, option
).split()
75 except ConfigParser
.Error
:
78 l
= [item
.replace(space
, ' ') for item
in 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
)
91 return "%s\n" % message
92 warnings
.formatwarning
= formatwarning