class_docstr: Simple KV API built on the underlying filesystem.
  
  This is a convenience wrapper around get_filesystem() and working with files.
  Slashes in the path are interpreted as directory delimiters.
class_docstr_tok: ["Simple","KV","API","built","on","the","underlying","filesystem",".","This","is","a","convenience","wrapper","around","get_filesystem","(",")","and","working","with","files",".","Slashes","in","the","path","are","interpreted","as","directory","delimiters","."]
docstr: Get info about the persistent blob at the given path, if possible.
  
  Examples:
      .. testcode::
  
          import ray
          from ray._private import storage
  
          ray.shutdown()
  
          ray.init(storage="/tmp/storage/cluster_1/storage")
  
          client = storage.get_client("my_app")
          client.put("path/foo.txt", b"bar")
  
          print(client.get_info("path/foo.txt"))
  
          print(client.get_info("path/does_not_exist.txt"))
  
      .. testoutput::
  
          <FileInfo for '.../my_app/path/foo.txt': type=FileType.File, size=3>
          None
  
  Args:
      path: Relative directory of the blob.
  
  Returns:
      Info about the blob, or None if it doesn't exist.
docstr_tok: ["Get","info","about","the","persistent","blob","at","the","given","path",",","if","possible",".","Examples",":","..","testcode",":",":","import","ray","from","ray._private","import","storage","ray.shutdown","(",")","ray.init","(","storage=","''","\/tmp\/storage\/cluster_1\/storage","''",")","client","=","storage.get_client","(","``","my_app","''",")","client.put","(","``","path\/foo.txt","''",",","b","''","bar","''",")","print","(","client.get_info","(","``","path\/foo.txt","''",")",")","print","(","client.get_info","(","``","path\/does_not_exist.txt","''",")",")","..","testoutput",":",":","<","FileInfo","for","'","...","\/my_app\/path\/foo.txt","'",":","type=FileType.File",",","size=3",">","None","Args",":","path",":","Relative","directory","of","the","blob",".","Returns",":","Info","about","the","blob",",","or","None","if","it","does","n't","exist","."]
code: def get_info(self, path: str) -> Optional["pyarrow.fs.FileInfo"]:
      """Get info about the persistent blob at the given path, if possible.
  
      Examples:
          .. testcode::
  
              import ray
              from ray._private import storage
  
              ray.shutdown()
  
              ray.init(storage="/tmp/storage/cluster_1/storage")
  
              client = storage.get_client("my_app")
              client.put("path/foo.txt", b"bar")
  
              print(client.get_info("path/foo.txt"))
  
              print(client.get_info("path/does_not_exist.txt"))
  
          .. testoutput::
  
              <FileInfo for '.../my_app/path/foo.txt': type=FileType.File, size=3>
              None
  
      Args:
          path: Relative directory of the blob.
  
      Returns:
          Info about the blob, or None if it doesn't exist.
      """
      import pyarrow.fs
  
      full_path = self._resolve_path(path)
      info = self.fs.get_file_info([full_path])[0]
      if info.type == pyarrow.fs.FileType.NotFound:
          return None
      return info
  
imports: import os
  import re
  import urllib
  from pathlib import Path
  from typing import TYPE_CHECKING, List, Optional
  from ray._private.client_mode_hook import client_mode_hook
  from ray._private.utils import _add_creatable_buckets_param_if_s3_uri, load_class
  from ray._private.auto_init_hook import wrap_auto_init
label_desc: Use image node_id 6 for calling the KVClient obj's underlying member method code with example usage: obj.get_info(path) and returns: info, None