"""Module for URI Template expansion.""" | |
from __future__ import annotations | |
from .expansions import ExpansionFailedError | |
from .uritemplate import ExpansionInvalidError, ExpansionReservedError, URITemplate | |
from .variable import Variable, VariableInvalidError | |
__all__ = ( | |
'URITemplate', | |
'Variable', | |
'ExpansionInvalidError', | |
'ExpansionReservedError', | |
'VariableInvalidError', | |
'ExpansionFailedError', | |
) | |
def expand(template: str, **kwargs) -> (str | None): | |
try: | |
templ = URITemplate(template) | |
return templ.expand(**kwargs) | |
except Exception: | |
return None | |
def partial(template: str, **kwargs) -> (str | None): | |
try: | |
templ = URITemplate(template) | |
return str(templ.partial(**kwargs)) | |
except Exception: | |
return None | |
def validate(template: str) -> bool: | |
try: | |
URITemplate(template) | |
return True | |
except Exception: | |
return False | |