This repository was archived by the owner on Jun 7, 2021. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11"""An observable, settable value interface."""
22
33import sys
4+ import asyncio
45
56if sys .version_info .major == 3 :
67 from pyee import AsyncIOEventEmitter as EventEmitter
@@ -40,22 +41,28 @@ def readonly(self):
4041 def writeonly (self ):
4142 return self .write_forwarder and not self .read_forwarder
4243
43- def set (self , value ):
44+ async def set (self , value ):
4445 """
4546 Set a new value for this thing.
4647
4748 value -- value to set
4849 """
4950 if self .write_forwarder is not None :
50- self .write_forwarder (value )
51+ if asyncio .iscoroutine (self .write_forwarder ):
52+ await self .write_forwarder (value )
53+ else :
54+ self .write_forwarder (value )
5155
5256 self .notify_of_external_update (value )
5357 return value
5458
55- def get (self ):
59+ async def get (self ):
5660 """Return the last known value from the underlying thing."""
5761 if self .read_forwarder :
58- self ._value = self .read_forwarder ()
62+ if asyncio .iscoroutine (self .read_forwarder ):
63+ self ._value = await self .read_forwarder ()
64+ else :
65+ self ._value = self .read_forwarder ()
5966 return self ._value
6067
6168 def notify_of_external_update (self , value ):
You can’t perform that action at this time.
0 commit comments