Source code for dfvfs.analyzer.analyzer_helper

"""The analyzer helper interface."""

from dfvfs.lib import errors


[docs] class AnalyzerHelper: """Analyzer helper interface.""" # pylint: disable=redundant-returns-doc
[docs] def __init__(self): """Initializes an analyzer helper. Raises: ValueError: if a derived analyzer helper class does not define format categories or a type indicator. """ super().__init__() if not getattr(self, "TYPE_INDICATOR", None): raise ValueError("Missing type indicator.") if not getattr(self, "FORMAT_CATEGORIES", None): raise ValueError("Missing format categories.")
@property def format_categories(self): """Retrieves the format categories. The format categories are defined in definitions.FORMAT_CATEGORIES. Returns: set[str]: format categories, such as archive file or file system. """ # pylint: disable=no-member return self.FORMAT_CATEGORIES @property def type_indicator(self): """Retrieves the type indicator. Returns: str: type indicator or None if not available. """ return getattr(self, "TYPE_INDICATOR", None)
[docs] def AnalyzeFileObject(self, file_object): # pylint: disable=useless-type-doc """Retrieves the format specification. This is the fall through implementation that raises a RuntimeError. Args: file_object (FileIO): file-like object. Returns: str: type indicator if the file-like object contains a supported format or None otherwise. Raises: NotSupported: since this is the fall through implementation. """ raise errors.NotSupported("Missing implementation to analyze file-like object.")
[docs] def GetFormatSpecification(self): """Retrieves the format specification. This is the fall through implementation that returns None. Returns: FormatSpecification: format specification or None if the format cannot be defined by a specification object. """ return None
[docs] def IsEnabled(self): """Determines if the analyzer helper is enabled. Returns: bool: True if the analyzer helper is enabled. """ return True