This is an automated email from the ASF dual-hosted git repository.
eladkal pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-1-test by this push:
new 3e806be643e [v3-1-test] Fix Triggerer crashing if Trigger uses builtin
print function (#60258) (#61703)
3e806be643e is described below
commit 3e806be643e7e039da1013fcab0fdc9db27e0b75
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Feb 10 08:58:44 2026 +0200
[v3-1-test] Fix Triggerer crashing if Trigger uses builtin print function
(#60258) (#61703)
* fix typeerror when call the print func
* add unit test
(cherry picked from commit ff03c74542f4e8f99b3329eb169ba990255d6e81)
Co-authored-by: Henry Chen <[email protected]>
---
.../logging/src/airflow_shared/logging/percent_formatter.py | 9 ++++-----
shared/logging/tests/logging/test_percent_formatter.py | 11 +++++++++++
2 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/shared/logging/src/airflow_shared/logging/percent_formatter.py
b/shared/logging/src/airflow_shared/logging/percent_formatter.py
index 78e4b82a810..ee9195e59b5 100644
--- a/shared/logging/src/airflow_shared/logging/percent_formatter.py
+++ b/shared/logging/src/airflow_shared/logging/percent_formatter.py
@@ -54,16 +54,15 @@ class _LazyLogRecordDict(collections.abc.Mapping):
# logging would
#
https://github.com/python/cpython/blob/d3c888b4ec15dbd7d6b6ef4f15b558af77c228af/Lib/logging/__init__.py#L1652C34-L1652C48
if key == "lineno":
- return self.event.get("lineno", 0)
+ return self.event.get("lineno") or 0
if key == "filename":
return self.event.get("filename", "(unknown file)")
if key == "funcName":
return self.event.get("funcName", "(unknown function)")
-
if key in PercentFormatRender.callsite_parameters:
- return
self.event.get(PercentFormatRender.callsite_parameters[key].value)
+ return
self.event.get(PercentFormatRender.callsite_parameters[key].value, "(unknown)")
if key == "name":
- return self.event.get("logger") or self.event.get("logger_name")
+ return self.event.get("logger") or self.event.get("logger_name",
"(unknown)")
if key == "levelname":
return self.event.get("level", self.method_name).upper()
if key == "asctime" or key == "created":
@@ -85,7 +84,7 @@ class _LazyLogRecordDict(collections.abc.Mapping):
return ""
return self.level_styles.get(self.event.get("level",
self.method_name), "")
- return self.event[key]
+ return self.event.get(key)
def __iter__(self):
return self.event.__iter__()
diff --git a/shared/logging/tests/logging/test_percent_formatter.py
b/shared/logging/tests/logging/test_percent_formatter.py
index 872b19dbfde..01ed7422cfa 100644
--- a/shared/logging/tests/logging/test_percent_formatter.py
+++ b/shared/logging/tests/logging/test_percent_formatter.py
@@ -29,3 +29,14 @@ class TestPercentFormatRender:
formatted = fmter(mock.Mock(name="Logger"), "info", {"event": "our
msg"})
assert formatted == "(unknown file):0 our msg"
+
+ def test_lineno_is_none(self):
+ fmter = PercentFormatRender("%(filename)s:%(lineno)d %(message)s")
+
+ formatted = fmter(
+ mock.Mock(name="Logger"),
+ "info",
+ {"event": "our msg", "filename": "test.py", "lineno": None},
+ )
+
+ assert formatted == "test.py:0 our msg"