Source code for credsweeper.file_handler.analysis_target

from functools import cached_property
from typing import List, Optional

from credsweeper.file_handler.descriptor import Descriptor


[docs] class AnalysisTarget: """AnalysisTarget""" def __init__( self, line_pos: int, lines: List[str], line_nums: List[int], descriptor: Descriptor, line: Optional[str] = None, offset: Optional[int] = None, ): self.__line_pos = line_pos self.__lines = lines self.__line_nums = line_nums self.__descriptor = descriptor self.__line = line self.__offset = offset @cached_property def offset(self) -> Optional[int]: """cached value""" # when the offset is not None - it means that original line was split into chunks return self.__offset @cached_property def line(self) -> str: """cached value""" if self.__line is None: # normal target return self.__lines[self.__line_pos] # chunked target return self.__line @cached_property def line_len(self) -> int: """cached value""" return len(self.line) @cached_property def line_strip(self) -> str: """cached value""" return self.line.strip() @cached_property def line_strip_len(self) -> int: """cached value""" return len(self.line_strip) @cached_property def line_lower(self) -> str: """cached value""" return self.line.lower() @cached_property def line_lower_strip(self) -> str: """cached value""" return self.line_lower.strip() @cached_property def lines(self) -> List[str]: """cached value""" return self.__lines @cached_property def lines_len(self) -> int: """cached value""" return len(self.__lines) @cached_property def line_pos(self) -> int: """cached value""" return self.__line_pos @cached_property def line_num(self) -> int: """cached value""" return self.__line_nums[self.__line_pos] @cached_property def line_nums(self) -> List[int]: """cached value""" return self.__line_nums @cached_property def file_path(self) -> Optional[str]: """cached value""" return self.__descriptor.path @cached_property def file_type(self) -> Optional[str]: """cached value""" return self.__descriptor.extension @cached_property def info(self) -> Optional[str]: """cached value""" return self.__descriptor.info @cached_property def descriptor(self) -> Descriptor: """cached value""" return self.__descriptor