diff -r d737bc8a36c9 -r 83c6dceeb10d mercurial/scmutil.py --- a/mercurial/scmutil.py Mon Oct 09 15:06:21 2023 +0200 +++ b/mercurial/scmutil.py Mon Oct 09 15:12:16 2023 +0200 @@ -2325,3 +2325,34 @@ schemes. """ return userlist == [b'*'] or username in userlist + + +RESOURCE_HIGH = 3 +RESOURCE_MEDIUM = 2 +RESOURCE_LOW = 1 +RESOURCE_DEFAULT = 0 + +RESOURCE_MAPPING = { + b'default': RESOURCE_DEFAULT, + b'low': RESOURCE_LOW, + b'medium': RESOURCE_MEDIUM, + b'high': RESOURCE_HIGH, +} + +DEFAULT_RESOURCE = RESOURCE_MEDIUM + + +def get_resource_profile(ui, dimension=None): + """return the resource profile for a dimension + + If no dimension is specified, the generic value is returned""" + generic_name = ui.config(b'usage', b'resources') + value = RESOURCE_MAPPING.get(generic_name, RESOURCE_DEFAULT) + if value == RESOURCE_DEFAULT: + value = DEFAULT_RESOURCE + if dimension is not None: + sub_name = ui.config(b'usage', b'resources.%s' % dimension) + sub_value = RESOURCE_MAPPING.get(sub_name, RESOURCE_DEFAULT) + if sub_value != RESOURCE_DEFAULT: + value = sub_value + return value