11
11
from ipywidgets import DOMWidget
12
12
from traitlets import Unicode , Integer
13
13
from ._frontend import module_name , module_version
14
- from time import sleep
15
14
import asyncio
16
15
17
16
@@ -25,28 +24,22 @@ def __init__(self, widget, service_name):
25
24
self .name = service_name
26
25
self .widget = widget
27
26
28
-
29
- def create_service_msg (self , method_name , * args , ** kwargs ):
27
+ def _create_msg (self , method_name , * args , ** kwargs ):
30
28
data = {}
31
29
data ["command" ] = "callService"
32
30
data ["service" ] = str (self .name )
33
31
data ["method" ] = str (method_name )
34
32
# convert tuple to list to avoid empty arg values
35
33
data ["args" ] = list (args )
36
34
data ["kwargs" ] = kwargs
37
-
35
+ return data
36
+
37
+ def call_service (self , method_name , * args , ** kwargs ):
38
+ data = self ._create_msg (method_name , * args , ** kwargs )
38
39
self .widget .send (data )
39
40
40
- # TODO: combine msg creating into separate function
41
- async def async_create_service_msg (self , method_name , * args , ** kwargs ):
42
- data = {}
43
- data ["command" ] = "callService"
44
- data ["service" ] = str (self .name )
45
- data ["method" ] = str (method_name )
46
- # convert tuple to list to avoid empty arg values
47
- data ["args" ] = list (args )
48
- data ["kwargs" ] = kwargs
49
-
41
+ async def async_call_service (self , method_name , * args , ** kwargs ):
42
+ data = self ._create_msg (method_name , * args , ** kwargs )
50
43
self .widget .send (data )
51
44
52
45
try :
@@ -57,11 +50,10 @@ async def async_create_service_msg(self, method_name, *args, **kwargs):
57
50
58
51
59
52
def __getattr__ (self , method_name ):
60
- # TODO: add error for when service is not ready
61
53
if (method_name [:6 ] == "async_" ):
62
- return lambda * x , ** y : self .async_create_service_msg (method_name [6 :], * x , ** y )
54
+ return lambda * x , ** y : self .async_call_service (method_name [6 :], * x , ** y )
63
55
else :
64
- return lambda * x , ** y : self .create_service_msg (method_name , * x , ** y )
56
+ return lambda * x , ** y : self .call_service (method_name , * x , ** y )
65
57
66
58
67
59
class NaoRobotWidget (DOMWidget ):
0 commit comments