-
Notifications
You must be signed in to change notification settings - Fork 16
/
main.py
81 lines (72 loc) · 2.85 KB
/
main.py
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/python
# -*- coding: utf-8 -*-
import argparse
from datetime import datetime
from lib.helpers import DATE_FORMAT
from lib.helpers import configure_logging
from lib.downloader import downloader
from lib.graphs import graphs_builder
def parse_args():
parser = argparse.ArgumentParser(description='MOEX quotes downloader and graphs')
subparsers = parser.add_subparsers(title='subcommands', dest='sub')
download_parser = subparsers.add_parser('download', help='download quotes')
download_parser.add_argument(
'--engine',
default='stock',
choices=['stock', 'currency', 'nasdaq'],
help='Доступные торговые системы: "stock, currency, nasdaq" https://iss.moex.com/iss/engines.xml',
)
download_parser.add_argument(
'--market',
required=True,
# choices=['shares', 'bonds', 'index', 'selt'],
help='Доступные рынки MOEX: "index, shares, bonds, selt" https://iss.moex.com/iss/engines/stock/markets.xml',
)
download_parser.add_argument(
'--date',
required=True,
type=lambda d: datetime.strptime(d, DATE_FORMAT),
help='Дата, за которую скачивать котировки в формате YYYY-MM-DD',
)
download_parser.add_argument(
'--dateend',
type=lambda d: datetime.strptime(d, DATE_FORMAT),
help='Дата окончания диапазона дат [date, dateend] в формате YYYY-MM-DD',
)
download_parser.add_argument(
'--save-raw-xml',
action='store_true',
help='Сохранять ли исходные XML файлы',
)
download_parser.set_defaults(fn=downloader)
graphs_parser = subparsers.add_parser('graphs', help='build graphs')
graphs_parser.add_argument(
'--date',
required=True,
type=lambda d: datetime.strptime(d, DATE_FORMAT),
help='Дата, за которую строить графики в формате YYYY-MM-DD',
)
graphs_parser.add_argument(
'-g',
'--graphs',
'--graph',
nargs='*',
help='Названия графиков, которые пересчитать (английские названия папок). По-умолчанию — все.',
)
graphs_parser.add_argument(
'-c',
'--clear',
action='store_true',
help='Очищать ли предыдущие данные',
)
graphs_parser.add_argument(
'--dateend',
type=lambda d: datetime.strptime(d, DATE_FORMAT),
help='Дата окончания диапазона дат [date, dateend] в формате YYYY-MM-DD',
)
graphs_parser.set_defaults(fn=graphs_builder)
return parser.parse_args()
if __name__ == "__main__":
configure_logging()
args = parse_args()
args.fn(args)