diff --git a/migrations/20240327_add_created_and_origin.py b/migrations/20240327_add_created_and_origin.py index f9b6fa03c78d282f620383f81e413b34805b9bc1..a20c8de30ba56357497ecd83f09ea92b3fe01e5a 100644 --- a/migrations/20240327_add_created_and_origin.py +++ b/migrations/20240327_add_created_and_origin.py @@ -1,9 +1,18 @@ +import re import csv import dataset from datetime import datetime import rabbit_config as rcfg +def fromisoformat(date_string: str): + regex = re.compile( + r"(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})\.(\d{1,6})" + ) + mo = re.search(regex, date_string) + return datetime(*[int(m) for m in mo.groups()]) + + def upgrade(): db_path = rcfg.db_path db_name = "user_reg.db" @@ -25,13 +34,13 @@ def upgrade(): next(reader) for row in reader: if row[0] in users: - users[row[0]]["created"] = datetime.fromisoformat(row[1][:-3]) + users[row[0]]["created"] = fromisoformat(row[1][:-3]) users[row[0]]["origin"] = row[2] # Add copy created column from last_update if they are not in csv file for username in users: if "created" not in users[username]: - users[username]["created"] = datetime.fromisoformat( + users[username]["created"] = fromisoformat( users[username]["last_update"] ) users[username]["origin"] = "last_update"