code: def read_table(path):
      
      assert isinstance(path, string_types + (list,)), """
  {} no es un `path` valido""".format(path)
  
      # Si `path` es una lista, devolverla intacta si tiene formato tabular.
      # Si no, levantar una excepción.
      if isinstance(path, list):
          if helpers.is_list_of_matching_dicts(path):
              return path
          else:
              raise ValueError("""
  La lista ingresada no esta formada por diccionarios con las mismas claves.""")
  
      # Deduzco el formato de archivo de `path` y redirijo según corresponda.
      suffix = path.split(".")[-1]
      if suffix == "csv":
          return _read_csv_table(path)
      elif suffix == "xlsx":
          return _read_xlsx_table(path)
      else:
          raise ValueError("""
  {} no es un sufijo reconocido. Pruebe con .csv o .xlsx""".format(suffix))
docs: Lee un archivo tabular (CSV o XLSX) a una lista de diccionarios.
  
      La extensión del archivo debe ser ".csv" o ".xlsx". En función de
      ella se decidirá el método a usar para leerlo.
  
      Si recibe una lista, comprueba que todos sus diccionarios tengan las
      mismas claves y de ser así, la devuelve intacta. Levanta una Excepción
      en caso contrario.
  
      Args:
          path(str o list): Como 'str', path a un archivo CSV o XLSX.
  
      Returns:
          list: Lista de diccionarios con claves idénticas representando el
          archivo original.