Mercurial > public > mercurial-scm > hg
comparison mercurial/ui.py @ 33471:d74141ccfd8b
configitems: handle case were the default value is not static
In some case, the default of one value is derived from other value. We add a
way to register them anyway and an associated devel-warning.
The registration is very naive for the moment. We might be able to have a
better way for registering each of these cases but it could be done later.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Wed, 12 Jul 2017 23:36:10 +0200 |
parents | e714159860fd |
children | 0407a51b9d8c |
comparison
equal
deleted
inserted
replaced
33470:ab493a8353d1 | 33471:d74141ccfd8b |
---|---|
455 alternates.extend(item.alias) | 455 alternates.extend(item.alias) |
456 | 456 |
457 if default is _unset: | 457 if default is _unset: |
458 if item is None: | 458 if item is None: |
459 value = default | 459 value = default |
460 elif item.default is configitems.dynamicdefault: | |
461 value = None | |
462 msg = "config item requires an explicit default value: '%s.%s'" | |
463 msg %= (section, name) | |
464 self.develwarn(msg, 2, 'warn-config-default') | |
460 elif callable(item.default): | 465 elif callable(item.default): |
461 value = item.default() | 466 value = item.default() |
462 else: | 467 else: |
463 value = item.default | 468 value = item.default |
464 elif item is not None: | 469 elif (item is not None |
470 and item.default is not configitems.dynamicdefault): | |
465 msg = ("specifying a default value for a registered " | 471 msg = ("specifying a default value for a registered " |
466 "config item: '%s.%s' '%s'") | 472 "config item: '%s.%s' '%s'") |
467 msg %= (section, name, default) | 473 msg %= (section, name, default) |
468 self.develwarn(msg, 2, 'warn-config-default') | 474 self.develwarn(msg, 2, 'warn-config-default') |
469 | 475 |