blob: eb99ae88b720bd10c28b86e071771e030bbcdb52 [file] [log] [blame]
gstepanov5efd15a2015-01-29 17:26:24 +02001import gspread
2import argparse
3import json
4
gstepanove0f26ab2015-02-02 18:09:37 +02005from config import DEFAULT_FILE_PATH, \
6 WORK_SHEET, DOCUMENT_ID, ROW_COUNT, OUTPUT_FILE
7from storage_api import DiskStorage, GoogleDocsStorage, get_work_sheet, append_row
gstepanov5efd15a2015-01-29 17:26:24 +02008
9
10def load_data(file_name):
11 with open(file_name) as f:
12 data = f.read()
13 return json.loads(data)
14
15
gstepanov31bb8e42015-01-30 18:00:42 +020016#getting worksheet from sheet or create it with specified column names.
gstepanov31bb8e42015-01-30 18:00:42 +020017
gstepanov71764e92015-02-02 16:33:11 +020018def make_report(email, password, data):
19 gc = gspread.login(email, password)
gstepanov5efd15a2015-01-29 17:26:24 +020020 sh = gc.open_by_key(DOCUMENT_ID)
gstepanov5efd15a2015-01-29 17:26:24 +020021
gstepanov31bb8e42015-01-30 18:00:42 +020022 work_sheet = get_work_sheet(sh, WORK_SHEET, data.keys())
23 append_row(work_sheet, data)
gstepanov5efd15a2015-01-29 17:26:24 +020024
25
gstepanove0f26ab2015-02-02 18:09:37 +020026def main(file_name, email, password, mode):
gstepanov71764e92015-02-02 16:33:11 +020027 data = load_data(file_name)
gstepanove0f26ab2015-02-02 18:09:37 +020028
29 if mode == 'local':
30 storage = DiskStorage(OUTPUT_FILE)
31 else:
32 storage = GoogleDocsStorage(DOCUMENT_ID, WORK_SHEET, email, password)
33
34 storage.store(data)
gstepanov71764e92015-02-02 16:33:11 +020035
36
gstepanov5efd15a2015-01-29 17:26:24 +020037if __name__ == '__main__':
38 parser = argparse.ArgumentParser()
gstepanov31bb8e42015-01-30 18:00:42 +020039 parser.add_argument('-n', '--name', help='data file path',
40 default=DEFAULT_FILE_PATH)
gstepanov71764e92015-02-02 16:33:11 +020041 parser.add_argument('-e', '--email', help='user email',
42 default="aaa@gmail.com")
43 parser.add_argument('-p', '--password', help='user password',
44 default="1234")
45 parser.add_argument('-m', '--mode', help='mode type local or global',
gstepanove0f26ab2015-02-02 18:09:37 +020046 default='local')
gstepanov5efd15a2015-01-29 17:26:24 +020047 results = parser.parse_args()
gstepanove0f26ab2015-02-02 18:09:37 +020048 main(results.name, results.email, results.password, results.mode)
gstepanov71764e92015-02-02 16:33:11 +020049