code: def big_bounding_box(paths_n_stuff):
      
      bbs = []
      for thing in paths_n_stuff:
          if is_path_segment(thing) or isinstance(thing, Path):
              bbs.append(thing.bbox())
          elif isinstance(thing, complex):
              bbs.append((thing.real, thing.real, thing.imag, thing.imag))
          else:
              try:
                  complexthing = complex(thing)
                  bbs.append((complexthing.real, complexthing.real,
                              complexthing.imag, complexthing.imag))
              except ValueError:
                  raise TypeError(
                      "paths_n_stuff can only contains Path, CubicBezier, "
                      "QuadraticBezier, Line, and complex objects.")
      xmins, xmaxs, ymins, ymaxs = list(zip(*bbs))
      xmin = min(xmins)
      xmax = max(xmaxs)
      ymin = min(ymins)
      ymax = max(ymaxs)
      return xmin, xmax, ymin, ymax
docs: Finds a BB containing a collection of paths, Bezier path segments, and
      points (given as complex numbers).