~ubuntu-branches/debian/sid/pyx/sid

« back to all changes in this revision

Viewing changes to pyx/config.py

  • Committer: Bazaar Package Importer
  • Author(s): Stuart Prescott
  • Date: 2011-05-20 00:13:52 UTC
  • mto: (9.1.1 experimental)
  • mto: This revision was merged to the branch mainline in revision 8.
  • Revision ID: james.westby@ubuntu.com-20110520001352-odcuqpdezuusbbw1
Tags: upstream-0.11.1
Import upstream version 0.11.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: ISO-8859-1 -*-
2
 
#
3
 
#
4
 
# Copyright (C) 2003-2004 J�rg Lehmann <joergl@users.sourceforge.net>
5
 
# Copyright (C) 2003-2005 Andr� Wobst <wobsta@users.sourceforge.net>
 
1
# -*- encoding: utf-8 -*-
 
2
#
 
3
#
 
4
# Copyright (C) 2003-2011 Jörg Lehmann <joergl@users.sourceforge.net>
 
5
# Copyright (C) 2003-2011 André Wobst <wobsta@users.sourceforge.net>
6
6
#
7
7
# This file is part of PyX (http://pyx.sourceforge.net/).
8
8
#
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
22
22
 
23
 
import ConfigParser, os.path
24
 
import siteconfig
 
23
import ConfigParser, os.path, warnings
 
24
import filelocator
25
25
 
26
 
cflist = [os.path.join(siteconfig.pyxrcdir, "pyxrc"),  os.path.expanduser("~/.pyxrc")]
 
26
class _marker: pass
27
27
 
28
28
config = ConfigParser.ConfigParser()
29
 
config.read(cflist)
 
29
config.readfp(filelocator.locator_classes["internal"]().openers("pyxrc", [], [""], "r")[0]())
 
30
config.read(os.path.expanduser("~/.pyxrc"))
30
31
 
31
 
def get(section, option, default):
32
 
    try:
 
32
def get(section, option, default=_marker):
 
33
    if default is _marker:
33
34
        return config.get(section, option)
34
 
    except:
35
 
        return default
 
35
    else:
 
36
        try:
 
37
            return config.get(section, option)
 
38
        except ConfigParser.Error:
 
39
            return default
36
40
 
37
 
def getint(section, option, default):
38
 
    try:
 
41
def getint(section, option, default=_marker):
 
42
    if default is _marker:
39
43
        return config.getint(section, option)
40
 
    except:
41
 
        return default
 
44
    else:
 
45
        try:
 
46
            return config.getint(section, option)
 
47
        except ConfigParser.Error:
 
48
            return default
42
49
 
43
 
def getfloat(section, option, default):
44
 
    try:
 
50
def getfloat(section, option, default=_marker):
 
51
    if default is _marker:
45
52
        return config.getfloat(section, option)
46
 
    except:
47
 
        return default
 
53
    else:
 
54
        try:
 
55
            return config.getfloat(section, option)
 
56
        except ConfigParser.Error:
 
57
            return default
48
58
 
49
 
def getboolean(section, option, default):
50
 
    try:
 
59
def getboolean(section, option, default=_marker):
 
60
    if default is _marker:
51
61
        return config.getboolean(section, option)
52
 
    except:
53
 
        return default
54
 
 
 
62
    else:
 
63
        try:
 
64
            return config.getboolean(section, option)
 
65
        except ConfigParser.Error:
 
66
            return default
 
67
 
 
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
 
79
 
 
80
 
 
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
 
92
 
 
93
filelocator.init()