class_docstr: Object representing a single job to execute.
  
  Notes
  -----
  This class should never be created directly by the user. Use :meth:`.Batch.new_job`,
  :meth:`.Batch.new_bash_job`, or :meth:`.Batch.new_python_job` instead.
class_docstr_tok: ["Object","representing","a","single","job","to","execute",".","Notes","--","--","-","This","class","should","never","be","created","directly","by","the","user",".","Use",":","meth",":","`",".Batch.new_job","`",",",":","meth",":","`",".Batch.new_bash_job","`",",","or",":","meth",":","`",".Batch.new_python_job","`","instead","."]
docstr: Add a bucket to mount with gcsfuse in GCP or a storage container with blobfuse in Azure.
  
  Notes
  -----
  Can only be used with the :class:`.backend.ServiceBackend`. This method can
  be called more than once.
  
  Warning
  -------
  There are performance and cost implications of using `gcsfuse <https://cloud.google.com/storage/docs/gcs-fuse>`__
  or `blobfuse <https://github.com/Azure/azure-storage-fuse#considerations>`__.
  
  Examples
  --------
  
  Google Cloud Platform:
  
  >>> b = Batch(backend=backend.ServiceBackend('test'))
  >>> j = b.new_job()
  >>> (j.cloudfuse('my-bucket', '/my-bucket')
  ...   .command(f'cat /my-bucket/my-blob-object'))
  
  Azure:
  
  >>> b = Batch(backend=backend.ServiceBackend('test'))
  >>> j = b.new_job()
  >>> (j.cloudfuse('my-account/my-container', '/dest')
  ...   .command(f'cat /dest/my-blob-object'))
  
  Parameters
  ----------
  bucket:
      Name of the google storage bucket to mount or the path to an Azure container in the
      format of `<account>/<container>`.
  mount_point:
      The path at which the cloud blob storage should be mounted to in the Docker
      container.
  read_only:
      If ``True``, mount the cloud blob storage in read-only mode.
  
  Returns
  -------
  Same job object set with a cloud storage path to mount with either gcsfuse or blobfuse.
docstr_tok: ["Add","a","bucket","to","mount","with","gcsfuse","in","GCP","or","a","storage","container","with","blobfuse","in","Azure",".","Notes","--","--","-","Can","only","be","used","with","the",":","class",":","`",".backend.ServiceBackend","`",".","This","method","can","be","called","more","than","once",".","Warning","--","--","--","-","There","are","performance","and","cost","implications","of","using","`","gcsfuse","<","https",":","\/\/cloud.google.com\/storage\/docs\/gcs-fuse",">","`","__","or","`","blobfuse","<","https",":","\/\/github.com\/Azure\/azure-storage-fuse","#","considerations",">","`","__",".","Examples","--","--","--","--","Google","Cloud","Platform",":",">",">",">","b","=","Batch","(","backend=backend.ServiceBackend","(","'test","'",")",")",">",">",">","j","=","b.new_job","(",")",">",">",">","(","j.cloudfuse","(","'my-bucket","'",",","'\/my-bucket","'",")","...",".command","(","f'cat","\/my-bucket\/my-blob-object","'",")",")","Azure",":",">",">",">","b","=","Batch","(","backend=backend.ServiceBackend","(","'test","'",")",")",">",">",">","j","=","b.new_job","(",")",">",">",">","(","j.cloudfuse","(","'my-account\/my-container","'",",","'\/dest","'",")","...",".command","(","f'cat","\/dest\/my-blob-object","'",")",")","Parameters","--","--","--","--","--","bucket",":","Name","of","the","google","storage","bucket","to","mount","or","the","path","to","an","Azure","container","in","the","format","of","`","<","account",">","\/","<","container",">","`",".","mount_point",":","The","path","at","which","the","cloud","blob","storage","should","be","mounted","to","in","the","Docker","container",".","read_only",":","If","``","True","``",",","mount","the","cloud","blob","storage","in","read-only","mode",".","Returns","--","--","--","-","Same","job","object","set","with","a","cloud","storage","path","to","mount","with","either","gcsfuse","or","blobfuse","."]
code: def cloudfuse(
      self, bucket: str, mount_point: str, *, read_only: bool = True
  ) -> Self:
      """
      Add a bucket to mount with gcsfuse in GCP or a storage container with blobfuse in Azure.
  
      Notes
      -----
      Can only be used with the :class:`.backend.ServiceBackend`. This method can
      be called more than once.
  
      Warning
      -------
      There are performance and cost implications of using `gcsfuse <https://cloud.google.com/storage/docs/gcs-fuse>`__
      or `blobfuse <https://github.com/Azure/azure-storage-fuse#considerations>`__.
  
      Examples
      --------
  
      Google Cloud Platform:
  
      >>> b = Batch(backend=backend.ServiceBackend('test'))
      >>> j = b.new_job()
      >>> (j.cloudfuse('my-bucket', '/my-bucket')
      ...   .command(f'cat /my-bucket/my-blob-object'))
  
      Azure:
  
      >>> b = Batch(backend=backend.ServiceBackend('test'))
      >>> j = b.new_job()
      >>> (j.cloudfuse('my-account/my-container', '/dest')
      ...   .command(f'cat /dest/my-blob-object'))
  
      Parameters
      ----------
      bucket:
          Name of the google storage bucket to mount or the path to an Azure container in the
          format of `<account>/<container>`.
      mount_point:
          The path at which the cloud blob storage should be mounted to in the Docker
          container.
      read_only:
          If ``True``, mount the cloud blob storage in read-only mode.
  
      Returns
      -------
      Same job object set with a cloud storage path to mount with either gcsfuse or blobfuse.
      """
  
      if not isinstance(self._batch._backend, backend.ServiceBackend):
          raise NotImplementedError(
              "A ServiceBackend is required to use the 'cloudfuse' option"
          )
  
      if bucket == "":
          raise BatchException("location cannot be the empty string")
  
      if mount_point == "":
          raise BatchException("mount_point cannot be the empty string")
  
      self._cloudfuse.append((bucket, mount_point, read_only))
      return self
  
imports: import asyncio
  import inspect
  import os
  import re
  import textwrap
  import warnings
  from shlex import quote
  from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union, cast, Literal
  from typing_extensions import Self
  import hailtop.batch_client.client
  from .None import backend, batch
  from .None import resource
  from .exceptions import BatchException
label_desc: Use image node_id 18 for calling the Job obj's underlying member method code with example usage: obj.cloudfuse(bucket, mount_point) and returns: self