code: def get_dim(self, X):
          
          # Cache
          if not hasattr(self, '_D'):
              self._D = self.transform(X[[0]], *self.params_values()).shape[1]
          return self._D
docs: Get the output dimensionality of this basis.
  
          This makes a cheap call to transform with the initial parameter values
          to ascertain the dimensionality of the output features.
  
          Parameters
          ----------
          X : ndarray
              (N, d) array of observations where N is the number of samples, and
              d is the dimensionality of X.
  
          Returns
          -------
          int :
              The dimensionality of the basis.