def is_course_run_enrollable(course_run):
now = datetime.datetime.now(pytz.UTC)<EOL>end = parse_datetime_handle_invalid(course_run.get('<STR_LIT:end>'))<EOL>enrollment_start = parse_datetime_handle_invalid(course_run.get('<STR_LIT>'))<EOL>enrollment_end = parse_datetime_handle_invalid(course_run.get('<STR_LIT>'))<EOL>return (not end or end > now) and(not enrollment_start or enrollment_start < now) and(not enrollment_end or enrollment_end > now)<EOL>
Return true if the course run is enrollable, false otherwise.

We look for the following criteria:
- end is greater than now OR null
- enrollment_start is less than now OR null
- enrollment_end is greater than now OR null