Skip to content

Use type hints to indicate multiple return values when using @task #8996

Closed

Description

@turbaszek

Description

Use type hints to indicate multiple return values of @task decorated function to improve dereferencing.

Using type hints to enhance code behaviour is for example done in:
https://databricks.com/blog/2020/05/20/new-pandas-udfs-and-python-type-hints-in-the-upcoming-release-of-apache-spark-3-0.html

Use case / motivation

Currently:

@task(multiple_outputs=True)
def my_function():
    return 1, 2, 3

expected:

@task
def my_function() -> Tuple[int, int, int]:
    return 1, 2, 3

Related Issues
https://github.com/apache/airflow/pull/8962/files#r429341828
https://github.com/apache/airflow/pull/8962/files#r428948073

Activity

  1. AndersonReyes commented on Aug 15, 2020

    @AndersonReyes
    Contributor

    @turbaszek is this still up for grabs? I want to give it a shot as first contribution

  2. AndersonReyes commented on Aug 15, 2020

    @AndersonReyes
    Contributor

    after some googling looks like this can be achieved like this

    ....
        if python_callable:
            sig = signature(python_callable).return_annotation
            if get_origin(sig) in (dict, tuple):
                multiple_outputs = True
    ....
    
  3. added this to the Airflow 2.0.0 milestone on Aug 24, 2020
  4. vikramkoka commented on Nov 3, 2020

    @vikramkoka
    Contributor

    @kaxil , @turbaszek Should this be in beta1 from the perspective of feature complete?

  5. turbaszek commented on Nov 4, 2020

    @turbaszek
    MemberAuthor

    @kaxil , @turbaszek Should this be in beta1 from the perspective of feature complete?

    @vikramkoka I would say this adds only a syntax sugar not a "real feature"

  6. potiuk commented on Dec 7, 2020

    @potiuk
    Member

    Hey @turbaszek -> is ti somethig we want to add fo 2.0.0rc1 ? Or should we postpone to 2.1 ? If so - can you change the milestone please?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions