Source code for pathex.managing.concurrent
from functools import wraps
from pathex.managing.mixins import ManagerMixin
from pathex.managing.tag import Tag
__all__ = ['Concurrent']
[docs]class Concurrent:
def __init__(self, sync):
self._sync = sync
self._regions = {}
[docs] @staticmethod
def region(tag: Tag):
def wrapper(func):
@wraps(func)
def wrapped(self, *args, **kwargs):
return self._regions.setdefault((func, tag), ManagerMixin.region(self._sync, tag)(func))(self, *args, **kwargs)
return wrapped
return wrapper