venv added, updated
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from abc import ABC, abstractmethod
|
||||
from types import TracebackType
|
||||
from typing import Optional, Type
|
||||
|
||||
|
||||
class DisposableBase(ABC):
|
||||
"""Disposable abstract base class."""
|
||||
|
||||
__slots__ = ()
|
||||
|
||||
@abstractmethod
|
||||
def dispose(self) -> None:
|
||||
"""Dispose the object: stop whatever we're doing and release all of the
|
||||
resources we might be using.
|
||||
"""
|
||||
raise NotImplementedError
|
||||
|
||||
def __enter__(self) -> DisposableBase:
|
||||
"""Context management protocol."""
|
||||
return self
|
||||
|
||||
def __exit__(
|
||||
self,
|
||||
exctype: Optional[Type[BaseException]],
|
||||
excinst: Optional[BaseException],
|
||||
exctb: Optional[TracebackType],
|
||||
) -> None:
|
||||
"""Context management protocol."""
|
||||
self.dispose()
|
||||
|
||||
|
||||
__all__ = ["DisposableBase"]
|
||||
Reference in New Issue
Block a user