class_docstr: Allows you to mount the contents of an AWS S3 bucket on disk when running an app on the cloud.
  
  Arguments:
      source: The location which contains the external data which should be mounted in the
          running work. At the moment, only AWS S3 mounts are supported. This must be a full
          `s3` style identifier pointing to a bucket and (optionally) prefix to mount. For
          example: `s3://foo/bar/`.
  
      mount_path: An absolute directory path in the work where external data source should
          be mounted as a filesystem. This path should not already exist in your codebase.
          If not included, then the root_dir will be set to `/data/<last folder name in the bucket>`
code: def __post_init__(self) -> None:
      for protocol in __MOUNT_PROTOCOLS__:
          if self.source.startswith(protocol):
              protocol = protocol
              break
      else:  # N.B. for-else loop
          raise ValueError(
              f"Unknown protocol for the mount 'source' argument '{self.source}`. The 'source' "
              f"string must start with one of the following prefixes: {__MOUNT_PROTOCOLS__}"
          )
  
      if protocol == "s3://" and not self.source.endswith("/"):
          raise ValueError(
              "S3 mounts must end in a trailing slash (`/`) to indicate a folder is being mounted. "
              f"Received: '{self.source}'. Mounting a single file is not currently supported."
          )
  
      if self.mount_path == "":
          self.mount_path = f"/data/{Path(self.source).stem}"
  
      if not os.path.isabs(self.mount_path):
          raise ValueError(
              f"mount_path argument must be an absolute path to a "
              f"location; received relative path {self.mount_path}"
          )
  
imports: import os
  from dataclasses import dataclass
  from pathlib import Path
  from typing import List
label_desc: Use image node_id 1 for calling the Mount obj's underlying member method code with example usage: obj.__post_init__() without return types