class_docstr: Estimation of block covariance matrix.
  
  Perform a block covariance estimation for each given matrix. The
  resulting matrices are block diagonal matrices.
  
  The blocks on the diagonal are calculated as individual covariance
  matrices for a subset of channels using the given the estimator.
  Varying block sized possible by passing a list to allow incorporation
  of different modalities with different number of channels (e.g. EEG,
  ECoG, LFP, EMG) with their own respective covariance matrices.
  
  Parameters
  ----------
  block_size : int | list of int
      Sizes of individual blocks given as int for same-size block, or list
      for varying block sizes.
  estimator : string, default='scm'
      Covariance matrix estimator, see
      :func:`pyriemann.utils.covariance.covariances`.
  **kwds : dict
      Any further parameters are passed directly to the covariance estimator.
  
  Notes
  -----
  .. versionadded:: 0.3
  
  See Also
  --------
  Covariances
docstr: Init.
docstr_tok: ["Init","."]
code: def __init__(self, block_size, estimator="scm", **kwds):
      """Init."""
      self.estimator = estimator
      self.block_size = block_size
      self.kwds = kwds
  
imports: import numpy
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.covariance import shrunk_covariance
  from sklearn.metrics.pairwise import pairwise_kernels
  from .spatialfilters import Xdawn
  from .utils.covariance import covariances, covariances_EP, cospectrum, coherence, block_covariances
label_desc: Use image node_id 1 to create a new BlockCovariances object from inherited base classes: BaseEstimator, TransformerMixin with example: obj = BlockCovariances(block_size, estimator)