class_docstr: Explainability result for general component objects.
  The explained components can describe anything.
  
  Example
  -------
  >>> explainer = SomeComponentBasedExplainer(model)
  >>> explain_results = explainer.explain()
  >>> output = explain_results.get_explanation(component="some_component")
class_docstr_tok: ["Explainability","result","for","general","component","objects",".","The","explained","components","can","describe","anything",".","Example","--","--","--","-",">",">",">","explainer","=","SomeComponentBasedExplainer","(","model",")",">",">",">","explain_results","=","explainer.explain","(",")",">",">",">","output","=","explain_results.get_explanation","(","component=","''","some_component","''",")"]
code: def __init__(
      self,
      explained_components: Union[Dict[str, Any], List[Dict[str, Any]]],
  ):
      if isinstance(explained_components, list):
          comps_available = explained_components[0].keys()
          if not all(
              comp.keys() == comps_available
              for comp in explained_components
          ):
              raise_log(
                  ValueError(
                      "When giving a list of explained component dicts, the dict keys must match."
                  ),
                  logger=logger,
              )
      else:
          comps_available = explained_components.keys()
      self.explained_components = explained_components
      self.available_components = comps_available
  
imports: from abc import ABC, abstractmethod
  from typing import Any, Dict, List, Optional, Union
  import pandas
  import shap
  from darts import TimeSeries
  from darts.logging import get_logger, raise_if, raise_if_not, raise_log
label_desc: Use image node_id 1 to create a new ComponentBasedExplainabilityResult object from inherited base classes: _ExplainabilityResult with example: obj = ComponentBasedExplainabilityResult(explained_components)