aboutsummaryrefslogtreecommitdiffstats
path: root/python/task_server/__main__.py
blob: 2fb1f1e6608297c270536fff669cc14c03fa85d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import logging
import argparse
import datetime
from .globeop import download_data, upload_data
from sqlalchemy import create_engine
from serenitas.utils import SerenitasFileHandler

fh = SerenitasFileHandler("globeop.log")
logger = logging.getLogger("task_server")
logger.handlers = []
logger.addHandler(fh)
logger.setLevel(logging.INFO)


parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group(required=True)
## options are technically not exclusive, but we will be running them
## at different times of the day
group.add_argument(
    "-d", "--download", action="store_true", help="download reports from GlobeOp"
)
group.add_argument(
    "-u", "--upload", action="store_true", help="upload marks to GlobeOp"
)
parser.add_argument(
    "date", nargs="?", type=datetime.date.fromisoformat, default=datetime.date.today()
)
args = parser.parse_args()

engine = create_engine("postgresql://dawn_user@debian/dawndb")

if args.download:
    for fund in ("SERCGMAST", "BOWDST"):
        download_data(engine, args.date, fund)
elif args.upload:
    for fund in ("SERCGMAST", "BOWDST"):
        time = datetime.datetime.now().time()
        date = datetime.datetime.combine(args.date, time)
        upload_data(engine, date, fund)