File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/filelock/__pycache__/_async_read_write.cpython-310.pyc
Back
o ;jO � @ s� d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl m Z ddlmZ e rBddl Z dd lmZmZ dd lmZ ddlmZ G dd � d �ZG dd� d�Zd dgZdS )zEAsync wrapper around :class:`ReadWriteLock` for use with ``asyncio``.� )�annotationsN)�ThreadPoolExecutor)�asynccontextmanager)� TYPE_CHECKING� )� ReadWriteLock)�AsyncGenerator�Callable)�futures)� TracebackTypec @ s. e Zd ZdZddd�Zddd �Zddd�ZdS )� AsyncAcquireReadWriteReturnProxyzEContext-aware object that releases the async read/write lock on exit.�lock�AsyncReadWriteLock�return�Nonec C s || _ d S �N�r )�selfr � r �N/opt/saltstack/salt/lib/python3.10/site-packages/filelock/_async_read_write.py�__init__ s z)AsyncAcquireReadWriteReturnProxy.__init__c � s �| j S r r �r r r r � __aenter__ s �z+AsyncAcquireReadWriteReturnProxy.__aenter__�exc_type�type[BaseException] | None� exc_value�BaseException | None� traceback�TracebackType | Nonec � s �| j �� I d H d S r )r �release)r r r r r r r � __aexit__ s �z*AsyncAcquireReadWriteReturnProxy.__aexit__N)r r r r )r r )r r r r r r r r )�__name__� __module__�__qualname__�__doc__r r r r r r r r s r c @ s� e Zd ZdZ d;ddddd�d<dd�Zed=dd��Zed>dd��Zed?dd��Zed@dd��Z edAdd��Z dBd%d&�Zd;dd'�dCd)d*�Zd;dd'�dCd+d,�Z d-d.�dDd0d1�ZedEdd'�dFd5d6��ZedEdd'�dFd7d8��ZdGd9d:�ZdS )Hr a� Async wrapper around :class:`ReadWriteLock` for use in ``asyncio`` applications. Because Python's :mod:`sqlite3` module has no async API, all blocking SQLite operations are dispatched to a thread pool via ``loop.run_in_executor()``. Reentrancy, upgrade/downgrade rules, and singleton behavior are delegated to the underlying :class:`ReadWriteLock`. :param lock_file: path to the SQLite database file used as the lock :param timeout: maximum wait time in seconds; ``-1`` means block indefinitely :param blocking: if ``False``, raise :class:`~filelock.Timeout` immediately when the lock is unavailable :param is_singleton: if ``True``, reuse existing :class:`ReadWriteLock` instances for the same resolved path :param loop: event loop for ``run_in_executor``; ``None`` uses the running loop :param executor: executor for ``run_in_executor``; ``None`` uses the default executor .. versionadded:: 3.21.0 ���TN)�blocking�is_singleton�loop�executor� lock_file�str | os.PathLike[str]�timeout�floatr&