The Airflow 2.0 TaskFlow API[1] doesn't use the bitshift operators any more -- if you pass the result of one task into another, the second task is automatically downstream of the first. So it all just looks like function calls, despite using XComArgs behind the scenes.