Wall Time ignored - I think I have a fix

My new version is more flexible, but very much longer. There must be a better way, but I don’t find a lot of documentation on jinja2, particularly on how to slice and dice strings. Anyway, here’s my new version, for who is interested. (Mind you, you still have to add the -l walltime = {{ evalclock(MAIN_CLOCK) }} in the relevant section:

{% macro evalclock(iso8601duration) -%}
    {% set duration = iso8601duration.split("P")[1] -%}
    {% set totalseconds = 0 -%}
    {% if "T" in duration -%}
        {% set days_and_more, hours_and_less = duration.split("T") -%}
        {% if "H" in hours_and_less -%}
            {% set hours, minutes_and_less = hours_and_less.split("H") -%}
            {% set totalseconds = (hours | int) * 60 * 60 -%}
        {% else -%}
            {% set minutes_and_less = hours_and_less -%}
        {% endif -%}
        {% if "M" in minutes_and_less -%}
            {% set minutes, seconds = minutes_and_less.split("M") -%}
            {% set totalseconds = totalseconds + (( minutes | int ) * 60 ) -%}
        {% else -%}
            {% set seconds = minutes_and_less -%}
        {% endif -%}
        {% if "S" in seconds -%}
            {% set totalseconds = totalseconds + ( seconds.split("S")[0] | int ) -%}
        {% endif -%}
    {% else -%}
        {% set days_and_more = duration -%}
    {% endif -%}
        {% if "W" in days_and_more -%}
        {% set totalseconds = (days_and_more.split("W")[0] | int) * 7 * 24 * 60 * 60 -%}
    {% else -%}
        {% if "Y" in days_and_more -%}
            {% set years, months_and_less = days_and_more.split("Y") -%}
            {% set totalseconds = totalseconds + ((years | int) * 365 * 24 * 60 * 60 ) -%}
        {% else -%}
            {% set months_and_less = days_and_more -%}
        {% endif -%}
        {% if "M" in months_and_less -%}
            {% set monts, days = months_and_less.split("M") -%}
            {% set totalseconds = totalseconds + (( months | int ) * 30 * 24 * 60 * 60 ) -%}
        {% else -%}
            {% set days = months_and_less -%}
        {% endif -%}
        {% if "D" in days -%}
            {% set totalseconds = totalseconds + (( days.split("D")[0] | int ) * 24 * 60 * 60 ) -%}
        {% endif -%}
    {% endif -%}
    {{ totalseconds }}