From 16c77ef7653171c6ede1f582144986fc64a1c3d1 Mon Sep 17 00:00:00 2001
From: Bo-Chun Louis Chen <louistw@uab.edu>
Date: Wed, 27 Mar 2024 11:31:47 -0500
Subject: [PATCH] Include fromisoformat for python 3.6

---
 migrations/20240327_add_created_and_origin.py | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/migrations/20240327_add_created_and_origin.py b/migrations/20240327_add_created_and_origin.py
index f9b6fa0..a20c8de 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"
-- 
GitLab