code: def readfp(self, fp, filename=None):
          
          if filename is None:
              try:
                  filename = fp.name
              except AttributeError:
                  filename = '<???>'
          self._read(fp, filename)
docs: Like read() but the argument must be a file-like object.
  
          The `fp' argument must have a `readline' method.  Optional
          second argument is the `filename', which if not given, is
          taken from fp.name.  If fp has no `name' attribute, `<???>' is
          used.