Source code for credsweeper.filters.group.group

from abc import ABC
from typing import List

from credsweeper.common.constants import GroupType
from credsweeper.config import Config
from credsweeper.filters import (Filter, LineSpecificKeyCheck, SeparatorUnusualCheck, ValueAllowlistCheck,
                                 ValueArrayDictionaryCheck, ValueBlocklistCheck, ValueCamelCaseCheck,
                                 ValueFilePathCheck, ValueFirstWordCheck, ValueLastWordCheck, ValueLengthCheck,
                                 ValueMethodCheck, ValueNotAllowedPatternCheck, ValuePatternCheck, ValueSimilarityCheck,
                                 ValueStringTypeCheck, ValueTokenCheck, VariableCheck)


[docs]class Group(ABC): def __init__(self, config: Config, rule_type: GroupType) -> None: if rule_type == GroupType.KEYWORD: self.filters: List[Filter] = self.get_keyword_base_filters(config) elif rule_type == GroupType.PATTERN: self.filters: List[Filter] = self.get_pattern_base_filters() else: self.filters: List[Filter] = [] @property def filters(self) -> List[Filter]: return self.__filters @filters.setter def filters(self, filters: List[Filter]) -> None: self.__filters = filters
[docs] def get_keyword_base_filters(self, config: Config) -> List[Filter]: return [ SeparatorUnusualCheck(), ValueAllowlistCheck(), ValueArrayDictionaryCheck(), ValueBlocklistCheck(), ValueCamelCaseCheck(), ValueFilePathCheck(), ValueFirstWordCheck(), ValueLastWordCheck(), ValueLengthCheck(), ValueMethodCheck(), ValueNotAllowedPatternCheck(), ValueSimilarityCheck(), ValueStringTypeCheck(config), ValueTokenCheck(), VariableCheck(), ValuePatternCheck() ]
[docs] def get_pattern_base_filters(self) -> List[Filter]: return [LineSpecificKeyCheck(), ValuePatternCheck()]