Skip to content

Resolve datetime deprecation warnings #1250

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

emmanuel-ferdman
Copy link

PR Summary

This PR fixes the DeprecationWarning that appears in Python 3.12+ when using datetime.utcnow(). It replaces it with a more future-proof approach: datetime.now(timezone.utc).replace(tzinfo=None). This keeps the datetime object naive (without timezone info), which is important for parts of the code that expect it that way, but avoids the warning by using a timezone-aware method first:

# Before (deprecated)  
from datetime import datetime  
naive_time = datetime.utcnow()  # Raises warning  

# Common Fix (timezone-aware)  
from datetime import datetime, timezone  
aware_time = datetime.now(timezone.utc)  # Breaks naive-dependent code  

# This PR's Fix (naive but compliant)  
from datetime import datetime, timezone  
compliant_time = datetime.now(timezone.utc).replace(tzinfo=None)  # No warning, backward-compatible  

You can see this warning in the latest CI run:

  /home/runner/work/vizier/vizier/vizier/_src/service/vizier_service.py:716: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    or datetime.datetime.utcnow()

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant