code: def covariance_scm(X, *, assume_centered=False):
      """Sample covariance estimator.
  
      Sample covariance estimator, re-implementing `empirical_covariance` of
      scikit-learn [1]_, but supporting real and complex-valued data.
  
      Parameters
      ----------
      X : ndarray, shape (n_channels, n_times)
          Multi-channel time-series, real or complex-valued.
      assume_centered : bool, default=False
          If `True`, data will not be centered before computation.
          Useful when working with data whose mean is almost, but not exactly
          zero.
          If `False`, data will be centered before computation.
  
      Returns
      -------
      cov : ndarray, shape (n_channels, n_channels)
          Sample covariance matrix.
  
      Notes
      -----
      .. versionadded:: 0.6
  
      References
      ----------
      .. [1] https://scikit-learn.org/stable/modules/generated/sklearn.covariance.empirical_covariance.html
      """  # noqa
      _, n_times = X.shape
  
      if assume_centered:
          cov = X @ X.conj().T / n_times
      else:
          cov = np.cov(X, bias=1)
  
      return cov
  
imports: import warnings
  from functools import wraps
  import numpy
  from scipy.linalg import block_diag
  from scipy.stats import chi2
  from sklearn.covariance import oas, ledoit_wolf, fast_mcd
  from .distance import distance_mahalanobis
  from .test import is_square, is_real_type
label_desc: Use image node_id 10 for calling a global function with example usage: covariance_scm(X) and returns: cov