def is_happening(self, now):
start = self.l_start_date<EOL>end = self.l_end_date<EOL>happening = False<EOL>if (now >= start) and (start.time() <= now.time() <= end.time()):<EOL><INDENT>if self.repeats('<STR_LIT>'):<EOL><INDENT>if not now.weekday() > <NUM_LIT:4>:  <EOL><INDENT>happening = True<EOL><DEDENT><DEDENT>elif self.repeats('<STR_LIT>') or self.repeats('<STR_LIT>'):<EOL><INDENT>happening = True<EOL><DEDENT>elif self.repeats('<STR_LIT>'):<EOL><INDENT>if start.day <= now.day <= end.day:<EOL><INDENT>happening = True<EOL><DEDENT><DEDENT>elif self.repeats('<STR_LIT>'):<EOL><INDENT>if (start.month <= now.month <= end.month) and(start.day <= now.day <= end.day):<EOL><INDENT>happening = True<EOL><DEDENT><DEDENT>else:<EOL><INDENT>repeat = {'<STR_LIT>': <NUM_LIT:7>, '<STR_LIT>': <NUM_LIT>}<EOL>while end <= now:<EOL><INDENT>start += datetime.timedelta(days=repeat[self.repeat])<EOL>end += datetime.timedelta(days=repeat[self.repeat])<EOL><DEDENT>if start <= now <= end:<EOL><INDENT>happening = True<EOL><DEDENT><DEDENT><DEDENT>return happening<EOL>
Return True if the event is happening 'now', False if not.