docs: def find_birthdays(request):
      """Return information on user birthdays."""
      today = date.today()
      custom = False
      yr_inc = 0
      if "birthday_month" in request.GET and "birthday_day" in request.GET:
          try:
              mon = int(request.GET["birthday_month"])
              day = int(request.GET["birthday_day"])
              yr = today.year
              """ If searching a date that already happened this year, skip to the next year. """
              if mon < today.month or (mon == today.month and day < today.day):
                  yr += 1
                  yr_inc = 1
  
              real_today = today
              today = date(yr, mon, day)
              if today:
                  custom = True
              else:
                  today = real_today
          except ValueError:
              pass
  
      key = "birthdays:{}".format(today)
  
      cached = cache.get(key)
  
      if cached:
          logger.debug("Birthdays on {} loaded " "from cache.".format(today))
          logger.debug(cached)
          return cached
      else:
          logger.debug("Loading and caching birthday info for {}".format(today))
          tomorrow = today + timedelta(days=1)
          try:
              data = {
                  "custom": custom,
                  "today": {
                      "date": today,
                      "users": [{
                          "id": u.id,
                          "full_name": u.full_name,
                          "grade": {
                              "name": u.grade.name
                          },
                          "age": (u.age + yr_inc) if u.age is not None else -1,
                          "public": u.properties.attribute_is_public("show_birthday")
                      } if u else {} for u in User.objects.users_with_birthday(today.month, today.day)],
                      "inc": 0,
                  },
                  "tomorrow": {
                      "date": tomorrow,
                      "users": [{
                          "id": u.id,
                          "full_name": u.full_name,
                          "grade": {
                              "name": u.grade.name
                          },
                          "age": (u.age - 1) if u.age is not None else -1,
                          "public": u.properties.attribute_is_public("show_birthday")
                      } for u in User.objects.users_with_birthday(tomorrow.month, tomorrow.day)],
                      "inc": 1,
                  },
              }  # yapf: disable
          except AttributeError:
              return None
          else:
              cache.set(key, data, timeout=60 * 60 * 6)
              return data