diff --git a/examples/experimental/dagster-airlift/dagster_airlift/cli.py b/examples/experimental/dagster-airlift/dagster_airlift/cli.py index eafedc11b07ad..ad9f588fc02a5 100644 --- a/examples/experimental/dagster-airlift/dagster_airlift/cli.py +++ b/examples/experimental/dagster-airlift/dagster_airlift/cli.py @@ -15,7 +15,7 @@ def proxy() -> None: """Commands for working with the Dagster-Airlift proxied state. Requires the `dagster-airlift[in-airflow]` package.""" try: import dagster_airlift.in_airflow # noqa - except: + except ImportError: raise Exception( "dagster-airlift[in-airflow] must be installed in the environment to use any `dagster-airlift proxy` commands." ) diff --git a/examples/experimental/dagster-airlift/dagster_airlift/in_airflow/__init__.py b/examples/experimental/dagster-airlift/dagster_airlift/in_airflow/__init__.py index 0829d461c1b03..94dd6399f204e 100644 --- a/examples/experimental/dagster-airlift/dagster_airlift/in_airflow/__init__.py +++ b/examples/experimental/dagster-airlift/dagster_airlift/in_airflow/__init__.py @@ -5,6 +5,8 @@ def ensure_airflow_installed() -> None: except ImportError: raise Exception( "Airflow is not installed. Please install Apache Airflow >= 2.0.0 before using this functionality." + "Airflow has very specific installation instructions, please refer to the official installation guide: " + "https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-pypi.html" ) diff --git a/examples/experimental/dagster-airlift/setup.py b/examples/experimental/dagster-airlift/setup.py index cd2be8c60bcd1..6415431079cce 100644 --- a/examples/experimental/dagster-airlift/setup.py +++ b/examples/experimental/dagster-airlift/setup.py @@ -31,6 +31,8 @@ def get_version() -> str: "connexion<3.0.0", ] +CLI_REQUIREMENTS = ["click", "structlog"] + setup( name="dagster-airlift", @@ -55,18 +57,20 @@ def get_version() -> str: "Operating System :: OS Independent", ], packages=find_packages(exclude=["dagster_airlift_tests*", "examples*"]), - requires=["click"], + requires=CLI_REQUIREMENTS, extras_require={ "core": [ f"dagster{pin}", + *CLI_REQUIREMENTS, ], # [in-airflow] doesn't directly have a dependency on airflow because Airflow cannot be installed via setup.py reliably. Instead, users need to install from a constraints # file as recommended by the Airflow project. - "in-airflow": [], + "in-airflow": CLI_REQUIREMENTS, # [tutorial] includes additional dependencies needed to run the tutorial. Namely, the dagster-webserver and the constrained airflow packages. "tutorial": [ "dagster-webserver", *AIRFLOW_REQUIREMENTS, + *CLI_REQUIREMENTS, ], "mwaa": [ "boto3>=1.18.0" @@ -80,6 +84,7 @@ def get_version() -> str: "boto3", "dagster-webserver", *AIRFLOW_REQUIREMENTS, + *CLI_REQUIREMENTS, ], }, entry_points={