class_docstr: Base pairwise transformer for panel data template class.
  
  The base pairwise transformer specifies the methods and method signatures that all
  pairwise transformers have to implement.
  
  Specific implementations of these methods is deferred to concrete classes.
class_docstr_tok: ["Base","pairwise","transformer","for","panel","data","template","class",".","The","base","pairwise","transformer","specifies","the","methods","and","method","signatures","that","all","pairwise","transformers","have","to","implement",".","Specific","implementations","of","these","methods","is","deferred","to","concrete","classes","."]
docstr: Magic + method, return (right) added CombinedDistance.
  
  Implemented for `other` being:
  * a pairwise panel transformer, then `CombinedDistance([other, self], "+")`
  
  Parameters
  ----------
  other: one of:
      * `sktime` transformer, must inherit from BaseTransformer,
      otherwise, `NotImplemented` is returned (leads to further dispatch by rmul)
  
  Returns
  -------
  CombinedDistance object,
      algebraic addition of `self` (first) with `other` (last).
      not nested, contains only non-CombinedDistance `sktime` transformers
docstr_tok: ["Magic","+","method",",","return","(","right",")","added","CombinedDistance",".","Implemented","for","`","other","`","being",":","*","a","pairwise","panel","transformer",",","then","`","CombinedDistance","(","[","other",",","self","]",",","``","+","''",")","`","Parameters","--","--","--","--","--","other",":","one","of",":","*","`","sktime","`","transformer",",","must","inherit","from","BaseTransformer",",","otherwise",",","`","NotImplemented","`","is","returned","(","leads","to","further","dispatch","by","rmul",")","Returns","--","--","--","-","CombinedDistance","object",",","algebraic","addition","of","`","self","`","(","first",")","with","`","other","`","(","last",")",".","not","nested",",","contains","only","non-CombinedDistance","`","sktime","`","transformers"]
code: def __add__(self, other):
      """Magic + method, return (right) added CombinedDistance.
  
      Implemented for `other` being:
      * a pairwise panel transformer, then `CombinedDistance([other, self], "+")`
  
      Parameters
      ----------
      other: one of:
          * `sktime` transformer, must inherit from BaseTransformer,
          otherwise, `NotImplemented` is returned (leads to further dispatch by rmul)
  
      Returns
      -------
      CombinedDistance object,
          algebraic addition of `self` (first) with `other` (last).
          not nested, contains only non-CombinedDistance `sktime` transformers
      """
      from sktime.dists_kernels.algebra import CombinedDistance
      from sktime.dists_kernels.dummy import ConstantPwTrafoPanel
  
      # when other is an integer or float, treat it as constant distance/kernel
      if isinstance(other, (int, float)):
          other = ConstantPwTrafoPanel(constant=other)
  
      # we wrap self in a CombinedDistance, and concatenate with the other
      #   the CombinedDistance does the rest, e.g., dispatch on other
      if isinstance(other, BasePairwiseTransformerPanel):
          if not isinstance(self, CombinedDistance):
              self_as_pipeline = CombinedDistance(
                  pw_trafos=[self], operation="+"
              )
          else:
              self_as_pipeline = self
          return self_as_pipeline + other
      # otherwise, we let the right operation handle the remaining dispatch
      else:
          return NotImplemented
  
imports: from sktime.base import BaseEstimator
  from sktime.datatypes import check_is_scitype, convert_to
  from sktime.datatypes._series_as_panel import convert_Series_to_Panel
label_desc: Use image node_id 5 for calling the BasePairwiseTransformerPanel obj's underlying member method code with example usage: obj.__add__(other) and returns: unknown, NotImplemented