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 2023/01/11 10:38:22 UTC

[GitHub] [airflow] Viicos opened a new pull request, #28854: Add return types to `DecoratedOperator`

Viicos opened a new pull request, #28854:
URL: https://github.com/apache/airflow/pull/28854

   The usage of a `TypeVar` seems more appropriate to me here 
   
   <!--
   Thank you for contributing! Please make sure that your code changes
   are covered with tests. And in case of new features or big changes
   remember to adjust the documentation.
   
   Feel free to ping committers for the review!
   
   In case of an existing issue, reference it using one of the following:
   
   closes: #ISSUE
   related: #ISSUE
   
   How to write a good git commit message:
   http://chris.beams.io/posts/git-commit/
   -->
   
   ---
   **^ Add meaningful description above**
   
   Read the **[Pull Request Guidelines](https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#pull-request-guidelines)** for more information.
   In case of fundamental code changes, an Airflow Improvement Proposal ([AIP](https://cwiki.apache.org/confluence/display/AIRFLOW/Airflow+Improvement+Proposals)) is needed.
   In case of a new dependency, check compliance with the [ASF 3rd Party License Policy](https://www.apache.org/legal/resolved.html#category-x).
   In case of backwards incompatible changes please leave a note in a newsfragment file, named `{pr_number}.significant.rst` or `{issue_number}.significant.rst`, in [newsfragments](https://github.com/apache/airflow/tree/main/newsfragments).
   


-- 
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


[GitHub] [airflow] Viicos commented on a diff in pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
Viicos commented on code in PR #28854:
URL: https://github.com/apache/airflow/pull/28854#discussion_r1067213948


##########
airflow/decorators/base.py:
##########
@@ -151,6 +151,7 @@ def _find_id_suffixes(dag: DAG) -> Iterator[int]:
     core = re.split(r"__\d+$", task_id)[0]
     return f"{core}__{max(_find_id_suffixes(dag)) + 1}"
 
+RV = TypeVar("RV", bound=Any)

Review Comment:
   I believe it is the same



-- 
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


[GitHub] [airflow] Viicos commented on pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
Viicos commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1381462277

   Sure I can revert this part to `Any` if necessary ;)


-- 
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


[GitHub] [airflow] github-actions[bot] closed pull request #28854: Add missing types to `decorators.base`

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed pull request #28854: Add missing types to `decorators.base`
URL: https://github.com/apache/airflow/pull/28854


-- 
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


[GitHub] [airflow] boring-cyborg[bot] commented on pull request #28854: Add return types to `DecoratedOperator`

Posted by GitBox <gi...@apache.org>.
boring-cyborg[bot] commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1378549597

   Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contribution Guide (https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst)
   Here are some useful points:
   - Pay attention to the quality of your code (flake8, mypy and type annotations). Our [pre-commits]( https://github.com/apache/airflow/blob/main/STATIC_CODE_CHECKS.rst#prerequisites-for-pre-commit-hooks) will help you with that.
   - In case of a new feature add useful documentation (in docstrings or in `docs/` directory). Adding a new operator? Check this short [guide](https://github.com/apache/airflow/blob/main/docs/apache-airflow/howto/custom-operator.rst) Consider adding an example DAG that shows how users should use it.
   - Consider using [Breeze environment](https://github.com/apache/airflow/blob/main/BREEZE.rst) for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
   - Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
   - Please follow [ASF Code of Conduct](https://www.apache.org/foundation/policies/conduct) for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
   - Be sure to read the [Airflow Coding style]( https://github.com/apache/airflow/blob/main/CONTRIBUTING.rst#coding-style-and-best-practices).
   Apache Airflow is a community-driven project and together we are making it better 🚀.
   In case of doubts contact the developers at:
   Mailing List: dev@airflow.apache.org
   Slack: https://s.apache.org/airflow-slack
   


-- 
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


[GitHub] [airflow] Viicos commented on a diff in pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
Viicos commented on code in PR #28854:
URL: https://github.com/apache/airflow/pull/28854#discussion_r1067218615


##########
airflow/decorators/base.py:
##########
@@ -208,16 +209,16 @@ def __init__(
         self.op_kwargs = op_kwargs
         super().__init__(task_id=task_id, **kwargs_to_upstream, **kwargs)
 
-    def execute(self, context: Context):
+    def execute(self, context: Context) -> RV:
         # todo make this more generic (move to prepare_lineage) so it deals with non taskflow operators
         #  as well
         for arg in chain(self.op_args, self.op_kwargs.values()):
             if isinstance(arg, Dataset):
                 self.inlets.append(arg)
-        return_value = super().execute(context)
+        return_value: RV = super().execute(context)

Review Comment:
   If we use a `TypeVar` bound to the variables listed in my comment below, we could maybe use the following instead:
   `return_value: Dataset | list | dict = super().execute(context)`



-- 
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


[GitHub] [airflow] uranusjr commented on a diff in pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
uranusjr commented on code in PR #28854:
URL: https://github.com/apache/airflow/pull/28854#discussion_r1066875575


##########
airflow/decorators/base.py:
##########
@@ -208,16 +209,16 @@ def __init__(
         self.op_kwargs = op_kwargs
         super().__init__(task_id=task_id, **kwargs_to_upstream, **kwargs)
 
-    def execute(self, context: Context):
+    def execute(self, context: Context) -> RV:
         # todo make this more generic (move to prepare_lineage) so it deals with non taskflow operators
         #  as well
         for arg in chain(self.op_args, self.op_kwargs.values()):
             if isinstance(arg, Dataset):
                 self.inlets.append(arg)
-        return_value = super().execute(context)
+        return_value: RV = super().execute(context)

Review Comment:
   Not sure if you can do this, CI will tell.



##########
airflow/decorators/base.py:
##########
@@ -151,6 +151,7 @@ def _find_id_suffixes(dag: DAG) -> Iterator[int]:
     core = re.split(r"__\d+$", task_id)[0]
     return f"{core}__{max(_find_id_suffixes(dag)) + 1}"
 
+RV = TypeVar("RV", bound=Any)

Review Comment:
   What does `bound=Any` do? Isn’t bounding the TypeVar to Any the same as not bounding?



-- 
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


[GitHub] [airflow] uranusjr commented on pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
uranusjr commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1380087086

   I have a different thought. Why do we need to return `return_value` from `_handle_output` at all? The value is entirely unmodified. Instead of wristling with types, we could simply remove the return value.


-- 
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


[GitHub] [airflow] Viicos commented on pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
Viicos commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1380135797

   > I have a different thought. Why do we need to return `return_value` from `_handle_output` at all? The value is entirely unmodified. Instead of wristling with types, we could simply remove the return value.
   
   This is purely to improve types, but is not required as airflow isn't using `mypy --strict` anyway


-- 
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


[GitHub] [airflow] github-actions[bot] commented on pull request #28854: Add missing types to `decorators.base`

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1447320721

   This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 5 days if no further activity occurs. Thank you for your contributions.


-- 
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


[GitHub] [airflow] uranusjr commented on pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
uranusjr commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1381458251

   So my point is, we can make the improvement moot by slightly changing how the code is written (without changing functionalities)


-- 
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


[GitHub] [airflow] Viicos commented on pull request #28854: Add missing types to `decorators.base`

Posted by GitBox <gi...@apache.org>.
Viicos commented on PR #28854:
URL: https://github.com/apache/airflow/pull/28854#issuecomment-1379121198

   Fails at `airflow/decorators/base.py:256: error: Incompatible return value type (got "Dict[Any, Any]", expected "RV")  [return-value]`
   Maybe we could use a `TypeVar` bound to `Dataset`, `list` or `dict`?
   


-- 
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