class_docstr: Proximal operator of the L2 penalization. Do not mix up with ProxL2sq,
  which is regular ridge (squared L2) penalization. ProxL2 induces sparsity
  on the full vector, whenever the norm of it is small enough.
  This is mostly used in the ProxGroupL1 for group-lasso penalization.
  
  Parameters
  ----------
  strength : `float`
      Level of penalization. Note that in this proximal operator, ``strength``
      is automatically multiplied by the square-root of ``end`` - ``start``,
      when a range is used, or ``n_coeffs``, when no range is used
      (size of the passed vector). This allows to consider strengths that have
      the same order as with `ProxL1` or other separable proximal operators.
  
  range : `tuple` of two `int`, default=`None`
      Range on which the prox is applied. If `None` then the prox is
      applied on the whole vector
  
  positive : `bool`, default=`False`
      If True, apply L2 penalization together with a projection
      onto the set of vectors with non-negative entries
  
  Attributes
  ----------
  dtype : `{'float64', 'float32'}`
      Type of the arrays used.
code: def _call(self, coeffs: np.ndarray, step: float, out: np.ndarray):
      self._prox.call(coeffs, step, out)
  
file_path: tick/tick/prox/prox_l2.py
imports: import numpy
  from .base import Prox
  from .build.prox import ProxL2Double
  from .build.prox import ProxL2Float
label_desc: Use image node_id 2 for calling the ProxL2 obj's underlying member method code with example usage: obj._call(coeffs, step, out) without return types