Marco Ricci
Harmonize the interface for both vault config export handlers
Marco Ricci commited 0ecb8a9 at 2025-01-11 19:04:57
# SPDX-FileCopyrightText: 2025 Marco Ricci <software@the13thletter.info>
#
# SPDX-License-Identifier: Zlib
"""Foreign configuration exporter for derivepassphrase."""
from __future__ import annotations
import importlib
import os
from typing import TYPE_CHECKING, Protocol
import derivepassphrase as dpp
if TYPE_CHECKING:
from collections.abc import Callable
from typing import Any
from typing_extensions import Buffer
__author__ = dpp.__author__
__version__ = dpp.__version__
__all__ = ()
INVALID_VAULT_NATIVE_CONFIGURATION_FORMAT = (
'Invalid vault native configuration format: {fmt!r}'
)
class NotAVaultConfigError(ValueError):
"""The `path` does not hold a `format`-type vault configuration."""
def __init__(
self,
path: str | bytes,
format: str | None = None, # noqa: A002
) -> None:
self.path = path
self.format = format
def __str__(self) -> str: # pragma: no cover
formatted_format = (
f'vault {self.format} configuration'
if self.format
else 'vault configuration'
)
return f'Not a {formatted_format}: {self.path!r}'
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX