aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/quarg/utils.py
blob: 903c057157f9161bd0a1f14e9d0f585906775d9d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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 as err:
        errx(f'isoparse: date overflows: \'{date}\'')

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

    return parsed