<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _PrintStorageInformationAsText(self, storage_reader):
 """Prints information about the store as human-readable text. Args: storage_reader (StorageReader):
 storage reader. """

    table_view = views.ViewsFactory.GetTableView(
        self._views_format_type, title='Plaso Storage Information')
    table_view.AddRow(['Filename', os.path.basename(self._storage_file_path)])
    table_view.AddRow(['Format version', storage_reader.format_version])
    table_view.AddRow(
        ['Serialization format', storage_reader.serialization_format])
    table_view.Write(self._output_writer)

    if storage_reader.storage_type == definitions.STORAGE_TYPE_SESSION:
      self._PrintSessionsOverview(storage_reader)
      self._PrintSessionsDetails(storage_reader)

      storage_counters = self._CalculateStorageCounters(storage_reader)

      if 'parsers' not in storage_counters:
        self._output_writer.Write(
            'Unable to determine number of events generated per parser.\n')
      else:
        self._PrintParsersCounter(storage_counters['parsers'])

      if 'analysis_reports' not in storage_counters:
        self._output_writer.Write(
            'Unable to determine number of reports generated per plugin.\n')
      else:
        self._PrintAnalysisReportCounter(storage_counters['analysis_reports'])

      if 'event_labels' not in storage_counters:
        self._output_writer.Write(
            'Unable to determine number of event tags generated per label.\n')
      else:
        self._PrintEventLabelsCounter(storage_counters['event_labels'])

      self._PrintWarningCounters(storage_counters)

      if self._verbose:
        self._PrintWarningsDetails(storage_reader)

      self._PrintAnalysisReportsDetails(storage_reader)

    elif storage_reader.storage_type == definitions.STORAGE_TYPE_TASK:
      self._PrintTasksInformation(storage_reader)