docs: def fileinfo(self, fid):
          """Ask lain about what he knows about given file. If the given file
          exists in the file dict, it will get updated."""
  
          if not isinstance(fid, str):
              raise TypeError("Your file ID must be a string")
          try:
              info = self.conn.make_call_with_cb("getFileinfo", fid).get(timeout=5)
              if not info:
                  warnings.warn(
                      f"Your query for file with ID: '{fid}' failed.", RuntimeWarning
                  )
              elif fid in self.__files and not self.__files[fid].updated:
                  self.__files[fid].fileupdate(info)
          except queue.Empty as ex:
              raise ValueError(
                  "lain didn't produce a callback!\n"
                  "Are you sure your query wasn't malformed?"
              ) from ex
          return info