From 7b034bf2870c1a810226b725faaa302550dd7c15 Mon Sep 17 00:00:00 2001 From: pdmurray Date: Mon, 27 Jan 2025 12:20:12 -0800 Subject: [PATCH] [ENH] Replace deprecated utcnow() invocations --- .../conda_store_server/_internal/orm.py | 2 +- .../_internal/worker/build.py | 19 +++++++++++-------- .../_internal/worker/tasks.py | 2 +- .../conda_store_server/conda_store.py | 6 +++--- .../conda_store_server/server/auth.py | 5 ++++- .../conda_store_server/server/schema.py | 2 +- conda-store-server/tests/conftest.py | 8 ++++---- conda-store-server/tests/server/test_auth.py | 3 ++- 8 files changed, 27 insertions(+), 20 deletions(-) diff --git a/conda-store-server/conda_store_server/_internal/orm.py b/conda-store-server/conda_store_server/_internal/orm.py index 32829fe0a..f0975b95b 100644 --- a/conda-store-server/conda_store_server/_internal/orm.py +++ b/conda-store-server/conda_store_server/_internal/orm.py @@ -716,7 +716,7 @@ def update_packages(self, db, subdirs=None): logger.info(f"DONE for architecture : {architecture}") - self.last_update = datetime.datetime.utcnow() + self.last_update = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() logger.info("update packages DONE ") diff --git a/conda-store-server/conda_store_server/_internal/worker/build.py b/conda-store-server/conda_store_server/_internal/worker/build.py index 04b25d3a8..0bbc521ed 100644 --- a/conda-store-server/conda_store_server/_internal/worker/build.py +++ b/conda-store-server/conda_store_server/_internal/worker/build.py @@ -74,7 +74,7 @@ def append_to_logs(db: Session, conda_store, build, logs: typing.Union[str, byte def set_build_started(db: Session, build: orm.Build): build.status = schema.BuildStatus.BUILDING - build.started_on = datetime.datetime.utcnow() + build.started_on = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() @@ -83,7 +83,7 @@ def set_build_failed( ): build.status = schema.BuildStatus.FAILED build.status_info = status_info - build.ended_on = datetime.datetime.utcnow() + build.ended_on = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() @@ -92,13 +92,13 @@ def set_build_canceled( ): build.status = schema.BuildStatus.CANCELED build.status_info = status_info - build.ended_on = datetime.datetime.utcnow() + build.ended_on = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() def set_build_completed(db: Session, conda_store, build: orm.Build): build.status = schema.BuildStatus.COMPLETED - build.ended_on = datetime.datetime.utcnow() + build.ended_on = datetime.datetime.now(tz=datetime.timezone.utc) directory_build_artifact = orm.BuildArtifact( build_id=build.id, @@ -162,7 +162,10 @@ def build_cleanup( and str(build.id) not in build_active_tasks and ( build.started_on - < (datetime.datetime.utcnow() - datetime.timedelta(seconds=5)) + < ( + datetime.datetime.now(tz=datetime.timezone.utc) + - datetime.timedelta(seconds=5) + ) ) ): conda_store.log.warning( @@ -194,7 +197,7 @@ def build_conda_environment(db: Session, conda_store, build): db, conda_store, build, - f"starting build of conda environment {datetime.datetime.utcnow()} UTC\n", + f"starting build of conda environment {datetime.datetime.now(tz=datetime.timezone.utc)} UTC\n", ) settings = conda_store.get_settings( @@ -337,7 +340,7 @@ def build_conda_environment(db: Session, conda_store, build): def solve_conda_environment(db: Session, conda_store, solve: orm.Solve): - solve.started_on = datetime.datetime.utcnow() + solve.started_on = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() _, locker = conda_store.lock_plugin() @@ -353,7 +356,7 @@ def solve_conda_environment(db: Session, conda_store, solve: orm.Solve): solve_id=solve.id, ) - solve.ended_on = datetime.datetime.utcnow() + solve.ended_on = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() diff --git a/conda-store-server/conda_store_server/_internal/worker/tasks.py b/conda-store-server/conda_store_server/_internal/worker/tasks.py index bd6b6af84..b6c50c66d 100644 --- a/conda-store-server/conda_store_server/_internal/worker/tasks.py +++ b/conda-store-server/conda_store_server/_internal/worker/tasks.py @@ -297,7 +297,7 @@ def task_delete_build(self, build_id): delete_build_artifact(db, conda_store, build_artifact) # Updates build size and marks build as deleted - build.deleted_on = datetime.datetime.utcnow() + build.deleted_on = datetime.datetime.now(tz=datetime.timezone.utc) build.size = 0 db.commit() diff --git a/conda-store-server/conda_store_server/conda_store.py b/conda-store-server/conda_store_server/conda_store.py index 7f753d96e..82c5e3499 100644 --- a/conda-store-server/conda_store_server/conda_store.py +++ b/conda-store-server/conda_store_server/conda_store.py @@ -434,7 +434,7 @@ def delete_namespace(self, db: Session, namespace: str): if namespace is None: raise CondaStoreError(f"namespace={namespace} does not exist") - utcnow = datetime.datetime.utcnow() + utcnow = datetime.datetime.now(tz=datetime.timezone.utc) namespace.deleted_on = utcnow for environment_orm in namespace.environments: environment_orm.deleted_on = utcnow @@ -463,7 +463,7 @@ def delete_environment(self, db: Session, namespace: str, name: str): f"environment namespace={namespace} name={name} does not exist" ) - utcnow = datetime.datetime.utcnow() + utcnow = datetime.datetime.now(tz=datetime.timezone.utc) environment.deleted_on = utcnow for build in environment.builds: build.deleted_on = utcnow @@ -492,7 +492,7 @@ def delete_build(self, db: Session, build_id: int): ]: raise CondaStoreError("cannot delete build since not finished building") - build.deleted_on = datetime.datetime.utcnow() + build.deleted_on = datetime.datetime.now(tz=datetime.timezone.utc) db.commit() self.celery_app diff --git a/conda-store-server/conda_store_server/server/auth.py b/conda-store-server/conda_store_server/server/auth.py index 50e355b4c..c48b0c2ec 100644 --- a/conda-store-server/conda_store_server/server/auth.py +++ b/conda-store-server/conda_store_server/server/auth.py @@ -561,7 +561,10 @@ async def post_login_method( domain=self.cookie_domain, # set cookie to expire at same time as jwt max_age=int( - (authentication_token.exp - datetime.datetime.utcnow()).total_seconds() + ( + authentication_token.exp + - datetime.datetime.now(tz=datetime.timezone.utc) + ).total_seconds() ), ) return response diff --git a/conda-store-server/conda_store_server/server/schema.py b/conda-store-server/conda_store_server/server/schema.py index 6e48d0686..2e7666af9 100644 --- a/conda-store-server/conda_store_server/server/schema.py +++ b/conda-store-server/conda_store_server/server/schema.py @@ -27,7 +27,7 @@ def _datetime_factory(offset: datetime.timedelta): """Utcnow datetime + timezone as string""" - return datetime.datetime.utcnow() + offset + return datetime.datetime.now(tz=datetime.timezone.utc) + offset RoleBindings: TypeAlias = Dict[ diff --git a/conda-store-server/tests/conftest.py b/conda-store-server/tests/conftest.py index edb7e738f..218be83de 100644 --- a/conda-store-server/tests/conftest.py +++ b/conda-store-server/tests/conftest.py @@ -236,8 +236,8 @@ def seed_conda_store(db, conda_store): # for testing purposes make build 4 complete build = api.get_build(db, build_id=4) - build.started_on = datetime.datetime.utcnow() - build.ended_on = datetime.datetime.utcnow() + build.started_on = datetime.datetime.now(tz=datetime.timezone.utc) + build.ended_on = datetime.datetime.now(tz=datetime.timezone.utc) build.status = schema.BuildStatus.COMPLETED db.commit() return db @@ -276,8 +276,8 @@ def seed_conda_store_big(db, conda_store): # for testing purposes make build 4 complete build = api.get_build(db, build_id=4) - build.started_on = datetime.datetime.utcnow() - build.ended_on = datetime.datetime.utcnow() + build.started_on = datetime.datetime.now(tz=datetime.timezone.utc) + build.ended_on = datetime.datetime.now(tz=datetime.timezone.utc) build.status = schema.BuildStatus.COMPLETED db.commit() return db diff --git a/conda-store-server/tests/server/test_auth.py b/conda-store-server/tests/server/test_auth.py index d58499e5d..ca220339b 100644 --- a/conda-store-server/tests/server/test_auth.py +++ b/conda-store-server/tests/server/test_auth.py @@ -79,7 +79,8 @@ def test_expired_token(): token = authentication.encrypt_token( AuthenticationToken( primary_namespace="default", - exp=datetime.datetime.utcnow() - datetime.timedelta(hours=1), + exp=datetime.datetime.now(tz=datetime.timezone.utc) + - datetime.timedelta(hours=1), role_bindings={ "default/*": ["viewer"], "e*/e*": ["admin"],