예제 #1
0
    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
예제 #2
0
파일: _queue.py 프로젝트: smurfix/util-py
 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
예제 #3
0
    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()
예제 #4
0
 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
예제 #5
0
 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()
예제 #6
0
파일: udp.py 프로젝트: kinnay/anynet
	def __init__(self, sock):
		self.sock = sock
		self.lock = anyio.Lock()
예제 #7
0
 def create_lock(self) -> anyio.Lock:
     return anyio.Lock()
예제 #8
0
 def __init__(self, stream):
     self.stream = stream
     self.lock = anyio.Lock()
예제 #9
0
 def __init__(self, url):
     self.url = url
     self.free = []
     self.read_semaphore = anyio.Semaphore(MAX_PARALLEL_READS)
     self.write_lock = anyio.Lock()
예제 #10
0
 def __init__(self) -> None:
     self._lock = anyio.Lock()
예제 #11
0
 def __init__(self):
     self._byte_buffer = BytesIO()
     self._string_buffer = StringIO()
     self._send_lock = anyio.Lock()