Marco Ricci commited on 2025-01-23 10:51:36
Zeige 1 geänderte Dateien mit 26 Einfügungen und 26 Löschungen.
... | ... |
@@ -1465,6 +1465,13 @@ def derivepassphrase_export_vault( |
1465 | 1465 |
# Vault |
1466 | 1466 |
# ===== |
1467 | 1467 |
|
1468 |
+_config_filename_table = { |
|
1469 |
+ None: '.', |
|
1470 |
+ 'vault': 'vault.json', |
|
1471 |
+ 'user configuration': 'config.toml', |
|
1472 |
+ 'old settings.json': 'settings.json', |
|
1473 |
+} |
|
1474 |
+ |
|
1468 | 1475 |
|
1469 | 1476 |
def _config_filename( |
1470 | 1477 |
subsystem: str | None = 'old settings.json', |
... | ... |
@@ -1499,18 +1506,11 @@ def _config_filename( |
1499 | 1506 |
os.getenv(PROG_NAME.upper() + '_PATH') |
1500 | 1507 |
or click.get_app_dir(PROG_NAME, force_posix=True) |
1501 | 1508 |
) |
1502 |
- # Use match/case here once Python 3.9 becomes unsupported. |
|
1503 |
- if subsystem is None: |
|
1504 |
- return path |
|
1505 |
- elif subsystem == 'vault': # noqa: RET505 |
|
1506 |
- filename = f'{subsystem}.json' |
|
1507 |
- elif subsystem == 'user configuration': |
|
1508 |
- filename = 'config.toml' |
|
1509 |
- elif subsystem == 'old settings.json': |
|
1510 |
- filename = 'settings.json' |
|
1511 |
- else: # pragma: no cover |
|
1509 |
+ try: |
|
1510 |
+ filename = _config_filename_table[subsystem] |
|
1511 |
+ except (KeyError, TypeError): # pragma: no cover |
|
1512 | 1512 |
msg = f'Unknown configuration subsystem: {subsystem!r}' |
1513 |
- raise AssertionError(msg) |
|
1513 |
+ raise AssertionError(msg) from None |
|
1514 | 1514 |
return path / filename |
1515 | 1515 |
|
1516 | 1516 |
|
... | ... |
@@ -2577,21 +2577,21 @@ def derivepassphrase_vault( # noqa: C901,PLR0912,PLR0913,PLR0914,PLR0915 |
2577 | 2577 |
for param in ctx.command.params: |
2578 | 2578 |
if isinstance(param, click.Option): |
2579 | 2579 |
group: type[click.Option] |
2580 |
- # Use match/case here once Python 3.9 becomes unsupported. |
|
2581 |
- if isinstance(param, PassphraseGenerationOption): |
|
2582 |
- group = PassphraseGenerationOption |
|
2583 |
- elif isinstance(param, ConfigurationOption): |
|
2584 |
- group = ConfigurationOption |
|
2585 |
- elif isinstance(param, StorageManagementOption): |
|
2586 |
- group = StorageManagementOption |
|
2587 |
- elif isinstance(param, LoggingOption): |
|
2588 |
- group = LoggingOption |
|
2589 |
- elif isinstance(param, CompatibilityOption): |
|
2590 |
- group = CompatibilityOption |
|
2591 |
- elif isinstance(param, StandardOption): |
|
2592 |
- group = StandardOption |
|
2593 |
- elif isinstance(param, OptionGroupOption): # pragma: no cover |
|
2594 |
- raise AssertionError( # noqa: TRY003,TRY004 |
|
2580 |
+ known_option_groups = [ |
|
2581 |
+ PassphraseGenerationOption, |
|
2582 |
+ ConfigurationOption, |
|
2583 |
+ StorageManagementOption, |
|
2584 |
+ LoggingOption, |
|
2585 |
+ CompatibilityOption, |
|
2586 |
+ StandardOption, |
|
2587 |
+ ] |
|
2588 |
+ if isinstance(param, OptionGroupOption): |
|
2589 |
+ for class_ in known_option_groups: |
|
2590 |
+ if isinstance(param, class_): |
|
2591 |
+ group = class_ |
|
2592 |
+ break |
|
2593 |
+ else: # pragma: no cover |
|
2594 |
+ raise AssertionError( # noqa: TRY003 |
|
2595 | 2595 |
f'Unknown option group for {param!r}' # noqa: EM102 |
2596 | 2596 |
) |
2597 | 2597 |
else: |
2598 | 2598 |