class_docstr: Class of prox that wraps a list of prox
  
  Parameters
  ----------
  prox_list : `list` of `Prox`
      List of prox that are wrapped
  
  Attributes
  ----------
  n_proxs : int
      Number of wrapped Prox
  
  Notes
  -----
  You cannot call globally this Prox, you must call all wrapped Prox one
  by one. Otherwise the order of your prox in the ProxList might change the
  result
class_docstr_tok: ["Class","of","prox","that","wraps","a","list","of","prox","Parameters","--","--","--","--","--","prox_list",":","`","list","`","of","`","Prox","`","List","of","prox","that","are","wrapped","Attributes","--","--","--","--","--","n_proxs",":","int","Number","of","wrapped","Prox","Notes","--","--","-","You","can","not","call","globally","this","Prox",",","you","must","call","all","wrapped","Prox","one","by","one",".","Otherwise","the","order","of","your","prox","in","the","ProxList","might","change","the","result"]
code: def __init__(self, prox_list: list):
      if isinstance(prox_list, Prox):
          prox_list = [prox_list]
  
      # Range is stored in each Prox individually
      Prox.__init__(self, range=None)
      if len(prox_list) == 0:
          raise ValueError("prox_list must have at least one Prox")
      self.prox_list = prox_list
      self.n_proxs = len(self.prox_list)
  
file_path: tick/tick/solver/gfb.py
imports: import numpy
  from tick.prox.base import Prox
  from .base import SolverFirstOrder
  from .base.utils import relative_distance
label_desc: Use image node_id 1 to create a new CompositeProx object from inherited base classes: Prox with example: obj = CompositeProx(prox_list)