Spaces:
Runtime error
Runtime error
"""Utilities for formatting strings.""" | |
from string import Formatter | |
from typing import Any, Mapping, Sequence, Union | |
class StrictFormatter(Formatter): | |
"""A subclass of formatter that checks for extra keys.""" | |
def check_unused_args( | |
self, | |
used_args: Sequence[Union[int, str]], | |
args: Sequence, | |
kwargs: Mapping[str, Any], | |
) -> None: | |
"""Check to see if extra parameters are passed.""" | |
extra = set(kwargs).difference(used_args) | |
if extra: | |
raise KeyError(extra) | |
def vformat( | |
self, format_string: str, args: Sequence, kwargs: Mapping[str, Any] | |
) -> str: | |
"""Check that no arguments are provided.""" | |
if len(args) > 0: | |
raise ValueError( | |
"No arguments should be provided, " | |
"everything should be passed as keyword arguments." | |
) | |
return super().vformat(format_string, args, kwargs) | |
formatter = StrictFormatter() | |