Source code for config_resolver.handler.base

"""
This module contains helpers for type hinting
"""

from typing import Any, Generic, Optional, TypeVar

from packaging.version import Version

TConfig = TypeVar("TConfig", bound=Any)  # pylint: disable=invalid-name


[docs]class Handler(Generic[TConfig]): """ A generic config file handler. Concrete classes should be created in order to support new file formats. """ #: The filename that is used when the user did not specify a filename when #: retrieving the config instance DEFAULT_FILENAME = "unknown"
[docs] @staticmethod def empty() -> TConfig: """ Create an empty configuration instance. """ raise NotImplementedError("Not yet implemented")
[docs] @staticmethod def from_string(data: str) -> TConfig: """ Create a configuration instance from a text-string """ raise NotImplementedError("Not yet implemented")
[docs] @staticmethod def from_filename(filename: str) -> TConfig: """ Create a configuration instance from a file-name. """ raise NotImplementedError("Not yet implemented")
[docs] @staticmethod def get_version(config: TConfig) -> Optional[Version]: """ Retrieve the parsed version number from a given config instance. """ raise NotImplementedError("Not yet implemented")
[docs] @staticmethod def update_from_file(config: TConfig, filename: str) -> None: """ Updates an existing config instance from a given filename. The config instance in *data* will be modified in-place! """ raise NotImplementedError("Not yet implemented")