title: Why does this seemingly recursive code work, in skimage's source?
body: <p>In the module <code>_denoise.py</code> of <code>skimage</code> I found the following piece of code:</p>
  
  <pre><code>def estimate_sigma(image, average_sigmas=False, multichannel=False):
          # some more code here
          sigmas = [estimate_sigma(image[..., c], multichannel=False)...
      return _sigma_est_dwt(detail_coeffs, distribution='Gaussian')
  </code></pre>
  
  <p>Inside <code>estimate_sigma</code> there's an <code>estimate_sigma</code>? How and why does that work? The imports are</p>
  
  <pre><code>import scipy.stats
  import numpy as np
  from math import ceil
  from .. import img_as_float
  from ..restoration._denoise_cy import _denoise_bilateral, _denoise_tv_bregman
  from .._shared.utils import skimage_deprecation, warn
  import pywt
  import skimage.color as color
  import numbers
  </code></pre>
  
  <p>which doesn't seem to sneak in any new functions.</p>