code: def _ReadTablesArray(self, file_object, tables_array_offset):
      
      # TODO: implement https://github.com/libyal/dtfabric/issues/12 and update
      # keychain_tables_array definition.
  
      data_type_map = self._GetDataTypeMap('keychain_tables_array')
  
      tables_array, _ = self._ReadStructureFromFileObject(
          file_object, tables_array_offset, data_type_map)
  
      tables = collections.OrderedDict()
      for table_offset in tables_array.table_offsets:
        self._ReadTable(tables, file_object, tables_array_offset + table_offset)
  
      return tables
docs: Reads the tables array.
  
      Args:
        file_object (file): file-like object.
        tables_array_offset (int): offset of the tables array relative to
            the start of the file.
  
      Returns:
        dict[int, KeychainDatabaseTable]: tables per identifier.
  
      Raises:
        ParseError: if the tables array cannot be read.