The GitHub Actions job "Tests" on airflow.git has succeeded. Run started by GitHub user ashb (triggered by ashb).
Head commit for run: 1dc5464ee21645fbcfa4e7bdbfb16834a51d3bf3 / Ash Berlin-Taylor <[email protected]> Enable accessing Variables from the top level of the DAG files Since I want to maintain the property of being able to run a DAG processor without the Execution API server running, and since the Dag Processor Manager already has a database connection I have chosen to run the FastAPI execution server in process. To achive this I make use of two features: - The first is the abilty to provide an httpx.Client with a Transport object that has an WSGI appliction to not send real requests, but to instead call the WSGI app directly to service the request - The second is a2wsgi. Since we are making a call from with in a synchronus context we have to give httpx a WSGI (if we were making Async requests we could give httpx an ASGI app directly), and FastAPI at it's outer layers is an async framework (even if it supports running sync routes) we need to somehow wrap the async call to return a sync result. a2wsgi does this for us by using a async loop off the main thread. I tested this with a simple DAG file initially: ```python import time import sys from airflow.decorators import dag, task from airflow.sdk import Variable from airflow.utils.session import create_session if Variable.get("hi", default=None): raise RuntimeError("Var hi was defined") @dag(schedule=None) def hi(): @task() def hello(): print("hello") time.sleep(3) print("goodbye") print("err mesg", file=sys.stderr) hello() hi() ``` If the variable is defined it results in an import error. If the variable is not defined you get the DAG defined. Report URL: https://github.com/apache/airflow/actions/runs/13415686086 With regards, GitHub Actions via GitBox --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
