docs: def is_zipstream(data):
      """
      just like zipfile.is_zipfile, but works upon buffers and streams
      rather than filenames.
  
      If data supports the read method, it will be treated as a stream
      and read from to test whether it is a valid ZipFile.
  
      If data also supports the tell and seek methods, it will be
      rewound after being tested.
      """
  
      if isinstance(data, (str, buffer)):
          data = BytesIO(data)
  
      if hasattr(data, "read"):
          tell = 0
          if hasattr(data, "tell"):
              tell = data.tell()
  
          try:
              result = bool(_EndRecData(data))
          except IOError:
              result = False
  
          if hasattr(data, "seek"):
              data.seek(tell)
  
      else:
          raise TypeError("requies str, buffer, or stream-like object")
  
      return result