import argparse import copy import pathlib import sys from teachingdates import PROG import teachingdates.calendars as calendars import teachingdates.config as configuration def run(): args = configuration.parse_command_line() if args.debug: print("{prog}: debug: args: {a}".format(prog=PROG, a=args)) try: config = configuration.Configuration(args) if args.debug: print("{prog}: debug: period config: {c}".format( prog=PROG, c=config.get_period_config())) print("{prog}: debug: paper config: {c}".format( prog=PROG, c=config.get_paper_config())) cal = calendars.TeachingCalendar( config.year, config.period, config.paper, config.get_period_config(), config.get_paper_config()) print("Period = {p}".format(p=args.period)) print(cal.calendar()) print(cal.lecture_dates()) except configuration.LectureStyleError as e: print("{prog}: error: 'lecture' style was requested but " "{c} contains no papers for {t}.".format( prog=PROG, c=args.config, t=args.period)) except configuration.PaperError as e: print("{prog}: error: no entry in {c} for paper {p} ({t}).".format( prog=PROG, c=args.config, p=args.paper, t=args.period)) except configuration.PeriodError as e: print("{prog}: error: no entry in {c} for teaching " "period {p}.".format( prog=PROG, c=args.config_file, p=args.period)) except KeyError as e: print("{prog}: error: teaching period {p} in {c} is missing " "required key {k}.".format( prog=PROG, p=args.period, c=args.config, k=e))