Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
processing.py59 linesDownload Raw Back to output
1import re2from typing import Optional, List3 4from ..plugins import ConverterPlugin5from ..plugins.registry import plugin_manager6from ..context import Environment7 8 9MIME_RE = re.compile(r'^[^/]+/[^/]+$')10 11 12def is_valid_mime(mime):13    return mime and MIME_RE.match(mime)14 15 16class Conversion:17 18    @staticmethod19    def get_converter(mime: str) -> Optional[ConverterPlugin]:20        if is_valid_mime(mime):21            for converter_class in plugin_manager.get_converters():22                if converter_class.supports(mime):23                    return converter_class(mime)24 25 26class Formatting:27    """A delegate class that invokes the actual processors."""28 29    def __init__(self, groups: List[str], env=Environment(), **kwargs):30        """31        :param groups: names of processor groups to be applied32        :param env: Environment33        :param kwargs: additional keyword arguments for processors34 35        """36        available_plugins = plugin_manager.get_formatters_grouped()37        self.enabled_plugins = []38        for group in groups:39            for cls in available_plugins[group]:40                p = cls(env=env, **kwargs)41                if p.enabled:42                    self.enabled_plugins.append(p)43 44    def format_headers(self, headers: str) -> str:45        for p in self.enabled_plugins:46            headers = p.format_headers(headers)47        return headers48 49    def format_body(self, content: str, mime: str) -> str:50        if is_valid_mime(mime):51            for p in self.enabled_plugins:52                content = p.format_body(content, mime)53        return content54 55    def format_metadata(self, metadata: str) -> str:56        for p in self.enabled_plugins:57            metadata = p.format_metadata(metadata)58        return metadata59 
codekingpro/portable-devtools · Team Ai