aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/quarg/utils.py
blob: 33b91987303be667abec09703689921b5a2e7469 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import sys

import dateutil.parser


def errx(msg):
    sys.exit(f'quarg: {msg}')

def parse_isodate(date):
    try:
        parsed = dateutil.parser.isoparse(date)
    except ValueError as err:
        errx(f'isoparse: invalid date format \'{date}\', {err}')
    except OverflowError:
        errx(f'isoparse: date overflows: \'{date}\'')

    # If no offset is given, assume local time
    if parsed.tzinfo is None:
        parsed = parsed.astimezone()

    return parsed