Source code for arcovid19.cli

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

# Copyright (c) 2020, Bruno Sanchez, Vanessa Daza,
#                     Juan B Cabral, Marcelo Lares,
#                     Nadia Luczywo, Dante Paz, Rodrigo Quiroga,
#                     Martín de los Ríos, Federico Stasyszyn
#                     Cristian Giuppone.
# License: BSD-3-Clause
#   Full Text: https://raw.githubusercontent.com/ivco19/libs/master/LICENSE


# =============================================================================
# DOCS
# =============================================================================

"""Command line interfaces to access different Argentina-Related databases of
COVID-19 data from the Arcovid19 group.

"""

__all__ = ["main", "cases", "webserver"]


# =============================================================================
# IMPORTS
# =============================================================================

import sys

from .cases import load_cases, CASES_URL
from . import web


# =============================================================================
# CONSTANTS
# =============================================================================

DESCRIPTION = __doc__

FOOTNOTES = """This software is under the BSD 3-Clause License.
Copyright (c) 2020, IATE COVID-19 Task Force.
For bug reporting or other instructions please check:
https://github.com/ivco19/libs"""


# =============================================================================
# MAIN_
# =============================================================================

[docs]def cases(*, url=CASES_URL, force=False, out=None): """Retrieve and store the cases database in CSV format. url: str The url for the excel table to parse. Default is ivco19 team table. out: PATH (default=stdout) The output path to the CSV file. If it's not provided the data is printed in the stdout. force: If you want to ignore the local cache or retrieve a new value. """ cases = load_cases(cases_url=url, force=force) if out is not None: cases.to_csv(out) else: cases.to_csv(sys.stdout)
[docs]def webserver( *, host=None, port=None, nodebug=False, reload=False, load_dotenv=True ): """Run a development server for arcovid19 utilities. host: str the hostname to listen on. Set this to '0.0.0.0' to have the server available externally as well. Defaults to '127.0.0.1' or the host in the SERVER_NAME config variable if present. port: int the port of the webserver. Defaults to 5000 or the port defined in the SERVER_NAME config variable if present. nodebug: bool if given, disable debug mode. reload: bool If its True any change of the code will restart the webserver. load_dotenv: Load the nearest '.env' and '.flaskenv' files to set environment variables. Will also change the working directory to the directory containing the first file found. """ app = web.create_app() app.run( host=host, port=port, use_reloader=True, debug=(not nodebug), load_dotenv=load_dotenv)
[docs]def main(): """Run the arcovid19 command line interface.""" from clize import run run( cases, webserver, description=DESCRIPTION, footnotes=FOOTNOTES)