Source code for credsweeper.filters.group.group

from abc import ABC
from typing import List

from credsweeper.common.constants import GroupType
from credsweeper.config.config import Config
from credsweeper.filters.filter import Filter
from credsweeper.filters.line_specific_key_check import LineSpecificKeyCheck
from credsweeper.filters.value_allowlist_check import ValueAllowlistCheck
from credsweeper.filters.value_array_dictionary_check import ValueArrayDictionaryCheck
from credsweeper.filters.value_blocklist_check import ValueBlocklistCheck
from credsweeper.filters.value_camel_case_check import ValueCamelCaseCheck
from credsweeper.filters.value_file_path_check import ValueFilePathCheck
from credsweeper.filters.value_hex_number_check import ValueHexNumberCheck
from credsweeper.filters.value_last_word_check import ValueLastWordCheck
from credsweeper.filters.value_method_check import ValueMethodCheck
from credsweeper.filters.value_not_allowed_pattern_check import ValueNotAllowedPatternCheck
from credsweeper.filters.value_pattern_check import ValuePatternCheck
from credsweeper.filters.value_similarity_check import ValueSimilarityCheck
from credsweeper.filters.value_string_type_check import ValueStringTypeCheck
from credsweeper.filters.value_token_check import ValueTokenCheck


[docs] class Group(ABC): """Abstract Group class""" def __init__(self, config: Config, rule_type: GroupType = GroupType.DEFAULT) -> None: """Config is required for filter group""" if rule_type == GroupType.KEYWORD: self.__filters = [ # ValueAllowlistCheck(), # ValueArrayDictionaryCheck(), # ValueBlocklistCheck(), # ValueCamelCaseCheck(), # ValueFilePathCheck(), # ValueHexNumberCheck(), # ValueLastWordCheck(), # ValueMethodCheck(), # ValueSimilarityCheck(), # ValueStringTypeCheck(check_for_literals=config.check_for_literals), # ValueTokenCheck(), # ] if not config.doc: self.__filters.extend([ValuePatternCheck(), ValueNotAllowedPatternCheck()]) elif rule_type == GroupType.PATTERN: self.__filters = [ # LineSpecificKeyCheck(), # ValuePatternCheck(), # ] else: # GroupType.DEFAULT self.__filters = [] @property def filters(self) -> List[Filter]: """property getter""" return self.__filters @filters.setter def filters(self, filters: List[Filter]) -> None: """property setter""" self.__filters = filters