This is an automated email from the ASF dual-hosted git repository.

ephraimanierobi pushed a commit to branch v2-3-test
in repository https://gitbox.apache.org/repos/asf/airflow.git

commit 23c714b0c200d30f3184f8dce5eb116eb955893f
Author: Kian Eliasi <[email protected]>
AuthorDate: Tue Aug 9 15:04:40 2022 +0430

    Fix the errors raised when None is passed to template filters (#25593)
    
    (cherry picked from commit 741c20770230c83a95f74fe7ad7cc9f95329f2cc)
---
 airflow/templates.py | 24 +++++++++++++++++++-----
 1 file changed, 19 insertions(+), 5 deletions(-)

diff --git a/airflow/templates.py b/airflow/templates.py
index 6ec010f618..73c8635836 100644
--- a/airflow/templates.py
+++ b/airflow/templates.py
@@ -16,6 +16,10 @@
 # specific language governing permissions and limitations
 # under the License.
 
+from __future__ import annotations
+
+import datetime
+
 import jinja2.nativetypes
 import jinja2.sandbox
 
@@ -44,23 +48,33 @@ class SandboxedEnvironment(_AirflowEnvironmentMixin, 
jinja2.sandbox.SandboxedEnv
     """SandboxedEnvironment for Airflow task templates."""
 
 
-def ds_filter(value):
+def ds_filter(value: datetime.date | datetime.time | None) -> str | None:
+    if value is None:
+        return None
     return value.strftime('%Y-%m-%d')
 
 
-def ds_nodash_filter(value):
+def ds_nodash_filter(value: datetime.date | datetime.time | None) -> str | 
None:
+    if value is None:
+        return None
     return value.strftime('%Y%m%d')
 
 
-def ts_filter(value):
+def ts_filter(value: datetime.date | datetime.time | None) -> str | None:
+    if value is None:
+        return None
     return value.isoformat()
 
 
-def ts_nodash_filter(value):
+def ts_nodash_filter(value: datetime.date | datetime.time | None) -> str | 
None:
+    if value is None:
+        return None
     return value.strftime('%Y%m%dT%H%M%S')
 
 
-def ts_nodash_with_tz_filter(value):
+def ts_nodash_with_tz_filter(value: datetime.date | datetime.time | None) -> 
str | None:
+    if value is None:
+        return None
     return value.isoformat().replace('-', '').replace(':', '')
 
 

Reply via email to