code: def prox_tvl1_with_intercept(
      w,
      shape,
      l1_ratio,
      weight,
      dgap_tol,
      max_iter=5000,
      init=None,
      verbose=False,
  ):
      """Compute TV-L1 prox taking into account the intercept.
  
      Parameters
      ----------
      weight : float
         Weight in prox. This would be something like `alpha_ * stepsize`,
         where `alpha_` is the effective (i.e. re-scaled) alpha.
  
      w : ndarray, shape (w_size,)
          The point at which the prox is being computed
  
      init : ndarray, shape (w_size - 1,), optional (default None)
          Initialization vector for the prox.
  
      max_iter : int
          Maximum number of iterations for the solver.
  
      verbose : int, optional (default 0)
          Verbosity level.
  
      dgap_tol : float
          Dual-gap tolerance for TV-L1 prox operator approximation loop.
  
      """
      init = init.reshape(shape) if init is not None else init
      out, prox_info = prox_tvl1(
          w[:-1].reshape(shape),
          weight=weight,
          l1_ratio=l1_ratio,
          dgap_tol=dgap_tol,
          init=init,
          max_iter=max_iter,
          verbose=verbose,
      )
  
      return np.append(out, w[-1]), prox_info
  
file_path: nilearn/nilearn/decoding/_proximal_operators.py
imports: from math import sqrt
  import numpy
  from ._objective_functions import divergence_id, gradient_id, tv_l1_from_gradient
label_desc: Use image node_id 7 for calling a global function with example usage: prox_tvl1_with_intercept(w, shape, l1_ratio, weight, dgap_tol, max_iter, init, verbose) and returns: np,  prox_info