Skip to content
This repository was archived by the owner on Jun 7, 2021. It is now read-only.

Commit 12cb29a

Browse files
committed
Convert set and get to async
1 parent 5ec7394 commit 12cb29a

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

webthing/value.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""An observable, settable value interface."""
22

33
import sys
4+
import asyncio
45

56
if 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):

0 commit comments

Comments
 (0)