You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by GitBox <gi...@apache.org> on 2021/12/31 15:53:01 UTC

[GitHub] [airflow] potiuk commented on a change in pull request #20608: Even more typing in operators (template_fields/ext)

potiuk commented on a change in pull request #20608:
URL: https://github.com/apache/airflow/pull/20608#discussion_r777026311



##########
File path: airflow/decorators/python.py
##########
@@ -39,12 +39,12 @@ class _PythonDecoratedOperator(DecoratedOperator, PythonOperator):
     :type multiple_outputs: bool
     """
 
-    template_fields = ('op_args', 'op_kwargs')
+    template_fields: Sequence[str] = ('op_args', 'op_kwargs')

Review comment:
       The problem with TemplateFields as type is that we will have to import it from somewhere in Providers (and that would either make them incompatible with pre-Airlfow 2.3 or we will have to `quote` those and add if TYPE_CHECKING trick as we as we did with Context. In this case Sequence[str] sounds like good compromise (especially that till recently we recommended Lists in our examples and Tuple would make anyone's custom operator immediately failing MyPy check (which is not really good in "mass").  I think our intent is a bit different:
   
   * we still accept LIst[] (which is a Sequence as well)
   * but in our operators we implement this always as a Tuple for its immutability
   * so if you want in your custom operator you can still use List if you want
   




-- 
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: commits-unsubscribe@airflow.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org