class_docstr: Helper for gather().
  
  This overrides cancel() to cancel all the children and act more
  like Task.cancel(), which doesn't immediately mark itself as
  cancelled.
code: def cancel(self, msg=None):
      if self.done():
          return False
      ret = False
      for child in self._children:
          if child.cancel(msg=msg):
              ret = True
      if ret:
          # If any child tasks were actually cancelled, we should
          # propagate the cancellation request regardless of
          # *return_exceptions* argument.  See issue 32684.
          self._cancel_requested = True
      return ret
  
imports: import concurrent.futures
  import contextvars
  import functools
  import inspect
  import itertools
  import types
  import warnings
  import weakref
  from types import GenericAlias
  from .None import base_tasks
  from .None import coroutines
  from .None import events
  from .None import exceptions
  from .None import futures
  from .coroutines import _is_coroutine
label_desc: Use image node_id 2 for calling the _GatheringFuture obj's underlying member method code with example usage: obj.cancel(msg) and returns: ret, False