docs: def get_PolyFromPolyFileObj(PolyFileObj, SavePathInp=None, units='m', comments='#', skiprows=0, shape0=2):
      """ Return a polygon as a np.ndarray, extracted from a txt file or from a ToFu object, with appropriate units
  
      Useful for :meth:`tofu.plugins.AUG.Ves._create()`
  
      Parameters
      ----------
      PolyFileObj :   str / :mod:`tofu.geom` object / np.ndarray
          The source where the polygon is to be found, either:
              - str: the name of a file containing the coorindates of a polygon to be loaded with :meth:`numpy.loadtxt()`
              - A :mod:`tofu.geom` object: with attribute 'Poly'
              - np.ndarray: an 2-dimensional array containing the 2D cartesian coordinates of a polygon
      SavePathInp :   str / None
          The absolute path where the input file is stored
      units :         str
          Flag indicating in which units the polygon coordinates is expressed in the input file / object / array (will be converted to meters)
      comments :      str
          Parameter to be fed to :meth:`numpy.loadtxt()` if PolyFileObj is a file name
      skiprows :      int
          Parameter to be fed to :meth:`numpy.loadtxt()` if PolyFileObj is a file name
      shape0 :          int
          Specifies whether the loaded array is a (2,N) or (3,N) array (transposed it if necessary)
  
      Returns
      -------
      Poly :          np.ndarray
          (2,N) np.ndarray containing the 2D cartesian coordinates of the polygon, where N is the number of points
      addInfo :       dict
          Dictionaryb containing information on the origin of the polygon, for the record (e.g.: the name and absolute path of the file from which it was extracted)
  
      """
      assert type(PolyFileObj) in [list,str] or hasattr(PolyFileObj,"Poly") or np.asarray(PolyFileObj).ndim==2, "Arg PolyFileObj must be str (PathFileExt), a ToFu object with attribute Poly or an iterable convertible to 2d np.ndarray !"
  
      # Load PolyFileObj if file and check shape
      addInfo = {}
      if type(PolyFileObj) in [list,str]:
          PathFileExt = get_FileFromInfos(Path=SavePathInp, Name=PolyFileObj)
          # Include PathFileExt in ID for tracability
          addInfo = {'Input':PathFileExt}
          PolyFileObj = np.loadtxt(PathFileExt, dtype=float, comments=comments, delimiter=None, converters=None, skiprows=skiprows, usecols=None, unpack=False, ndmin=2)
      elif hasattr(PolyFileObj,"Poly"):
          addInfo = {'Input':PolyFileObj.Id.SaveName}
          PolyFileObj = PolyFileObj.Poly
  
      Poly = np.asarray(PolyFileObj)
      assert Poly.ndim==2 and shape0 in Poly.shape and max(Poly.shape)>=3 and not np.any(np.isnan(Poly)), "Arg np.asarray(PolyFileObj) must be a (2,N) or (N,2) np.ndarray with non NaNs !"
      Poly = Poly if Poly.shape[0]==shape0 else Poly.T
      Poly = convert_units(Poly, In=units, Out='m')
      return Poly, addInfo