def diff_timeframe(now: pendulum.DateTime, published_datetime: pendulum.DateTime, units: str) -> int: """Determine time since data update was published. Parameters ---------- now : pendulum.DateTime The current datetime. published_datetime : pendulum.DateTime The datetime for the published update. units : str Either "minutes", "hours" or "days". Returns ------- int The amount of time that has elapsed since the dataset was updated. """ if units == "minutes": time_since_publish = now.diff(published_datetime).in_minutes() if units == "hours": time_since_publish = now.diff(published_datetime).in_hours() if units == "days": time_since_publish = now.diff(published_datetime).in_days() return time_since_publish
def __find_pend_diff_str(self, pend: pendulum.DateTime): cd_diff = pend.diff(pendulum.now()) (diff_days, diff_hours, diff_minutes) = (cd_diff.days, cd_diff.hours, cd_diff.minutes) if (not pend.is_future()): (diff_days, diff_hours, diff_minutes) = (-diff_days, -diff_hours, -diff_minutes) diff_str = f"{diff_days} days, {diff_hours} hours, {diff_minutes} minutes from now" return diff_str