Buckets:
MisterAI/LocalAI_Demo_backends / cpu-diffusers.upgrade-tmp /venv /lib /python3.10 /site-packages /zmq /auth /asyncio.py
| """ZAP Authenticator integrated with the asyncio IO loop. | |
| .. versionadded:: 15.2 | |
| """ | |
| # Copyright (C) PyZMQ Developers | |
| # Distributed under the terms of the Modified BSD License. | |
| import asyncio | |
| import warnings | |
| from typing import Any, Optional | |
| import zmq | |
| from zmq.asyncio import Poller | |
| from .base import Authenticator | |
| class AsyncioAuthenticator(Authenticator): | |
| """ZAP authentication for use in the asyncio IO loop""" | |
| __poller: Optional[Poller] | |
| __task: Any | |
| def __init__( | |
| self, | |
| context: Optional["zmq.Context"] = None, | |
| loop: Any = None, | |
| encoding: str = 'utf-8', | |
| log: Any = None, | |
| ): | |
| super().__init__(context, encoding, log) | |
| if loop is not None: | |
| warnings.warn( | |
| f"{self.__class__.__name__}(loop) is deprecated and ignored", | |
| DeprecationWarning, | |
| stacklevel=2, | |
| ) | |
| self.__poller = None | |
| self.__task = None | |
| async def __handle_zap(self) -> None: | |
| while self.__poller is not None: | |
| events = await self.__poller.poll() | |
| if self.zap_socket in dict(events): | |
| msg = self.zap_socket.recv_multipart() | |
| await self.handle_zap_message(msg) | |
| def start(self) -> None: | |
| """Start ZAP authentication""" | |
| super().start() | |
| self.__poller = Poller() | |
| self.__poller.register(self.zap_socket, zmq.POLLIN) | |
| self.__task = asyncio.ensure_future(self.__handle_zap()) | |
| def stop(self) -> None: | |
| """Stop ZAP authentication""" | |
| if self.__task: | |
| self.__task.cancel() | |
| if self.__poller: | |
| self.__poller.unregister(self.zap_socket) | |
| self.__poller = None | |
| super().stop() | |
| __all__ = ["AsyncioAuthenticator"] | |
Xet Storage Details
- Size:
- 1.8 kB
- Xet hash:
- a118c00ca625b78b7ff9a62f18159b844f013033c8ae84ede3fcba37f56766ec
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.