ktongue's picture
download
raw
783 Bytes
from __future__ import annotations
from abc import ABCMeta, abstractmethod
from types import TracebackType
from typing import TypeVar
T = TypeVar("T")
class AsyncResource(metaclass=ABCMeta):
"""
Abstract base class for all closeable asynchronous resources.
Works as an asynchronous context manager which returns the instance itself on enter,
and calls :meth:`aclose` on exit.
"""
__slots__ = ()
async def __aenter__(self: T) -> T:
return self
async def __aexit__(
self,
exc_type: type[BaseException] | None,
exc_val: BaseException | None,
exc_tb: TracebackType | None,
) -> None:
await self.aclose()
@abstractmethod
async def aclose(self) -> None:
"""Close the resource."""

Xet Storage Details

Size:
783 Bytes
·
Xet hash:
86a3a4c76ef03e0689a75c58f35095302b45ab5ae4404b396d94f5a720471c38

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.