
    ob                         d Z ddlZddlZddlZej                  rddlmZmZ ddlmZ ddl	m
Z
  ej                  ej                         G d d	e             Zy)
z`Opener` abstract base class.
    N)ListText   )FS   )ParseResultc                   >    e Zd ZdZg Zd Zej                  d        Zy)Openerz}The base class for filesystem openers.

    An opener is responsible for opening a filesystem for a given
    protocol.

    c                 8    dj                  | j                        S )Nz<opener {!r}>)format	protocols)selfs    0/usr/lib/python3/dist-packages/fs/opener/base.py__repr__zOpener.__repr__   s    %%dnn55    c                      y)a  Open a filesystem object from a FS URL.

        Arguments:
            fs_url (str): A filesystem URL.
            parse_result (~fs.opener.parse.ParseResult): A parsed
                filesystem URL.
            writeable (bool): `True` if the filesystem must be writable.
            create (bool): `True` if the filesystem should be created
                if it does not exist.
            cwd (str): The current working directory (generally only
                relevant for OS filesystems).

        Raises:
            fs.opener.errors.OpenerError: If a filesystem could not
                be opened for any reason.

        Returns:
            `~fs.base.FS`: A filesystem instance.

        N )r   fs_urlparse_result	writeablecreatecwds         r   open_fszOpener.open_fs    s    r   N)	__name__
__module____qualname____doc__r   r   abcabstractmethodr   r   r   r   r
   r
      s-     I6 	 r   r
   )r   typingr   sixTYPE_CHECKINGr   r   baser   parser   add_metaclassABCMetaobjectr
   r   r   r   <module>r(      sS     
 
	!" 3;;+V +  +r   