parameters: (self, path, **kwargs)
docstring: Give details of entry at path
  
          Returns a single dictionary, with exactly the same information as ``ls``
          would with ``detail=True``.
  
          The default implementation should calls ls and could be overridden by a
          shortcut. kwargs are passed on to ```ls()``.
  
          Some file systems might not be able to measure the file's size, in
          which case, the returned dict will include ``'size': None``.
  
          Returns
          -------
          dict with keys: name (full path in the FS), size (in bytes), type (file,
          directory, or something else) and other FS-specific keys.
docstring_summary: Give details of entry at path
docstring_tokens: Give details of entry at path
function: def info(self, path, **kwargs):
          """Give details of entry at path
  
          Returns a single dictionary, with exactly the same information as ``ls``
          would with ``detail=True``.
  
          The default implementation should calls ls and could be overridden by a
          shortcut. kwargs are passed on to ```ls()``.
  
          Some file systems might not be able to measure the file's size, in
          which case, the returned dict will include ``'size': None``.
  
          Returns
          -------
          dict with keys: name (full path in the FS), size (in bytes), type (file,
          directory, or something else) and other FS-specific keys.
          """
          path = self._strip_protocol(path)
          out = self.ls(self._parent(path), detail=True, **kwargs)
          out = [o for o in out if o["name"].rstrip("/") == path]
          if out:
              return out[0]
          out = self.ls(path, detail=True, **kwargs)
          path = path.rstrip("/")
          out1 = [o for o in out if o["name"].rstrip("/") == path]
          if len(out1) == 1:
              if "size" not in out1[0]:
                  out1[0]["size"] = None
              return out1[0]
          elif len(out1) > 1 or out:
              return {"name": path, "size": 0, "type": "directory"}
          else:
              raise FileNotFoundError(path)
function_tokens: def info ( self , path , * * kwargs ) : path = self . _strip_protocol ( path ) out = self . ls ( self . _parent ( path ) , detail = True , * * kwargs ) out = [ o for o in out if o [ "name" ] . rstrip ( "/" ) == path ] if out : return out [ 0 ] out = self . ls ( path , detail = True , * * kwargs ) path = path . rstrip ( "/" ) out1 = [ o for o in out if o [ "name" ] . rstrip ( "/" ) == path ] if len ( out1 ) == 1 : if "size" not in out1 [ 0 ] : out1 [ 0 ] [ "size" ] = None return out1 [ 0 ] elif len ( out1 ) > 1 or out : return { "name" : path , "size" : 0 , "type" : "directory" } else : raise FileNotFoundError ( path )