for time_str in ['1 second', '2 minutes', '3 hours', '5 weeks', '6 months',
    '7 years']:
    diff = cal.parseDT(time_str, sourceTime=datetime.min)[0] - datetime.min
print('{time_str:<10} -> {diff!s:>20} <{diff!r}>'.format(**vars()))
Как я могу анализировать временные интервалы произвольного текста в Python, начиная от лет и заканчивая секундами?