#! /usr/bin/env python3 import sys import argparse import pydantic class Options(pydantic.BaseModel): config_path: str = pydantic.Field(alias='config') def main(argv): default_options = Options(**{ 'config': './config.yml' }) parser = argparse.ArgumentParser(description='Some awesome project') parser.add_argument('-c', '--config', type=str, default=default_options.config_path, help='Path to config file') args = parser.parse_args(argv[1:]) options = Options(**vars(args)) print(options.config_path) return 0 if __name__ == '__main__': sys.exit(main(sys.argv))