Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AIRFLOW-5798] Set default to None for external_task_id in ExternalTaskSensor #6431

Conversation

vladimir-gavrilenko
Copy link
Contributor

@vladimir-gavrilenko vladimir-gavrilenko commented Oct 25, 2019

Make sure you have checked all steps below.

Jira

  • My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"
    • https://issues.apache.org/jira/browse/AIRFLOW-XXX
    • In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.
    • In case you are proposing a fundamental code change, you need to create an Airflow Improvement Proposal (AIP).
    • In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

Description

  • Here are some details about my PR, including screenshots of any UI changes:

Pycharm highlighted my code when I used ExternalTaskSensor to wait for an entire DAG completion.

Two options here: use str or None or Optional[str]. I can switch to the second option if necessary.

Tests

  • My PR adds the following unit tests OR does not need testing for this extremely good reason:

No tests for docs

Commits

  • My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":
    1. Subject is separated from body by a blank line
    2. Subject is limited to 50 characters (not including Jira issue reference)
    3. Subject does not end with a period
    4. Subject uses the imperative mood ("add", not "adding")
    5. Body wraps at 72 characters
    6. Body explains "what" and "why", not "how"

Documentation

  • In case of new functionality, my PR adds documentation that describes how to use it.
    • All the public functions and the classes in the PR contain docstrings that explain what it does
    • If you implement backwards incompatible changes, please leave a note in the Updating.md so we can assign it to a appropriate release

@vladimir-gavrilenko vladimir-gavrilenko changed the title Fix type annotation for external task sensor [AIRFLOW-XXX] Fix type annotation for external task sensor Oct 25, 2019
@codecov-io
Copy link

codecov-io commented Oct 25, 2019

Codecov Report

Merging #6431 into master will decrease coverage by 0.86%.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #6431      +/-   ##
==========================================
- Coverage   84.26%   83.39%   -0.87%     
==========================================
  Files         627      627              
  Lines       36506    36549      +43     
==========================================
- Hits        30760    30481     -279     
- Misses       5746     6068     +322
Impacted Files Coverage Δ
airflow/sensors/external_task_sensor.py 85.71% <ø> (ø) ⬆️
airflow/operators/postgres_operator.py 0% <0%> (-100%) ⬇️
...ow/contrib/example_dags/example_qubole_operator.py 32.5% <0%> (-57.5%) ⬇️
airflow/kubernetes/volume_mount.py 44.44% <0%> (-55.56%) ⬇️
airflow/executors/sequential_executor.py 47.61% <0%> (-52.39%) ⬇️
airflow/kubernetes/volume.py 52.94% <0%> (-47.06%) ⬇️
airflow/kubernetes/pod_launcher.py 45.25% <0%> (-46.72%) ⬇️
airflow/kubernetes/kube_client.py 33.33% <0%> (-41.67%) ⬇️
airflow/example_dags/example_python_operator.py 63.33% <0%> (-31.12%) ⬇️
...rflow/contrib/operators/kubernetes_pod_operator.py 70.14% <0%> (-28.36%) ⬇️
... and 32 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 7e440da...0d049a2. Read the comment docs.

@mik-laj
Copy link
Member

mik-laj commented Oct 25, 2019

Looking at the constructor definitions, this parameter is required. Why do you think it's optional? Should we not also change the function definitions?
https://github.com/apache/airflow/blob/d719e1f/airflow/sensors/external_task_sensor.py#L65

@vladimir-gavrilenko
Copy link
Contributor Author

vladimir-gavrilenko commented Oct 25, 2019

@mik-laj , this parameter is required, but if you want to wait for the entire DAG completion, not only the specific task, you should explicitly set this parameter to None. Pls see this: https://github.com/apache/airflow/blob/d719e1f/airflow/sensors/external_task_sensor.py#L38-L39

But should we also change the function definition is a good question, actually :-)

@feluelle
Copy link
Member

But should we also change the function definition is a good question, actually :-)

That's really a (somehow) tough question.
I would personally say
yes, because using `None`` as default is quite common.
no, because actually we want the user to define a task_id according to the class name.
yes. :D

@feluelle feluelle changed the title [AIRFLOW-XXX] Fix type annotation for external task sensor [AIRFLOW-5798] Set default to None for external_task_id in ExternalTaskSensor Oct 28, 2019
@feluelle feluelle merged commit 3fb9d49 into apache:master Oct 28, 2019
@feluelle
Copy link
Member

@vladimir-gavrilenko I created a Jira ticket because it contains changes to code.

ashb pushed a commit that referenced this pull request Dec 14, 2019
- fix type annotation for ExternalTaskSensor

(cherry picked from commit 3fb9d49)
ashb pushed a commit that referenced this pull request Dec 16, 2019
- fix type annotation for ExternalTaskSensor

(cherry picked from commit 3fb9d49)
kaxil pushed a commit that referenced this pull request Dec 17, 2019
- fix type annotation for ExternalTaskSensor

(cherry picked from commit 3fb9d49)
ashb pushed a commit that referenced this pull request Dec 19, 2019
- fix type annotation for ExternalTaskSensor

(cherry picked from commit 3fb9d49)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants