Mercurial > public > mercurial-scm > hg
comparison mercurial/scmutil.py @ 52668:1fef0d25dcde stable
usage: refactor usage.resources config parsing
This makes get_resource_profile less confusing. Before, RESOURCE_DEFAULT was a
special indirect value which meant to use DEFAULT_RESOURCE. I removed it while
preserving the same behavior.
The motivation for this is that the Rust implementation gets the default logic
wrong due to confusion about defaults. I will fix it in a follow-up commit.
author | Mitchell Kember <mkember@janestreet.com> |
---|---|
date | Tue, 14 Jan 2025 16:50:59 -0500 |
parents | 82e2c99c84f3 |
children | b7afc38468bd |
comparison
equal
deleted
inserted
replaced
52667:416421c8cf46 | 52668:1fef0d25dcde |
---|---|
2495 | 2495 |
2496 | 2496 |
2497 RESOURCE_HIGH: int = 3 | 2497 RESOURCE_HIGH: int = 3 |
2498 RESOURCE_MEDIUM: int = 2 | 2498 RESOURCE_MEDIUM: int = 2 |
2499 RESOURCE_LOW: int = 1 | 2499 RESOURCE_LOW: int = 1 |
2500 RESOURCE_DEFAULT: int = 0 | |
2501 | 2500 |
2502 RESOURCE_MAPPING: Dict[bytes, int] = { | 2501 RESOURCE_MAPPING: Dict[bytes, int] = { |
2503 b'default': RESOURCE_DEFAULT, | |
2504 b'low': RESOURCE_LOW, | 2502 b'low': RESOURCE_LOW, |
2505 b'medium': RESOURCE_MEDIUM, | 2503 b'medium': RESOURCE_MEDIUM, |
2506 b'high': RESOURCE_HIGH, | 2504 b'high': RESOURCE_HIGH, |
2507 } | 2505 } |
2508 | 2506 |
2513 ui: "uimod.ui", dimension: Optional[bytes] = None | 2511 ui: "uimod.ui", dimension: Optional[bytes] = None |
2514 ) -> int: | 2512 ) -> int: |
2515 """return the resource profile for a dimension | 2513 """return the resource profile for a dimension |
2516 | 2514 |
2517 If no dimension is specified, the generic value is returned""" | 2515 If no dimension is specified, the generic value is returned""" |
2518 generic_name = ui.config(b'usage', b'resources') | 2516 |
2519 value = RESOURCE_MAPPING.get(generic_name, RESOURCE_DEFAULT) | 2517 def config(section, name): |
2520 if value == RESOURCE_DEFAULT: | 2518 value_name = ui.config(section, name, default=b'default') |
2521 value = DEFAULT_RESOURCE | 2519 return RESOURCE_MAPPING.get(value_name) |
2520 | |
2522 if dimension is not None: | 2521 if dimension is not None: |
2523 sub_name = ui.config(b'usage', b'resources.%s' % dimension) | 2522 value = config(b'usage', b'resources.%s' % dimension) |
2524 sub_value = RESOURCE_MAPPING.get(sub_name, RESOURCE_DEFAULT) | 2523 if value is not None: |
2525 if sub_value != RESOURCE_DEFAULT: | 2524 return value |
2526 value = sub_value | 2525 value = config(b'usage', b'resources') |
2527 return value | 2526 if value is not None: |
2527 return value | |
2528 return DEFAULT_RESOURCE |