summaryrefslogtreecommitdiffstats
path: root/core/models/wallets.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2023-07-25 01:33:58 +0300
committerPhilip Sargent <philip.sargent@gmail.com>2023-07-25 01:34:02 +0300
commit3c78ab79ca14d71eb545fdb4e5aa641ad70d9786 (patch)
treec45a1a9ac8941290300dd6d6727dc6bf60d8479a /core/models/wallets.py
parent748cb91a20add6391939d4730548bd677d06ae8c (diff)
downloadtroggle-3c78ab79ca14d71eb545fdb4e5aa641ad70d9786.tar.gz
troggle-3c78ab79ca14d71eb545fdb4e5aa641ad70d9786.tar.bz2
troggle-3c78ab79ca14d71eb545fdb4e5aa641ad70d9786.zip
better fix for variant date formats
Diffstat (limited to 'core/models/wallets.py')
-rw-r--r--core/models/wallets.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/core/models/wallets.py b/core/models/wallets.py
index 29ca9e2..c0a8664 100644
--- a/core/models/wallets.py
+++ b/core/models/wallets.py
@@ -21,6 +21,7 @@ def make_valid_date(date):
datestr = date.replace(".", "-")
try:
samedate = datetime.date.fromisoformat(datestr)
+ return samedate
except ValueError:
# Could be in std euro format e.g. 14/07/2023
match = re.search(r'(\d{1,2})/(\d{1,2})/(\d{2,4})', datestr)
@@ -37,19 +38,22 @@ def make_valid_date(date):
except:
print(f"! - Fail, tried to decompose date in dd/mm/yyyy format but failed: {datestr=} ")
return None
- # probably a single digit day number. HACKUS MAXIMUS.
- datestr = datestr[:-1] + "0" + datestr[-1]
- # datestr = f"{datestr:02d}"
- print(f"! - ValueError, trying.. {datestr=} ")
- try:
- samedate = datetime.date.fromisoformat(datestr)
- except:
+ # probably a single digit day number or month number
+ match = re.search(r'(\d{4})-(\d{1,2})-(\d{1,2})', datestr)
+ if match:
+ y = int(match.group(1))
+ m = int(match.group(2))
+ d = int(match.group(3))
try:
- samedate = datetime.date.fromisoformat(datestr[:10])
+ samedate = datetime.date(y, m, d)
+ print(f"- - Warning, 1 digit only for month or day '{datestr=}' but we coped: {samedate.isoformat()} ")
+ return samedate
except:
- print(f"! - ValueError, FAILED {datestr=} ")
- samedate = None
- return samedate
+ print(f"! - Fail, tried to decompose date in yyyy-mm-d or yyy-m-dd format but failed: {datestr=} ")
+ return None
+
+ print(f"! - Failed to understand date, none of our tricks worked {datestr=} ")
+ return None
class Wallet(models.Model):
"""We do not keep the JSON values in the database, we query them afresh each time,