Source code for dagster.core.asset_defs.asset_in
from typing import Any, Mapping, NamedTuple, Optional, Sequence
from dagster import check
from dagster.core.definitions.events import AssetKey
[docs]class AssetIn(
NamedTuple(
"_AssetIn",
[
("asset_key", Optional[AssetKey]),
("metadata", Optional[Mapping[str, Any]]),
("namespace", Optional[Sequence[str]]),
],
)
):
def __new__(
cls,
asset_key: Optional[AssetKey] = None,
metadata: Optional[Mapping[str, Any]] = None,
namespace: Optional[Sequence[str]] = None,
):
check.invariant(
not (asset_key and namespace),
("Asset key and namespace cannot both be set on AssetIn"),
)
# if user inputs a single string, coerce to list
namespace = [namespace] if isinstance(namespace, str) else namespace
return super(AssetIn, cls).__new__(
cls,
asset_key=check.opt_inst_param(asset_key, "asset_key", AssetKey),
metadata=check.opt_inst_param(metadata, "metadata", Mapping),
namespace=check.opt_list_param(namespace, "namespace", str),
)