diff --git a/whitebox/core/manager.py b/whitebox/core/manager.py index 35ec4de..33db77e 100644 --- a/whitebox/core/manager.py +++ b/whitebox/core/manager.py @@ -24,11 +24,10 @@ from functools import lru_cache import datetime -import pytz def now(): - return datetime.datetime.utcnow().replace(tzinfo=pytz.utc) + return datetime.datetime.now(datetime.timezone.utc) class Task_Manager: diff --git a/whitebox/cron_tasks/monitoring_alerts.py b/whitebox/cron_tasks/monitoring_alerts.py index 286f3c0..bb02f90 100644 --- a/whitebox/cron_tasks/monitoring_alerts.py +++ b/whitebox/cron_tasks/monitoring_alerts.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone import time from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker, Session @@ -54,7 +54,7 @@ async def run_create_performance_metric_alert_pipeline( new_alert = entities.Alert( model_id=model.id, model_monitor_id=monitor.id, - timestamp=str(datetime.utcnow()), + timestamp=str(datetime.now(timezone.utc)), description=f"{monitor.metric} fell below the threshold of {monitor.lower_threshold} at value {metric_value}.", ) crud.alerts.create(db, obj_in=new_alert) @@ -88,7 +88,7 @@ async def run_create_drift_alert_pipeline(model: Model, monitor: ModelMonitor): new_alert = entities.Alert( model_id=model.id, model_monitor_id=monitor.id, - timestamp=str(datetime.utcnow()), + timestamp=str(datetime.now(timezone.utc)), description=f'{monitor.metric.capitalize().replace("_", " ")} found in "{monitor.feature}" feature.', ) crud.alerts.create(db, obj_in=new_alert) diff --git a/whitebox/cron_tasks/monitoring_metrics.py b/whitebox/cron_tasks/monitoring_metrics.py index cbc112b..1dfae43 100644 --- a/whitebox/cron_tasks/monitoring_metrics.py +++ b/whitebox/cron_tasks/monitoring_metrics.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import datetime, timezone import pandas as pd import time from sqlalchemy import create_engine @@ -260,7 +260,7 @@ async def run_calculate_metrics_pipeline(): last_report_time = ( last_report.timestamp if last_report - else round_timestamp(datetime.utcnow(), "1D") + else round_timestamp(datetime.now(timezone.utc), "1D") ) unused_inference_rows_in_db = await get_unused_model_inference_rows( diff --git a/whitebox/crud/base.py b/whitebox/crud/base.py index f76d8c1..9bf0b58 100644 --- a/whitebox/crud/base.py +++ b/whitebox/crud/base.py @@ -34,7 +34,7 @@ def get_first_by_filter(self, db: Session, **kwargs: Any) -> Optional[ModelType] return db.query(self.model).filter_by(**kwargs).first() def create(self, db: Session, *, obj_in: CreateSchemaType) -> ModelType: - date_now = datetime.datetime.utcnow() + date_now = datetime.datetime.now(datetime.timezone.utc) obj_in_data = jsonable_encoder(obj_in) db_obj = self.model(**obj_in_data, created_at=date_now, updated_at=date_now) db.add(db_obj) @@ -45,7 +45,7 @@ def create(self, db: Session, *, obj_in: CreateSchemaType) -> ModelType: def create_many( self, db: Session, *, obj_list: List[CreateSchemaType] ) -> List[ModelType]: - date_now = datetime.datetime.utcnow() + date_now = datetime.datetime.now(datetime.timezone.utc) obj_list_in_data = jsonable_encoder(obj_list) db_obj_list = list( map( @@ -66,7 +66,7 @@ def update( db_obj: ModelType, obj_in: Union[UpdateSchemaType, Dict[str, Any]] ) -> ModelType: - date_now = datetime.datetime.utcnow() + date_now = datetime.datetime.now(datetime.timezone.utc) obj_data = jsonable_encoder(db_obj) if isinstance(obj_in, dict): update_data = obj_in diff --git a/whitebox/schemas/task.py b/whitebox/schemas/task.py index 8ca74f4..1c937c9 100644 --- a/whitebox/schemas/task.py +++ b/whitebox/schemas/task.py @@ -6,11 +6,10 @@ from uuid import UUID, uuid4 import datetime -import pytz def now(): - return datetime.datetime.utcnow().replace(tzinfo=pytz.utc) + return datetime.datetime.now(datetime.timezone.utc) TaskStatus = Literal[