Spaces:
Sleeping
Sleeping
import string | |
from typing import Any | |
class StrParser: | |
def __init__( | |
self, | |
template: str = '', | |
**format_field, | |
): | |
fields = {item[1] for item in string.Formatter().parse(template) if item[1] is not None} | |
if not fields.issubset(format_field.keys()): | |
raise ValueError( | |
'not all required fields of "template" are provided, missing ' | |
f'{fields - format_field.keys()}. Please pass them as keyword arguments.' | |
) | |
self.template = template | |
self.format_field = format_field | |
def format_instruction(self) -> Any: | |
format_data = {key: self.format_to_string(value) for key, value in self.format_field.items()} | |
return self.template.format(**format_data) | |
def format_to_string(self, format_model: Any) -> str: | |
return format_model | |
def format_response(self, parsed: dict) -> str: | |
raise NotImplementedError | |
def parse_response(self, data: str) -> str: | |
return data | |