'Send one or more \'tick\' events when the timeslice related to
the period for the event type rolls over'

def tick(self, now=None):

    if (now is None):
        now = time.time()
    for event in events.TICK_EVENTS:
        period = event.period
        last_tick = self.ticks.get(period)
        if (last_tick is None):
            last_tick = self.ticks[period] = timeslice(period, now)
        this_tick = timeslice(period, now)
        if (this_tick != last_tick):
            self.ticks[period] = this_tick
            events.notify(event(this_tick, self))
