From 17c27ee1e5bb0fd83ad3c871bb696bd38e44af7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sinclert=20P=C3=A9rez?= Date: Thu, 25 Jan 2024 23:05:41 +0100 Subject: [PATCH] Define generate_timestamp utils func --- src/dialect_map_core/models/__utils.py | 12 ++++++++++++ src/dialect_map_core/models/base.py | 11 ++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/dialect_map_core/models/__utils.py b/src/dialect_map_core/models/__utils.py index 29cea19..5f3722b 100644 --- a/src/dialect_map_core/models/__utils.py +++ b/src/dialect_map_core/models/__utils.py @@ -2,6 +2,9 @@ import uuid +from datetime import datetime +from datetime import timezone + def generate_id() -> str: """ @@ -10,3 +13,12 @@ def generate_id() -> str: """ return str(uuid.uuid4()).replace("-", "") + + +def generate_timestamp() -> datetime: + """ + Generates a UTC timestamp + :return: UTC timestamp + """ + + return datetime.now(timezone.utc) diff --git a/src/dialect_map_core/models/base.py b/src/dialect_map_core/models/base.py index db9d7dd..5b4a49e 100644 --- a/src/dialect_map_core/models/base.py +++ b/src/dialect_map_core/models/base.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- from abc import abstractmethod -from datetime import datetime from sqlalchemy import Boolean from sqlalchemy import DateTime @@ -11,6 +10,8 @@ from sqlalchemy.orm import mapped_column as Column from sqlalchemy.orm import validates +from .__utils import generate_timestamp + class Base(DeclarativeBase): """Base class for all the Python data models""" @@ -82,7 +83,7 @@ def created_at(self): @declared_attr def audited_at(self): - return Column(DateTime, nullable=True, index=False, default=datetime.utcnow) + return Column(DateTime, nullable=True, index=False, default=generate_timestamp) @validates("audited_at") def check_audited(self, key, val): @@ -133,7 +134,7 @@ def archived_at(self): @declared_attr def audited_at(self): - return Column(DateTime, nullable=True, index=False, default=datetime.utcnow) + return Column(DateTime, nullable=True, index=False, default=generate_timestamp) @validates("archived_at") def check_archived(self, key, val): @@ -189,11 +190,11 @@ def created_at(self): @declared_attr def updated_at(self): - return Column(DateTime, nullable=False, index=True, onupdate=datetime.utcnow) + return Column(DateTime, nullable=False, index=True, onupdate=generate_timestamp) @declared_attr def audited_at(self): - return Column(DateTime, nullable=True, index=False, default=datetime.utcnow) + return Column(DateTime, nullable=True, index=False, default=generate_timestamp) @validates("audited_at") def check_audited(self, key, val):