diff options
| author | Terry Truong <terry06890@gmail.com> | 2023-01-21 12:21:03 +1100 |
|---|---|---|
| committer | Terry Truong <terry06890@gmail.com> | 2023-01-21 12:32:01 +1100 |
| commit | 0a9b2c2e5eca8a04e37fbdd423379882863237c2 (patch) | |
| tree | 1812bdb6bb13e4f76fdd7ef04075b291f775c213 /backend/hist_data/gen_picked_data.py | |
| parent | 8321e2f92dbc073b8f1de87895d6620a2021b22e (diff) | |
Adjust backend coding style
Increase line spacing, add section comments, etc
Diffstat (limited to 'backend/hist_data/gen_picked_data.py')
| -rwxr-xr-x | backend/hist_data/gen_picked_data.py | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/backend/hist_data/gen_picked_data.py b/backend/hist_data/gen_picked_data.py index c5f4577..a6bb8f8 100755 --- a/backend/hist_data/gen_picked_data.py +++ b/backend/hist_data/gen_picked_data.py @@ -4,14 +4,15 @@ Adds additional manually-picked events to the database """ -# Code used in unit testing (for resolving imports of modules within this directory) -import os, sys +# For unit testing, resolve imports of modules within this directory +import os +import sys parentDir = os.path.dirname(os.path.realpath(__file__)) sys.path.append(parentDir) -# Standard imports + import argparse import json, sqlite3 -# Local imports + from gen_imgs import convertImage from cal import SCALES, dbDateToHistDate, dateToUnit @@ -23,7 +24,7 @@ IMG_OUT_DIR = 'img' def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, scales: list[int]) -> None: dbCon = sqlite3.connect(dbFile) dbCur = dbCon.cursor() - # + with open(os.path.join(pickedDir, pickedEvtFile)) as f: eventsToAdd = json.load(f) nextId = -1 @@ -33,7 +34,7 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca if eventId is None and title is None: print(f'ERROR: Entry with no ID or title: {event}') break - # + doAdd = eventId is None and len(event) > 1 doModify = eventId is not None and len(event) > 1 doDelete = not doModify and not doAdd @@ -42,6 +43,7 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca dbCur.execute('INSERT INTO events VALUES (?, ?, ?, ?, ?, ?, ?, ?)', (nextId, event['title'], event['start'], event['start_upper'], event['end'], event['end_upper'], event['fmt'], event['ctg'])) + # Update image, description, and popularity tables if 'image' in event: print('> Adding image') @@ -57,6 +59,7 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca if 'desc' in event: dbCur.execute('INSERT INTO descs VALUES (?, ?, ?)', (nextId, nextId, event['desc'])) dbCur.execute('INSERT INTO pop VALUES (?, ?)', (nextId, event['pop'])) + # Update event distribution tables for scale in scales: unit = dateToUnit(dbDateToHistDate(event['start'], event['fmt']), scale) @@ -65,7 +68,7 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca else: dbCur.execute('INSERT INTO dist VALUES (?, ?, ?)', (scale, unit, 1)) dbCur.execute('INSERT INTO event_disp VALUES (?, ?, ?)', (nextId, scale, unit)) - # + nextId -= 1 elif doDelete: if eventId: @@ -78,6 +81,7 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca print(f'ERROR: Could not find event with title {title}') break eventId, eventStart, eventFmt = row + # Note: Intentionally not deleting entries or files for images that become unused. dbCur.execute('DELETE FROM events WHERE id = ?', (eventId,)) dbCur.execute('DELETE FROM pop WHERE id = ?', (eventId,)) @@ -93,15 +97,18 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca dbCur.execute('UPDATE dist SET count = count - 1 WHERE scale = ? AND unit = ?', (scale, unit)) dbCur.execute('DELETE FROM event_disp WHERE id = ?', (eventId,)) else: # doModify + # Note: Intentionally not updating 'event_disp' table to account for 'indirect event displayability' print(f'Modifying event with ID {eventId}') row = dbCur.execute('SELECT start, fmt FROM events WHERE id = ?', (eventId,)).fetchone() if row is None: print(f'ERROR: Could not find event with ID {eventId}') break oldStart, oldFmt = row + for field in ['title', 'start', 'start_upper', 'end', 'end_upper', 'fmt', 'ctg']: if field in event: dbCur.execute(f'UPDATE events SET {field} = ? WHERE id = ?', (event[field], eventId,)) + if 'image' in event: print('> Adding image') image = event['image'] @@ -117,16 +124,19 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca # Note: Intentionally not deleting entries or files for images that become unused. else: dbCur.execute('INSERT INTO event_imgs VALUES (?, ?)', (eventId, nextId)) + if 'desc' in event: if dbCur.execute('SELECT desc FROM descs WHERE id = ?', (eventId,)).fetchone(): dbCur.execute('UPDATE event_imgs SET desc = ? WHERE id = ?', (event['desc'], eventId)) else: dbCur.execute('INSERT INTO descs VALUES (?, ?)', (eventId, event['desc'])) + if 'pop' in event: if dbCur.execute('SELECT pop FROM pop WHERE id = ?', (eventId,)).fetchone(): dbCur.execute('UPDATE pop SET pop = ? WHERE id = ?', (event['pop'], eventId)) else: dbCur.execute('INSERT INTO pop VALUES (?, ?)', (eventId, event['pop'])) + if 'start' in event: # Remove old distribution data for scale in scales: @@ -147,14 +157,14 @@ def genData(pickedDir: str, pickedEvtFile: str, dbFile: str, imgOutDir: str, sca else: dbCur.execute('INSERT INTO dist VALUES (?, ?, ?)', (scale, unit, 1)) dbCur.execute('INSERT INTO event_disp VALUES (?, ?, ?)', (eventId, scale, unit)) - # Note: Intentionally not updating 'event_disp' table to account for 'indirect event displayability' + nextId -= 1 - # + dbCon.commit() dbCon.close() if __name__ == '__main__': parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) args = parser.parse_args() - # + genData(PICKED_DIR, PICKED_EVT_FILE, DB_FILE, IMG_OUT_DIR, SCALES) |
