import sched, time s = sched.scheduler(time.time, time.sleep) def print_time(a='default'): print("From print time", time.time(), a) def print_some_times_bug(): print(time.time()) s.enter(10, 1, print_time) s.enter(5, 2, print_time, argument=('positional', )) s.enter(5, 1, print_time, kwargs={'a': 'keyword'}) s.run() print(time.time()) def print_some_times_expected(): print(time.time()) t = time.time() s.enterabs(t + 10, 1, print_time) s.enterabs(t + 5, 2, print_time, argument=('positional', )) s.enterabs(t + 5, 1, print_time, kwargs={'a': 'keyword'}) s.run() print(time.time()) # bug. 'keyword' must appear before 'positional' (due to priority). But appears after print('-----Unexpected Output-----') print_some_times_bug() # expected output order print('-----Expected Output-----') print_some_times_expected()