Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 33058:1aa05203f7f6
config: extract the core config logic into a private method
This will make it easier for the other 'configxxx' function to detect unset
value.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sun, 25 Jun 2017 14:34:34 +0200 |
parents | 149b68224b08 |
children | 1dc2ffe0123b |
comparison
equal
deleted
inserted
replaced
33057:03eefca3ed33 | 33058:1aa05203f7f6 |
---|---|
437 | 437 |
438 def configsource(self, section, name, untrusted=False): | 438 def configsource(self, section, name, untrusted=False): |
439 return self._data(untrusted).source(section, name) | 439 return self._data(untrusted).source(section, name) |
440 | 440 |
441 def config(self, section, name, default=_unset, untrusted=False): | 441 def config(self, section, name, default=_unset, untrusted=False): |
442 """return the plain string version of a config""" | |
443 value = self._config(section, name, default=default, | |
444 untrusted=untrusted) | |
445 if value is _unset: | |
446 return None | |
447 return value | |
448 | |
449 def _config(self, section, name, default=_unset, untrusted=False): | |
450 value = default | |
442 if isinstance(name, list): | 451 if isinstance(name, list): |
443 alternates = name | 452 alternates = name |
444 # let us ignore the config items in the alternates case for now | |
445 if default is _unset: | |
446 default = None | |
447 else: | 453 else: |
448 item = self._knownconfig.get(section, {}).get(name) | 454 item = self._knownconfig.get(section, {}).get(name) |
449 if default is _unset: | 455 if default is _unset: |
450 default = None | 456 if item is None: |
451 if item is not None: | 457 value = default |
452 default = item.default | 458 else: |
459 value = item.default | |
453 elif item is not None: | 460 elif item is not None: |
454 msg = ("specifying a default value for a registered " | 461 msg = ("specifying a default value for a registered " |
455 "config item: '%s.%s' '%s'") | 462 "config item: '%s.%s' '%s'") |
456 msg %= (section, name, default) | 463 msg %= (section, name, default) |
457 self.develwarn(msg, 1, 'warn-config-default') | 464 self.develwarn(msg, 2, 'warn-config-default') |
458 | 465 |
459 alternates = [name] | 466 alternates = [name] |
460 | 467 |
461 for n in alternates: | 468 for n in alternates: |
462 value = self._data(untrusted).get(section, n, None) | 469 candidate = self._data(untrusted).get(section, n, None) |
463 if value is not None: | 470 if candidate is not None: |
471 value = candidate | |
464 name = n | 472 name = n |
465 break | 473 break |
466 else: | |
467 value = default | |
468 | 474 |
469 if self.debugflag and not untrusted and self._reportuntrusted: | 475 if self.debugflag and not untrusted and self._reportuntrusted: |
470 for n in alternates: | 476 for n in alternates: |
471 uvalue = self._ucfg.get(section, n) | 477 uvalue = self._ucfg.get(section, n) |
472 if uvalue is not None and uvalue != value: | 478 if uvalue is not None and uvalue != value: |