code: def done(self):
          
          return self._exception != self._SENTINEL or self._result != self._SENTINEL
docs: Return True the future is done, False otherwise.
  
          This still returns True in failure cases; checking :meth:`result` or
          :meth:`exception` is the canonical way to assess success or failure.