From 85b430a3669191ee0d092393f98c0dae47218cab Mon Sep 17 00:00:00 2001 From: David Lord Date: Thu, 15 Apr 2021 23:05:24 -0700 Subject: [PATCH] deprecate total_seconds --- CHANGES.rst | 2 ++ src/flask/helpers.py | 10 ++++++++++ src/flask/sessions.py | 3 +-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index 2657dae9..d62d0383 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -72,6 +72,8 @@ Unreleased - Support nesting blueprints. :issue:`593, 1548`, :pr:`3923` - ``flask shell`` sets up tab and history completion like the default ``python`` shell if ``readline`` is installed. :issue:`3941` +- ``helpers.total_seconds()`` is deprecated. Use + ``timedelta.total_seconds()`` instead. :pr:`3962` Version 1.1.2 diff --git a/src/flask/helpers.py b/src/flask/helpers.py index bbec71a9..b6639316 100644 --- a/src/flask/helpers.py +++ b/src/flask/helpers.py @@ -709,7 +709,17 @@ def total_seconds(td): :returns: number of seconds :rtype: int + + .. deprecated:: 2.0 + Will be removed in Flask 2.1. Use + :meth:`timedelta.total_seconds` instead. """ + warnings.warn( + "'total_seconds' is deprecated and will be removed in Flask" + " 2.1. Use 'timedelta.total_seconds' instead.", + DeprecationWarning, + stacklevel=2, + ) return td.days * 60 * 60 * 24 + td.seconds diff --git a/src/flask/sessions.py b/src/flask/sessions.py index 3d653956..795a922c 100644 --- a/src/flask/sessions.py +++ b/src/flask/sessions.py @@ -8,7 +8,6 @@ from itsdangerous import URLSafeTimedSerializer from werkzeug.datastructures import CallbackDict from .helpers import is_ip -from .helpers import total_seconds from .json.tag import TaggedJSONSerializer @@ -340,7 +339,7 @@ class SecureCookieSessionInterface(SessionInterface): val = request.cookies.get(self.get_cookie_name(app)) if not val: return self.session_class() - max_age = total_seconds(app.permanent_session_lifetime) + max_age = int(app.permanent_session_lifetime.total_seconds()) try: data = s.loads(val, max_age=max_age) return self.session_class(data)