code: def is_course_run_enrollable(course_run):
      
      now = datetime.datetime.now(pytz.UTC)
      end = parse_datetime_handle_invalid(course_run.get('end'))
      enrollment_start = parse_datetime_handle_invalid(course_run.get('enrollment_start'))
      enrollment_end = parse_datetime_handle_invalid(course_run.get('enrollment_end'))
      return (not end or end > now) and \
             (not enrollment_start or enrollment_start < now) and \
             (not enrollment_end or enrollment_end > now)
docs: 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