aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/quarg/utils.py
blob: 33b91987303be667abec09703689921b5a2e7469 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
          
 

                      
 







                                                                
                         

                                                     



                                              
                 
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