うるう年の"2月29日"の文字列をdatetimeに変換

月日だけの"2月29日"の文字列からdatetimeに変換すると1900-02-29になり うるう年ではないためエラーが発生

直近のうるう年まで進める

import calendar
import datetime
import re

s = "2月29日"

today = datetime.date.today()

try:

    dt = datetime.datetime.strptime(s, "%m月%d日")
    dt = dt.replace(year=today.year).date()

except:

    year = today.year

    while not calendar.isleap(year):

        year += 1

    m = re.match(r"(\d{1,2})月(\d{1,2})日", s)

    month, day = map(int, m.groups())

    dt = datetime.date(year, month, day)

print(dt)