-
Notifications
You must be signed in to change notification settings - Fork 496
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
Rework timestamp utilization for timezone consistency #3314
Conversation
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
8dcff29
to
c41c43e
Compare
@@ -1575,7 +1575,7 @@ def deploy( | |||
): | |||
raise click.Abort() | |||
|
|||
date_start = datetime.now(timezone.utc) | |||
date_start = utc_now_tz_aware() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verified that this should be TZ aware.
src/zenml/integrations/aws/orchestrators/sagemaker_orchestrator.py
Outdated
Show resolved
Hide resolved
@@ -66,6 +66,7 @@ | |||
) | |||
from zenml.utils.enum_utils import StrEnum | |||
from zenml.utils.secret_utils import PlainSerializedSecretStr | |||
from zenml.utils.time_utils import utc_now_tz_aware |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All timestamps in this module were TZ aware and must be TZ aware
) | ||
|
||
self.expires_on = int(expires_at.timestamp()) | ||
self.expires_on = int(to_local_tz(expires_at).timestamp()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was not changed in the previous PR. It was in fact incorrect and fixed now to convert the time properly.
now = datetime.datetime.now(datetime.timezone.utc) | ||
expires_at = expires_at.replace(tzinfo=datetime.timezone.utc) | ||
|
||
# check if the token expires in the near future | ||
if expires_at > now + datetime.timedelta( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was not changed in the previous PR, it's just a rework for cleaner code.
expires_at = expires_at.replace(tzinfo=datetime.timezone.utc) | ||
|
||
# check if the token expires in the near future | ||
if expires_at > now + datetime.timedelta( | ||
if expires_at > utc_now(tz_aware=expires_at) + datetime.timedelta( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was not changed in the previous PR, it's just a rework for cleaner code.
@@ -1743,7 +1744,7 @@ def _update_last_user_activity_timestamp( | |||
settings = self._get_server_settings(session=session) | |||
|
|||
if last_user_activity < settings.last_user_activity.replace( | |||
tzinfo=timezone.utc | |||
tzinfo=None |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is coming from the DB and should already be a naive datetime, correct? (I guess nothing wrong with still replacing it, just for my understanding)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, correct. I can remove this replace
call altogether now.
df["target"] = plates.target | ||
plates_columns = dict(zip(plates.feature_names, FULL_FEATURE_NAMES)) | ||
df.rename(columns=plates_columns, inplace=True) | ||
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/00198/Faults.NNA" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this change or can we just wait for openml to be up again?
See openml/openml.org#343
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's just fix this, and we can revert the change later if needed. I'm sick and tired of looking at CI errors.
Describe changes
Following the previous PR (#3265) that replaced deprecated
datetime.utcnow()
withdatetime.now(timezone.utc)
, some follow-up is required to ensure we use timezone-aware timestamps appropriately:This PR introduces a few time utils to make it easier to deal with timezones. It also goes through all occurrences of
datetime.now(timezone.utc)
and re-evaluates whether a timezone-aware timestamp is indeed needed and reverts some of the decisions in the previous PR if that's not the case.Pre-requisites
Please ensure you have done the following:
develop
and the open PR is targetingdevelop
. If your branch wasn't based on develop read Contribution guide on rebasing branch to develop.Types of changes