@@ -1050,7 +1050,7 @@ def __stop_timeout():
1050
1050
self .bus .emit (Message ("mycroft.stop.handled" ,
1051
1051
{"by" : "skill:" + str (self .skill_id )}))
1052
1052
timer .cancel ()
1053
- except : # noqa
1053
+ except Exception :
1054
1054
timer .cancel ()
1055
1055
LOG .error ("Failed to stop skill: {}" .format (self .name ),
1056
1056
exc_info = True )
@@ -1132,16 +1132,22 @@ def _schedule_event(self, handler, when, data=None, name=None,
1132
1132
1133
1133
def schedule_event (self , handler , when , data = None , name = None ):
1134
1134
"""
1135
- Schedule a single event.
1135
+ Schedule a single-shot event.
1136
1136
1137
1137
Args:
1138
1138
handler: method to be called
1139
- when (datetime): when the handler should be called
1140
- (local time)
1139
+ when (datetime/int): local datetime or number of seconds in
1140
+ the future when the handler should be
1141
+ called
1141
1142
data (dict, optional): data to send when the handler is called
1142
- name (str, optional): friendly name parameter
1143
+ name (str, optional): reference name
1144
+ NOTE: This will not warn or replace a
1145
+ previously scheduled event of the same
1146
+ name.
1143
1147
"""
1144
1148
data = data or {}
1149
+ if isinstance (when , int ):
1150
+ when = datetime .now () + timedelta (seconds = when )
1145
1151
self ._schedule_event (handler , when , data , name )
1146
1152
1147
1153
def schedule_repeating_event (self , handler , when , frequency ,
@@ -1151,12 +1157,12 @@ def schedule_repeating_event(self, handler, when, frequency,
1151
1157
1152
1158
Args:
1153
1159
handler: method to be called
1154
- when (datetime): time for calling the handler or None
1155
- to initially trigger <frequency>
1156
- seconds from now
1160
+ when (datetime): local time for first calling the
1161
+ handler, or None to initially trigger
1162
+ <frequency> seconds from now
1157
1163
frequency (float/int): time in seconds between calls
1158
- data (dict, optional): data to send along to the handler
1159
- name (str, optional): friendly name parameter
1164
+ data (dict, optional): data to send when the handler is called
1165
+ name (str, optional): reference name, must be unique
1160
1166
"""
1161
1167
# Do not schedule if this event is already scheduled by the skill
1162
1168
if name not in self .scheduled_repeats :
@@ -1173,7 +1179,7 @@ def update_scheduled_event(self, name, data=None):
1173
1179
Change data of event.
1174
1180
1175
1181
Args:
1176
- name (str): Name of event
1182
+ name (str): reference name of event (from original scheduling)
1177
1183
"""
1178
1184
data = data or {}
1179
1185
data = {
@@ -1188,7 +1194,7 @@ def cancel_scheduled_event(self, name):
1188
1194
to be executed
1189
1195
1190
1196
Args:
1191
- name (str): Name of event
1197
+ name (str): reference name of event (from original scheduling)
1192
1198
"""
1193
1199
unique_name = self ._unique_name (name )
1194
1200
data = {'event' : unique_name }
@@ -1203,10 +1209,13 @@ def get_scheduled_event_status(self, name):
1203
1209
Get scheduled event data and return the amount of time left
1204
1210
1205
1211
Args:
1206
- name (str): Name of event
1212
+ name (str): reference name of event (from original scheduling)
1207
1213
1208
1214
Return:
1209
1215
int: the time left in seconds
1216
+
1217
+ Raises:
1218
+ Exception: Raised if event is not found
1210
1219
"""
1211
1220
event_name = self ._unique_name (name )
1212
1221
data = {'name' : event_name }
0 commit comments