class_docstr: Base for classes that configure access to secured resources.
  
  Attributes
  ----------
  credentials : dict
      Keys and values for session credentials.
  
  Notes
  -----
  This class is not intended to be instantiated.
class_docstr_tok: ["Base","for","classes","that","configure","access","to","secured","resources",".","Attributes","--","--","--","--","--","credentials",":","dict","Keys","and","values","for","session","credentials",".","Notes","--","--","-","This","class","is","not","intended","to","be","instantiated","."]
docstr: Find the session class suited to the data at `path`.
  
  Parameters
  ----------
  path : str
      A dataset path or identifier.
  
  Returns
  -------
  class
docstr_tok: ["Find","the","session","class","suited","to","the","data","at","`","path","`",".","Parameters","--","--","--","--","--","path",":","str","A","dataset","path","or","identifier",".","Returns","--","--","--","-","class"]
code: def cls_from_path(path):
      """Find the session class suited to the data at `path`.
  
      Parameters
      ----------
      path : str
          A dataset path or identifier.
  
      Returns
      -------
      class
  
      """
      if not path:
          return DummySession
  
      path = parse_path(path)
  
      if isinstance(path, UnparsedPath) or path.is_local:
          return DummySession
  
      elif (
          path.scheme == "s3" or "amazonaws.com" in path.path
      ) and "X-Amz-Signature" not in path.path:
          if boto3 is not None:
              return AWSSession
          else:
              log.info(
                  "boto3 not available, falling back to a DummySession."
              )
              return DummySession
  
      elif path.scheme == "oss" or "aliyuncs.com" in path.path:
          return OSSSession
  
      elif path.path.startswith("/vsiswift/"):
          return SwiftSession
  
      elif path.scheme == "az":
          return AzureSession
  
      # This factory can be extended to other cloud providers here.
      # elif path.scheme == "cumulonimbus":  # for example.
      #     return CumulonimbusSession(*args, **kwargs)
  
      else:
          return DummySession
  
imports: import logging
  import os
  import warnings
  from fiona.path import parse_path, UnparsedPath
label_desc: Use image node_id 4 for calling the Session obj's underlying member method code with example usage: obj.cls_from_path(path) and returns: DummySession, DummySession, AWSSession, DummySession, OSSSession, SwiftSession, AzureSession, DummySession