Source code for cityiq.cli.assets
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
"""
import argparse
import logging
import sys
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="Fetch and dispay assets")
parser.add_argument('--version', action='version', version='cityiq {ver}'.format(ver=__version__))
parser.add_argument('-v', '--verbose', dest="loglevel", help="set loglevel to INFO", action='store_const',
const=logging.INFO)
parser.add_argument('-vv', '--very-verbose', dest="loglevel", help="set loglevel to DEBUG", action='store_const',
const=logging.DEBUG)
parser.add_argument('-c', '--config', help='Path to configuration file')
group = parser.add_mutually_exclusive_group()
group.add_argument('-i', '--iterate', help='Iterate over stored events returning JSON lines', action='store_true')
group.add_argument('-c', '--csv', help='Write assets to a CSV file')
return parser.parse_args(args)
[docs]def setup_logging(loglevel):
"""Setup basic logging
Args:
loglevel (int): minimum loglevel for emitting messages
"""
logformat = "[%(asctime)s] %(levelname)s:%(name)s:%(message)s"
logging.basicConfig(level=loglevel, stream=sys.stdout,
format=logformat, datefmt="%Y-%m-%d %H:%M:%S")
[docs]def main(args):
"""Main entry point allowing external calls
Args:
args ([str]): command line parameter list
"""
from cityiq import Config, CityIq
args = parse_args(args)
setup_logging(args.loglevel)
if args.config:
config = Config(args.config)
else:
config = Config()
if not config.client_id:
print("ERROR: Did not get valid config file. Use --config option or CITYIQ_CONFIG env var")
print("Using config:", config._config_file)
c = CityIq(config)
if args.iterate:
for r in c.assets:
print(r.data)
elif args.csv:
df = c.pair()
df.to_csv(args.pair)
[docs]def run():
"""Entry point for console_scripts
"""
main(sys.argv[1:])
if __name__ == "__main__":
run()