o
    †Q `ñ  ã                   @   sj   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 ej¡G dd	„ d	eƒƒZdS )
z`Opener` abstract base class.
é    N)ÚListÚTexté   )ÚFSé   )ÚParseResultc                   @   s*   e Zd ZdZg Zdd„ Zejdd„ ƒZdS )ÚOpenerz}The base class for filesystem openers.

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

    c                 C   s   d  | j¡S )Nz<opener {!r}>)ÚformatÚ	protocols)Úself© r   ú0/usr/lib/python3/dist-packages/fs/opener/base.pyÚ__repr__   s   zOpener.__repr__c                 C   s   dS )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.

        Nr   )r   Zfs_urlZparse_resultZ	writeableZcreateÚcwdr   r   r   Úopen_fs   s    zOpener.open_fsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   ÚabcÚabstractmethodr   r   r   r   r   r      s    r   )r   r   ÚtypingZsixZTYPE_CHECKINGr   r   Úbaser   Úparser   Zadd_metaclassÚABCMetaÚobjectr   r   r   r   r   Ú<module>   s   
