Skip to content

Commit fba787f

Browse files
Merge pull request #3060 from davidbrochart/fix_doc
Fix debouncing and throttling code
2 parents 60c88a5 + e58d8d7 commit fba787f

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

docs/source/examples/Widget Events.ipynb

+11-8
Original file line numberDiff line numberDiff line change
@@ -379,12 +379,14 @@
379379
" def __init__(self, timeout, callback):\n",
380380
" self._timeout = timeout\n",
381381
" self._callback = callback\n",
382-
" self._task = asyncio.ensure_future(self._job())\n",
383382
"\n",
384383
" async def _job(self):\n",
385384
" await asyncio.sleep(self._timeout)\n",
386385
" self._callback()\n",
387386
"\n",
387+
" def start(self):\n",
388+
" self._task = asyncio.ensure_future(self._job())\n",
389+
"\n",
388390
" def cancel(self):\n",
389391
" self._task.cancel()\n",
390392
"\n",
@@ -401,6 +403,7 @@
401403
" if timer is not None:\n",
402404
" timer.cancel()\n",
403405
" timer = Timer(wait, call_it)\n",
406+
" timer.start()\n",
404407
" return debounced\n",
405408
" return decorator"
406409
]
@@ -454,22 +457,22 @@
454457
" more than once every wait period. \"\"\"\n",
455458
" def decorator(fn):\n",
456459
" time_of_last_call = 0\n",
457-
" scheduled = False\n",
460+
" scheduled, timer = False, None\n",
458461
" new_args, new_kwargs = None, None\n",
459462
" def throttled(*args, **kwargs):\n",
460-
" nonlocal new_args, new_kwargs, time_of_last_call, scheduled\n",
463+
" nonlocal new_args, new_kwargs, time_of_last_call, scheduled, timer\n",
461464
" def call_it():\n",
462-
" nonlocal new_args, new_kwargs, time_of_last_call, scheduled\n",
465+
" nonlocal new_args, new_kwargs, time_of_last_call, scheduled, timer\n",
463466
" time_of_last_call = time()\n",
464467
" fn(*new_args, **new_kwargs)\n",
465468
" scheduled = False\n",
466469
" time_since_last_call = time() - time_of_last_call\n",
467-
" new_args = args\n",
468-
" new_kwargs = kwargs\n",
470+
" new_args, new_kwargs = args, kwargs\n",
469471
" if not scheduled:\n",
470-
" new_wait = max(0, wait - time_since_last_call)\n",
471-
" Timer(new_wait, call_it)\n",
472472
" scheduled = True\n",
473+
" new_wait = max(0, wait - time_since_last_call)\n",
474+
" timer = Timer(new_wait, call_it)\n",
475+
" timer.start()\n",
473476
" return throttled\n",
474477
" return decorator"
475478
]

0 commit comments

Comments
 (0)