Source code for scrubadub.post_processors.prefix_suffix

from typing import Optional, Sequence

from scrubadub.filth import Filth
from scrubadub.post_processors.catalogue import register_post_processor
from scrubadub.post_processors.base import PostProcessor


[docs]class PrefixSuffixReplacer(PostProcessor): """Add a prefix and/or suffix to the Filth's replacement string. >>> import scrubadub >>> scrubber = scrubadub.Scrubber(post_processor_list=[ ... scrubadub.post_processors.FilthReplacer(), ... ]) >>> scrubber.clean("Contact me at 522-368-8530 or hernandezjenna@example.com") 'Contact me at PHONE or EMAIL' >>> scrubber = scrubadub.Scrubber(post_processor_list=[ ... scrubadub.post_processors.FilthReplacer(), ... scrubadub.post_processors.PrefixSuffixReplacer(prefix='{{', suffix='}}'), ... ]) >>> scrubber.clean("Contact me at 522-368-8530 or hernandezjenna@example.com") 'Contact me at {{PHONE}} or {{EMAIL}}' >>> scrubber = scrubadub.Scrubber(post_processor_list=[ ... scrubadub.post_processors.FilthReplacer(), ... scrubadub.post_processors.PrefixSuffixReplacer(prefix='<b>', suffix='</b>'), ... ]) >>> scrubber.clean("Contact me at 522-368-8530 or hernandezjenna@example.com") 'Contact me at <b>PHONE</b> or <b>EMAIL</b>' """ name = 'prefix_suffix_replacer' # type: str autoload = False index = 1
[docs] def __init__(self, prefix: Optional[str] = '{{', suffix: Optional[str] = '}}', name: Optional[str] = None): super(PrefixSuffixReplacer, self).__init__(name=name) self.prefix = prefix self.suffix = suffix
[docs] def process_filth(self, filth_list: Sequence[Filth]) -> Sequence[Filth]: """Processes the filth to add prefixes and suffixes to the replacement text :param filth_list: The text to be hashed :type filth_list: Sequence[Filth] :return: The processed filths :rtype: Sequence[Filth] """ for filth_item in filth_list: if filth_item.replacement_string is None: filth_item.replacement_string = filth_item.type.upper() if self.prefix is not None and self.suffix is not None: filth_item.replacement_string = self.prefix + filth_item.replacement_string + self.suffix elif self.prefix is not None: filth_item.replacement_string = self.prefix + filth_item.replacement_string elif self.suffix is not None: filth_item.replacement_string = filth_item.replacement_string + self.suffix return filth_list
register_post_processor(PrefixSuffixReplacer) __all__ = ['PrefixSuffixReplacer']