docstr: The total amount of time spent on all tasks in this span tree
  
  See Also
  --------
  all_durations
  distributed.scheduler.TaskGroup.duration
docstr_tok: ["The","total","amount","of","time","spent","on","all","tasks","in","this","span","tree","See","Also","--","--","--","--","all_durations","distributed.scheduler.TaskGroup.duration"]
code: def duration(self) -> float:
      """The total amount of time spent on all tasks in this span tree
  
      See Also
      --------
      all_durations
      distributed.scheduler.TaskGroup.duration
      """
      return sum(tg.duration for tg in self.traverse_groups())
  
imports: from __future__ import annotations
  import uuid
  import weakref
  from collections import defaultdict
  from collections.abc import Hashable, Iterable, Iterator
  from contextlib import contextmanager
  from itertools import islice
  from typing import TYPE_CHECKING, Any
  import dask.config
  from dask.typing import Key
  from distributed.collections import sum_mappings
  from distributed.itertools import ffill
  from distributed.metrics import time
label_desc: Use image node_id 12 for calling the Span obj's underlying member method code with example usage: obj.duration() and returns: sum