Source code for cityiq.cli.config

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""

"""

import argparse
import logging
import sys
from pathlib import Path

from cityiq import __version__

__author__ = "Eric Busboom"
__copyright__ = "Eric Busboom"
__license__ = "mit"

_logger = logging.getLogger(__name__)


[docs]def parse_args(args): """Parse command line parameters Args: args ([str]): command line parameters as list of strings Returns: :obj:`argparse.Namespace`: command line parameters namespace """ parser = argparse.ArgumentParser( description="Create a config file") parser.add_argument('--version', action='version', version='cityiq {ver}'.format(ver=__version__)) group = parser.add_mutually_exclusive_group() group.add_argument('-w', '--write', help='Write a new default config file. ', action='store_true') group.add_argument('-p', '--print', help='Print the config file', action='store_true') return parser, parser.parse_args(args)
[docs]def main(args): """Main entry point allowing external calls Args: args ([str]): command line parameter list """ from cityiq import Config parser, args = parse_args(args) config = Config() if args.write: p = Path(__file__).parent.joinpath('default-config.yaml') with p.open() as f: d = f.read() fn = 'city-iq.yaml' if Path(fn).exists(): print("Error: {} exists, not overwritting".format(fn)) sys.exit(1) with open(fn, 'w') as f: f.write(d) print("Wrote ", fn) elif args.print: import yaml if not config.client_id: print("ERROR: Did not get valid config file. Use --config option or CITYIQ_CONFIG env var") else: print("Using config:", config._config_file) print(yaml.dump(config.dict, default_flow_style=False)) else: parser.print_usage()
[docs]def run(): """Entry point for console_scripts """ main(sys.argv[1:])
if __name__ == "__main__": run()