class_docstr: This class represent the dimension of a physical quantities.
  
  The ``Dimension`` constructor takes as parameters a name and an optional
  symbol.
  
  For example, in classical mechanics we know that time is different from
  temperature and dimensions make this difference (but they do not provide
  any measure of these quantites.
  
      >>> from sympy.physics.units import Dimension
      >>> length = Dimension('length')
      >>> length
      Dimension(length)
      >>> time = Dimension('time')
      >>> time
      Dimension(time)
  
  Dimensions can be composed using multiplication, division and
  exponentiation (by a number) to give new dimensions. Addition and
  subtraction is defined only when the two objects are the same dimension.
  
      >>> velocity = length / time
      >>> velocity
      Dimension(length/time)
  
  It is possible to use a dimension system object to get the dimensionsal
  dependencies of a dimension, for example the dimension system used by the
  SI units convention can be used:
  
      >>> from sympy.physics.units.systems.si import dimsys_SI
      >>> dimsys_SI.get_dimensional_dependencies(velocity)
      {Dimension(length, L): 1, Dimension(time, T): -1}
      >>> length + length
      Dimension(length)
      >>> l2 = length**2
      >>> l2
      Dimension(length**2)
      >>> dimsys_SI.get_dimensional_dependencies(l2)
      {Dimension(length, L): 2}
code: def __add__(self, other):
      from sympy.physics.units.quantities import Quantity
  
      other = sympify(other)
      if isinstance(other, Basic):
          if other.has(Quantity):
              raise TypeError("cannot sum dimension and quantity")
          if isinstance(other, Dimension) and self == other:
              return self
          return super().__add__(other)
      return self
  
imports: from __future__ import annotations
  import collections
  from functools import reduce
  from sympy.core.basic import Basic
  from sympy.core.containers import Dict, Tuple
  from sympy.core.singleton import S
  from sympy.core.sorting import default_sort_key
  from sympy.core.symbol import Symbol
  from sympy.core.sympify import sympify
  from sympy.matrices.dense import Matrix
  from sympy.functions.elementary.trigonometric import TrigonometricFunction
  from sympy.core.expr import Expr
  from sympy.core.power import Pow
label_desc: Use image node_id 7 for calling the Dimension obj's underlying member method code with example usage: obj.__add__(other) and returns: self, super, self