aboutsummaryrefslogtreecommitdiffstats
path: root/python/bowdst_wire.py
blob: b53e4624b5cf28d0e84e25172d5d838f8a1b2312 (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
40
41
42
from bowdst import get_dir, download_messages
from csv import DictReader
from citco_ops.bowdst import BowdstWire
import datetime


def dt_from_fname(f):
    return datetime.datetime.strptime(
        f.name.split("_")[1].split(".")[0], "%d %b %Y%H%M%S"
    )


def load_wire_report(workdate: datetime.date):
    p = max(
        [f for f in get_dir(workdate).iterdir() if "BowdstWires" in f.name],
        key=dt_from_fname,
    )
    if not p:  # No files available
        return
    with open(p) as fh:
        reader = DictReader(fh)
        for line in reader:
            BowdstWire.from_nexen_line(line).stage()
        BowdstWire.commit()


if __name__ == "__main__":
    import argparse
    from serenitas.utils.exchange import ExchangeMessage

    parser = argparse.ArgumentParser()
    parser.add_argument(
        "workdate",
        nargs="?",
        type=datetime.date.fromisoformat,
        default=datetime.date.today(),
        help="working date",
    )
    args = parser.parse_args()
    em = ExchangeMessage()
    download_messages(em)
    load_wire_report(args.workdate)