Ask AI

You are viewing an unreleased or outdated version of the documentation

Source code for dagster_looker.asset_decorator

from pathlib import Path
from typing import Any, Callable, Optional

from dagster import AssetsDefinition, multi_asset
from dagster._annotations import experimental

from .asset_utils import (
    build_looker_dashboard_specs,
    build_looker_explore_specs,
    build_looker_view_specs,
)
from .dagster_looker_translator import DagsterLookerTranslator


[docs]@experimental def looker_assets( *, project_dir: Path, dagster_looker_translator: Optional[DagsterLookerTranslator] = None, ) -> Callable[[Callable[..., Any]], AssetsDefinition]: """A decorator for defining Looker assets in a project. Args: project_dir (Path): The path to the Looker project directory. Examples: .. code-block:: python from pathlib import Path from dagster_looker import looker_assets @looker_assets(project_dir=Path("my_looker_project")) def my_looker_project_assets(): ... """ dagster_looker_translator = dagster_looker_translator or DagsterLookerTranslator() return multi_asset( compute_kind="looker", specs=[ *build_looker_dashboard_specs(project_dir, dagster_looker_translator), *build_looker_explore_specs(project_dir, dagster_looker_translator), *build_looker_view_specs(project_dir, dagster_looker_translator), ], )