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
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
)
37 return config
.get(section
, option
)
38 except ConfigParser
.Error
:
41 def getint(section
, option
, default
=_marker
):
42 if default
is _marker
:
43 return config
.getint(section
, option
)
46 return config
.getint(section
, option
)
47 except ConfigParser
.Error
:
50 def getfloat(section
, option
, default
=_marker
):
51 if default
is _marker
:
52 return config
.getfloat(section
, option
)
55 return config
.getfloat(section
, option
)
56 except ConfigParser
.Error
:
59 def getboolean(section
, option
, default
=_marker
):
60 if default
is _marker
:
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