ashb commented on code in PR #53831:
URL: https://github.com/apache/airflow/pull/53831#discussion_r2262736266
##########
task-sdk/src/airflow/sdk/bases/notifier.py:
##########
@@ -104,4 +132,23 @@ def __call__(self, *args) -> None:
try:
self.notify(context)
except Exception as e:
- self.log.exception("Failed to send notification: %s", e)
+ self.log.exception("Failed to send (blocking) notification: %s", e)
+
+ def __await__(self) -> Generator[Any, None, None]:
+ """
+ Make the notifier awaitable.
+
+ Context provided in the constructor is used.
+ """
+ self._update_context(self.context)
+ self.render_template_fields(self.context)
+ try:
+ return self.async_notify(self.context).__await__()
Review Comment:
Oh yes. Then how about move all the logic (rendering, error handling) into
an async function, and then this fn becomes:
```python
async def _something(self):
self._update_context(self.context)
self.render_template_fields(self.context)
... # etc.
def __await__(self):
return self._something().__await__()
```
I think that would be cleanrer than heeding to have the empty generator.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]