def __new__(cls, service, id): # pylint: disable=redefined-builtin family_id, code, chksum = split_id(id) cls = dev_classes.get(family_id) # pylint: disable=self-cls-assignment if cls is None: class cls(Device): # pylint: disable=function-redefined family = family_id cls.__name__ = "Device_%02x" % (family_id, ) dev_classes[family_id] = cls self = object.__new__(cls) self.id = id.upper() self.family = family_id self.code = code self.chksum = chksum self.service = service self.bus = None self._unseen = 0 self._events = [] self._wait_bus = anyio.Event() self._poll = {} # name > poll task scopes self._intervals = {} self._task_lock = anyio.Lock() return self
def __init__(self, length, info=None): self.len = length self._n_ack = 0 self._n_sent = 0 self._send_lock = anyio.Lock() if info is None: DelayedWrite._seq += 1 info = f"DlyW.{DelayedWrite._seq}" self._info = info
def __init__(self, service, host="localhost", port=4304, name=None): self.service = service self.host = host self.port = port self.name = name or host self.stream = None self._msg_proto = None self.requests = deque() self._wqueue_w, self._wqueue_r = anyio.create_memory_object_stream(100) self._read_task = None self._write_task = None self._scan_task = None self._buses = dict() # path => bus self._scan_lock = anyio.Lock() self._scan_args = None self._backoff = 2 self._current_tg = None self._current_run = None self.simul_lock = anyio.Lock()
async def write_transaction(self): if not hasattr(self, '_write_lock'): self._write_lock = anyio.Lock() async with self._write_lock: # replace indices with copies such that current readers keep access # to the 'old' state t = WriteTransaction(self._local.copy(), self._byid.copy(), self._byseq.copy(), self._update_seq) yield t # overwrite indices self._byid = t._byid self._byseq = t._byseq self._local = t._local self._update_seq = t._update_seq
def __init__( self, service_name: str, service_type: Type[abc.Service[abc.ServiceRequestT, abc.ServiceResponseT]], master: MasterApiClient, node_name: str, ): self._service_name = service_name self._service_type = service_type self._master = master self._serializer: Serializer[abc.ServiceRequestT] = Serializer() self._header: abc.Header = dict( callerid=node_name, md5sum=getattr(service_type, "_md5sum"), service=service_name, ) self._lock = anyio.Lock()
def __init__(self, sock): self.sock = sock self.lock = anyio.Lock()
def create_lock(self) -> anyio.Lock: return anyio.Lock()
def __init__(self, stream): self.stream = stream self.lock = anyio.Lock()
def __init__(self, url): self.url = url self.free = [] self.read_semaphore = anyio.Semaphore(MAX_PARALLEL_READS) self.write_lock = anyio.Lock()
def __init__(self) -> None: self._lock = anyio.Lock()
def __init__(self): self._byte_buffer = BytesIO() self._string_buffer = StringIO() self._send_lock = anyio.Lock()