class_docstr: This object represents a point in a dynamic system.
  
  It stores the: position, velocity, and acceleration of a point.
  The position is a vector defined as the vector distance from a parent
  point to this point.
  
  Parameters
  ==========
  
  name : string
      The display name of the Point
  
  Examples
  ========
  
  >>> from sympy.physics.vector import Point, ReferenceFrame, dynamicsymbols
  >>> from sympy.physics.vector import init_vprinting
  >>> init_vprinting(pretty_print=False)
  >>> N = ReferenceFrame('N')
  >>> O = Point('O')
  >>> P = Point('P')
  >>> u1, u2, u3 = dynamicsymbols('u1 u2 u3')
  >>> O.set_vel(N, u1 * N.x + u2 * N.y + u3 * N.z)
  >>> O.acc(N)
  u1'*N.x + u2'*N.y + u3'*N.z
  
  ``symbols()`` can be used to create multiple Points in a single step, for
  example:
  
  >>> from sympy.physics.vector import Point, ReferenceFrame, dynamicsymbols
  >>> from sympy.physics.vector import init_vprinting
  >>> init_vprinting(pretty_print=False)
  >>> from sympy import symbols
  >>> N = ReferenceFrame('N')
  >>> u1, u2 = dynamicsymbols('u1 u2')
  >>> A, B = symbols('A B', cls=Point)
  >>> type(A)
  <class 'sympy.physics.vector.point.Point'>
  >>> A.set_vel(N, u1 * N.x + u2 * N.y)
  >>> B.set_vel(N, u2 * N.x + u1 * N.y)
  >>> A.acc(N) - B.acc(N)
  (u1' - u2')*N.x + (-u1' + u2')*N.y
class_docstr_tok: ["This","object","represents","a","point","in","a","dynamic","system",".","It","stores","the",":","position",",","velocity",",","and","acceleration","of","a","point",".","The","position","is","a","vector","defined","as","the","vector","distance","from","a","parent","point","to","this","point",".","Parameters","==========","name",":","string","The","display","name","of","the","Point","Examples","========",">",">",">","from","sympy.physics.vector","import","Point",",","ReferenceFrame",",","dynamicsymbols",">",">",">","from","sympy.physics.vector","import","init_vprinting",">",">",">","init_vprinting","(","pretty_print=False",")",">",">",">","N","=","ReferenceFrame","(","'N","'",")",">",">",">","O","=","Point","(","'","O","'",")",">",">",">","P","=","Point","(","'","P","'",")",">",">",">","u1",",","u2",",","u3","=","dynamicsymbols","(","'u1","u2","u3","'",")",">",">",">","O.set_vel","(","N",",","u1","*","N.x","+","u2","*","N.y","+","u3","*","N.z",")",">",">",">","O.acc","(","N",")","u1","'","*","N.x","+","u2","'","*","N.y","+","u3","'","*","N.z","``","symbols","(",")","``","can","be","used","to","create","multiple","Points","in","a","single","step",",","for","example",":",">",">",">","from","sympy.physics.vector","import","Point",",","ReferenceFrame",",","dynamicsymbols",">",">",">","from","sympy.physics.vector","import","init_vprinting",">",">",">","init_vprinting","(","pretty_print=False",")",">",">",">","from","sympy","import","symbols",">",">",">","N","=","ReferenceFrame","(","'N","'",")",">",">",">","u1",",","u2","=","dynamicsymbols","(","'u1","u2","'",")",">",">",">","A",",","B","=","symbols","(","'","A","B","'",",","cls=Point",")",">",">",">","type","(","A",")","<","class","'sympy.physics.vector.point.Point","'",">",">",">",">","A.set_vel","(","N",",","u1","*","N.x","+","u2","*","N.y",")",">",">",">","B.set_vel","(","N",",","u2","*","N.x","+","u1","*","N.y",")",">",">",">","A.acc","(","N",")","-","B.acc","(","N",")","(","u1","'","-","u2","'",")","*","N.x","+","(","-u1","'","+","u2","'",")","*","N.y"]
docstr: Returns a list of points that gives the shortest path with respect
  to position, velocity, or acceleration from this point to the provided
  point.
  
  Parameters
  ==========
  other : Point
      A point that may be related to this point by position, velocity, or
      acceleration.
  num : integer
      0 for searching the position tree, 1 for searching the velocity
      tree, and 2 for searching the acceleration tree.
  
  Returns
  =======
  list of Points
      A sequence of points from self to other.
  
  Notes
  =====
  
  It is not clear if num = 1 or num = 2 actually works because the keys
  to ``_vel_dict`` and ``_acc_dict`` are :class:`ReferenceFrame` objects
  which do not have the ``_pdlist`` attribute.
docstr_tok: ["Returns","a","list","of","points","that","gives","the","shortest","path","with","respect","to","position",",","velocity",",","or","acceleration","from","this","point","to","the","provided","point",".","Parameters","==========","other",":","Point","A","point","that","may","be","related","to","this","point","by","position",",","velocity",",","or","acceleration",".","num",":","integer","0","for","searching","the","position","tree",",","1","for","searching","the","velocity","tree",",","and","2","for","searching","the","acceleration","tree",".","Returns","=======","list","of","Points","A","sequence","of","points","from","self","to","other",".","Notes","=====","It","is","not","clear","if","num","=","1","or","num","=","2","actually","works","because","the","keys","to","``","_vel_dict","``","and","``","_acc_dict","``","are",":","class",":","`","ReferenceFrame","`","objects","which","do","not","have","the","``","_pdlist","``","attribute","."]
code: def _pdict_list(self, other, num):
      """Returns a list of points that gives the shortest path with respect
      to position, velocity, or acceleration from this point to the provided
      point.
  
      Parameters
      ==========
      other : Point
          A point that may be related to this point by position, velocity, or
          acceleration.
      num : integer
          0 for searching the position tree, 1 for searching the velocity
          tree, and 2 for searching the acceleration tree.
  
      Returns
      =======
      list of Points
          A sequence of points from self to other.
  
      Notes
      =====
  
      It is not clear if num = 1 or num = 2 actually works because the keys
      to ``_vel_dict`` and ``_acc_dict`` are :class:`ReferenceFrame` objects
      which do not have the ``_pdlist`` attribute.
  
      """
      outlist = [[self]]
      oldlist = [[]]
      while outlist != oldlist:
          oldlist = outlist[:]
          for i, v in enumerate(outlist):
              templist = v[-1]._pdlist[num].keys()
              for i2, v2 in enumerate(templist):
                  if not v.__contains__(v2):
                      littletemplist = v + [v2]
                      if not outlist.__contains__(littletemplist):
                          outlist.append(littletemplist)
      for i, v in enumerate(oldlist):
          if v[-1] != other:
              outlist.remove(v)
      outlist.sort(key=len)
      if len(outlist) != 0:
          return outlist[0]
      raise ValueError(
          "No Connecting Path found between "
          + other.name
          + " and "
          + self.name
      )
  
imports: from .vector import Vector, _check_vector
  from .frame import _check_frame
  from warnings import warn
  from sympy.utilities.misc import filldedent
label_desc: Use image node_id 4 for calling the Point obj's underlying member method code with example usage: obj._pdict_list(other, num) and returns: outlist