Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 3341:a7cec14c9b40
ui.py: move common code out of config and configbool
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Tue, 10 Oct 2006 18:43:20 -0300 |
parents | 929d04962115 |
children | 4eeb79b4da30 |
comparison
equal
deleted
inserted
replaced
3340:929d04962115 | 3341:a7cec14c9b40 |
---|---|
85 self.readhooks.append(hook) | 85 self.readhooks.append(hook) |
86 | 86 |
87 def setconfig(self, section, name, val): | 87 def setconfig(self, section, name, val): |
88 self.overlay[(section, name)] = val | 88 self.overlay[(section, name)] = val |
89 | 89 |
90 def config(self, section, name, default=None): | 90 def _config(self, section, name, default, funcname): |
91 if self.overlay.has_key((section, name)): | 91 if self.overlay.has_key((section, name)): |
92 return self.overlay[(section, name)] | 92 return self.overlay[(section, name)] |
93 if self.cdata.has_option(section, name): | 93 if self.cdata.has_option(section, name): |
94 try: | 94 try: |
95 return self.cdata.get(section, name) | 95 func = getattr(self.cdata, funcname) |
96 return func(section, name) | |
96 except ConfigParser.InterpolationError, inst: | 97 except ConfigParser.InterpolationError, inst: |
97 raise util.Abort(_("Error in configuration section [%s] " | 98 raise util.Abort(_("Error in configuration section [%s] " |
98 "parameter '%s':\n%s") | 99 "parameter '%s':\n%s") |
99 % (section, name, inst)) | 100 % (section, name, inst)) |
100 if self.parentui is None: | 101 if self.parentui is None: |
101 return default | 102 return default |
102 else: | 103 else: |
103 return self.parentui.config(section, name, default) | 104 return self.parentui._config(section, name, default, funcname) |
105 | |
106 def config(self, section, name, default=None): | |
107 return self._config(section, name, default, 'get') | |
108 | |
109 def configbool(self, section, name, default=False): | |
110 return self._config(section, name, default, 'getboolean') | |
104 | 111 |
105 def configlist(self, section, name, default=None): | 112 def configlist(self, section, name, default=None): |
106 """Return a list of comma/space separated strings""" | 113 """Return a list of comma/space separated strings""" |
107 result = self.config(section, name) | 114 result = self.config(section, name) |
108 if result is None: | 115 if result is None: |
109 result = default or [] | 116 result = default or [] |
110 if isinstance(result, basestring): | 117 if isinstance(result, basestring): |
111 result = result.replace(",", " ").split() | 118 result = result.replace(",", " ").split() |
112 return result | 119 return result |
113 | |
114 def configbool(self, section, name, default=False): | |
115 if self.overlay.has_key((section, name)): | |
116 return self.overlay[(section, name)] | |
117 if self.cdata.has_option(section, name): | |
118 try: | |
119 return self.cdata.getboolean(section, name) | |
120 except ConfigParser.InterpolationError, inst: | |
121 raise util.Abort(_("Error in configuration section [%s] " | |
122 "parameter '%s':\n%s") | |
123 % (section, name, inst)) | |
124 if self.parentui is None: | |
125 return default | |
126 else: | |
127 return self.parentui.configbool(section, name, default) | |
128 | 120 |
129 def has_config(self, section): | 121 def has_config(self, section): |
130 '''tell whether section exists in config.''' | 122 '''tell whether section exists in config.''' |
131 return self.cdata.has_section(section) | 123 return self.cdata.has_section(section) |
132 | 124 |