Skip to content

Commit 7988612

Browse files
committed
[core-api][experimental] get_asset_provenance (#26684)
## Summary & Motivation decision: experimental -> public (uncertain) reason: this has existed for years without change. even if this is not a commonly-used API, we should probably just make the call that we're not changing it at this point docs exist: yes (api only, which is ok) ## How I Tested These Changes ## Changelog > Insert changelog entry or delete this section.
1 parent 5fbfe35 commit 7988612

17 files changed

+41
-46
lines changed

python_modules/dagster/dagster/_annotations.py

+3
Original file line numberDiff line numberDiff line change
@@ -1149,3 +1149,6 @@ def only_allow_hidden_params_in_kwargs(annotatable: Annotatable, kwargs: Mapping
11491149
deprecated_params[param].hidden,
11501150
f"Unexpected non-hidden deprecated parameter '{param}' in kwargs. Should never get here.",
11511151
)
1152+
1153+
1154+
beta_param = experimental_param # PLACEHOLDER

python_modules/dagster/dagster/_core/definitions/asset_selection.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from typing_extensions import TypeAlias, TypeGuard
99

1010
import dagster._check as check
11-
from dagster._annotations import deprecated, experimental, experimental_param, public
11+
from dagster._annotations import deprecated, experimental_param, public
1212
from dagster._core.definitions.asset_check_spec import AssetCheckKey
1313
from dagster._core.definitions.asset_graph import AssetGraph
1414
from dagster._core.definitions.asset_key import (
@@ -241,7 +241,7 @@ def groups(*group_strs, include_sources: bool = False) -> "GroupsAssetSelection"
241241

242242
@public
243243
@staticmethod
244-
@experimental
244+
@experimental_param(param="include_sources")
245245
def tag(key: str, value: str, include_sources: bool = False) -> "AssetSelection":
246246
"""Returns a selection that includes materializable assets that have the provided tag, and
247247
all the asset checks that target them.

python_modules/dagster/dagster/_core/definitions/assets.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
)
1717

1818
import dagster._check as check
19-
from dagster._annotations import experimental_param, public
19+
from dagster._annotations import beta_param, experimental_param, public
2020
from dagster._core.definitions.asset_check_spec import AssetCheckSpec
2121
from dagster._core.definitions.asset_dep import AssetDep
2222
from dagster._core.definitions.asset_graph_computation import AssetGraphComputation
@@ -112,7 +112,7 @@ class AssetsDefinition(ResourceAddable, IHasInternalInit):
112112
_specs_by_key: Mapping[AssetKey, AssetSpec]
113113
_computation: Optional[AssetGraphComputation]
114114

115-
@experimental_param(param="execution_type")
115+
@beta_param(param="execution_type")
116116
def __init__(
117117
self,
118118
*,
@@ -399,7 +399,7 @@ def __call__(self, *args: object, **kwargs: object) -> object:
399399
return direct_invocation_result(self, *args, **kwargs)
400400

401401
@public
402-
@experimental_param(param="resource_defs")
402+
@beta_param(param="resource_defs")
403403
@staticmethod
404404
def from_graph(
405405
graph_def: "GraphDefinition",

python_modules/dagster/dagster/_core/definitions/auto_materialize_policy.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import TYPE_CHECKING, AbstractSet, NamedTuple, Optional # noqa: UP035
44

55
import dagster._check as check
6-
from dagster._annotations import deprecated, experimental, public
6+
from dagster._annotations import deprecated, public
77
from dagster._serdes.serdes import (
88
NamedTupleSerializer,
99
UnpackContext,
@@ -55,11 +55,11 @@ class AutoMaterializePolicyType(Enum):
5555
LAZY = "LAZY"
5656

5757

58-
@experimental
5958
@whitelist_for_serdes(
6059
old_fields={"time_window_partition_scope_minutes": 1e-6},
6160
serializer=AutoMaterializePolicySerializer,
6261
)
62+
@deprecated(breaking_version="1.10.0")
6363
class AutoMaterializePolicy(
6464
NamedTuple(
6565
"_AutoMaterializePolicy",

python_modules/dagster/dagster/_core/definitions/auto_materialize_rule_impls.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from collections.abc import Iterable, Mapping, Sequence
55
from typing import TYPE_CHECKING, AbstractSet, NamedTuple, Optional # noqa: UP035
66

7-
from dagster._annotations import experimental
7+
from dagster._annotations import deprecated
88
from dagster._core.asset_graph_view.serializable_entity_subset import SerializableEntitySubset
99
from dagster._core.definitions.auto_materialize_rule import AutoMaterializeRule
1010
from dagster._core.definitions.auto_materialize_rule_evaluation import (
@@ -211,7 +211,7 @@ def evaluate_for_asset(self, context: "AutomationContext") -> "AutomationResult"
211211

212212

213213
@whitelist_for_serdes
214-
@experimental
214+
@deprecated(breaking_version="1.10.0")
215215
class AutoMaterializeAssetPartitionsFilter(
216216
NamedTuple(
217217
"_AutoMaterializeAssetPartitionsFilter",

python_modules/dagster/dagster/_core/definitions/backfill_policy.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import NamedTuple, Optional
44

55
import dagster._check as check
6-
from dagster._annotations import experimental, public
6+
from dagster._annotations import beta, public
77
from dagster._serdes import whitelist_for_serdes
88
from dagster._utils.warnings import disable_dagster_warnings
99

@@ -13,7 +13,7 @@ class BackfillPolicyType(Enum):
1313
MULTI_RUN = "MULTI_RUN"
1414

1515

16-
@experimental
16+
@beta
1717
@whitelist_for_serdes
1818
class BackfillPolicy(
1919
NamedTuple(

python_modules/dagster/dagster/_core/definitions/data_version.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from typing import TYPE_CHECKING, Callable, Final, NamedTuple, Optional, Union
66

77
from dagster import _check as check
8-
from dagster._annotations import deprecated, experimental
8+
from dagster._annotations import beta, deprecated
99
from dagster._core.loader import LoadingContext
1010
from dagster._utils.cached_method import cached_method
1111

@@ -52,7 +52,7 @@ def __new__(
5252
)
5353

5454

55-
@experimental
55+
@beta
5656
class DataVersionsByPartition(
5757
NamedTuple(
5858
"_DataVersionsByPartition", [("data_versions_by_partition", Mapping[str, DataVersion])]

python_modules/dagster/dagster/_core/definitions/decorators/asset_decorator.py

+5-9
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22
from typing import AbstractSet, Any, Callable, NamedTuple, Optional, Union, overload # noqa: UP035
33

44
import dagster._check as check
5-
from dagster._annotations import (
6-
experimental_param,
7-
hidden_param,
8-
only_allow_hidden_params_in_kwargs,
9-
)
5+
from dagster._annotations import beta_param, hidden_param, only_allow_hidden_params_in_kwargs
106
from dagster._config.config_schema import UserConfigSchema
117
from dagster._core.definitions.asset_check_spec import AssetCheckSpec
128
from dagster._core.definitions.asset_dep import (
@@ -119,9 +115,9 @@ def _validate_hidden_non_argument_dep_param(
119115
return non_argument_deps
120116

121117

122-
@experimental_param(param="resource_defs")
123-
@experimental_param(param="io_manager_def")
124-
@experimental_param(param="backfill_policy")
118+
@beta_param(param="resource_defs")
119+
@beta_param(param="io_manager_def")
120+
@beta_param(param="backfill_policy")
125121
@hidden_param(
126122
param="non_argument_deps",
127123
breaking_version="2.0.0",
@@ -539,7 +535,7 @@ def create_assets_def_from_fn_and_decorator_args(
539535
return builder.create_assets_definition()
540536

541537

542-
@experimental_param(param="resource_defs")
538+
@beta_param(param="resource_defs")
543539
@hidden_param(
544540
param="non_argument_deps",
545541
breaking_version="2.0.0",

python_modules/dagster/dagster/_core/definitions/definitions_class.py

+3-5
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from typing_extensions import Self
66

77
import dagster._check as check
8-
from dagster._annotations import deprecated, experimental, public
8+
from dagster._annotations import deprecated, preview, public
99
from dagster._core.definitions.asset_checks import AssetChecksDefinition
1010
from dagster._core.definitions.asset_graph import AssetGraph
1111
from dagster._core.definitions.asset_spec import AssetSpec
@@ -46,7 +46,6 @@
4646

4747

4848
@public
49-
@experimental
5049
def create_repository_using_definitions_args(
5150
name: str,
5251
assets: Optional[
@@ -602,7 +601,6 @@ def validate_loadable(defs: "Definitions") -> None:
602601
defs.get_repository_def().load_all_definitions()
603602

604603
@public
605-
@experimental
606604
@staticmethod
607605
def merge(*def_sets: "Definitions") -> "Definitions":
608606
"""Merges multiple Definitions objects into a single Definitions object.
@@ -687,13 +685,13 @@ def merge(*def_sets: "Definitions") -> "Definitions":
687685
)
688686

689687
@public
690-
@experimental
688+
@preview
691689
def get_all_asset_specs(self) -> Sequence[AssetSpec]:
692690
"""Returns an AssetSpec object for every asset contained inside the Definitions object."""
693691
asset_graph = self.get_asset_graph()
694692
return [asset_node.to_asset_spec() for asset_node in asset_graph.asset_nodes]
695693

696-
@experimental
694+
@preview
697695
def with_reconstruction_metadata(self, reconstruction_metadata: Mapping[str, str]) -> Self:
698696
"""Add reconstruction metadata to the Definitions object. This is typically used to cache data
699697
loaded from some external API that is computed during initialization of a code server.

python_modules/dagster/dagster/_core/definitions/events.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
from typing_extensions import Self
1818

1919
import dagster._check as check
20-
from dagster._annotations import PublicAttr, deprecated, experimental_param, public
20+
from dagster._annotations import PublicAttr, beta_param, deprecated, public
2121
from dagster._core.definitions.asset_key import (
2222
AssetKey as AssetKey,
2323
CoercibleToAssetKey as CoercibleToAssetKey,
@@ -89,7 +89,7 @@ def with_metadata(self, metadata: Optional[Mapping[str, RawMetadataValue]]) -> S
8989
T = TypeVar("T")
9090

9191

92-
@experimental_param(param="data_version")
92+
@beta_param(param="data_version")
9393
class Output(Generic[T], EventWithMetadata):
9494
"""Event corresponding to one of an op's outputs.
9595

python_modules/dagster/dagster/_core/definitions/partition_mapping.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from typing import NamedTuple, Optional, Union, cast
1010

1111
import dagster._check as check
12-
from dagster._annotations import PublicAttr, experimental, public
12+
from dagster._annotations import PublicAttr, beta, public
1313
from dagster._core.definitions.multi_dimensional_partitions import (
1414
MultiPartitionKey,
1515
MultiPartitionsDefinition,
@@ -605,7 +605,7 @@ def get_downstream_partitions_for_partitions(
605605
return result
606606

607607

608-
@experimental
608+
@beta
609609
@whitelist_for_serdes
610610
class MultiToSingleDimensionPartitionMapping(
611611
BaseMultiPartitionMapping,
@@ -694,7 +694,7 @@ def __new__(
694694
)
695695

696696

697-
@experimental
697+
@beta
698698
@whitelist_for_serdes
699699
class MultiPartitionMapping(
700700
BaseMultiPartitionMapping,

python_modules/dagster/dagster/_core/definitions/resource_definition.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from typing_extensions import TypeAlias
1515

1616
import dagster._check as check
17-
from dagster._annotations import experimental_param, public
17+
from dagster._annotations import beta_param, public
1818
from dagster._core.decorator_utils import (
1919
format_docstring_for_description,
2020
get_function_params,
@@ -54,7 +54,7 @@
5454
]
5555

5656

57-
@experimental_param(param="version")
57+
@beta_param(param="version")
5858
class ResourceDefinition(AnonymousConfigurableDefinition, IHasInternalInit):
5959
"""Core class for defining resources.
6060

python_modules/dagster/dagster/_core/definitions/run_status_sensor_definition.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from typing_extensions import TypeAlias
1010

1111
import dagster._check as check
12-
from dagster._annotations import deprecated_param, experimental_param, public
12+
from dagster._annotations import beta_param, deprecated_param, public
1313
from dagster._core.definitions.graph_definition import GraphDefinition
1414
from dagster._core.definitions.instigation_logger import InstigationLogger
1515
from dagster._core.definitions.job_definition import JobDefinition
@@ -331,7 +331,7 @@ def get_step_failure_events(self) -> Sequence[DagsterEvent]:
331331
return [cast(DagsterEvent, record.event_log_entry.dagster_event) for record in records]
332332

333333

334-
@experimental_param(param="repository_def")
334+
@beta_param(param="repository_def")
335335
def build_run_status_sensor_context(
336336
sensor_name: str,
337337
dagster_event: DagsterEvent,

python_modules/dagster/dagster/_core/definitions/source_asset.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from typing_extensions import TypeAlias
55

66
import dagster._check as check
7-
from dagster._annotations import PublicAttr, deprecated, experimental_param, public
7+
from dagster._annotations import PublicAttr, beta_param, deprecated, deprecated_param, public
88
from dagster._core.decorator_utils import get_function_params
99
from dagster._core.definitions.asset_spec import AssetExecutionType
1010
from dagster._core.definitions.data_version import (
@@ -158,9 +158,9 @@ def fn(context: OpExecutionContext) -> Output[None]:
158158
return DecoratedOpFunction(fn)
159159

160160

161-
@experimental_param(param="resource_defs")
162-
@experimental_param(param="io_manager_def")
163-
@experimental_param(param="freshness_policy")
161+
@beta_param(param="resource_defs")
162+
@beta_param(param="io_manager_def")
163+
@deprecated_param(param="freshness_policy", breaking_version="1.11.0")
164164
@deprecated(
165165
breaking_version="2.0.0",
166166
additional_warn_text="Use AssetSpec instead. If using the SourceAsset io_manager_key property, "

python_modules/dagster/dagster/_core/execution/context/asset_execution_context.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from typing import AbstractSet, Any, Optional # noqa: UP035
33

44
import dagster._check as check
5-
from dagster._annotations import deprecated, experimental, public
5+
from dagster._annotations import deprecated, public
66
from dagster._core.definitions.asset_check_spec import AssetCheckKey
77
from dagster._core.definitions.assets import AssetsDefinition
88
from dagster._core.definitions.data_version import DataProvenance, DataVersion
@@ -558,7 +558,6 @@ def selected_asset_check_keys(self) -> AbstractSet[AssetCheckKey]:
558558
#### data lineage related
559559

560560
@public
561-
@experimental
562561
@_copy_docs_from_op_execution_context
563562
def get_asset_provenance(self, asset_key: AssetKey) -> Optional[DataProvenance]:
564563
return self.op_execution_context.get_asset_provenance(asset_key=asset_key)

python_modules/dagster/dagster/_core/execution/context/op_execution_context.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from typing import AbstractSet, Any, Optional, cast # noqa: UP035
44

55
import dagster._check as check
6-
from dagster._annotations import deprecated, experimental, public
6+
from dagster._annotations import deprecated, public
77
from dagster._core.definitions.asset_check_spec import AssetCheckKey
88
from dagster._core.definitions.assets import AssetsDefinition
99
from dagster._core.definitions.data_version import (
@@ -1211,7 +1211,6 @@ def self_dependent_asset(context: AssetExecutionContext, self_dependent_asset):
12111211
return self._step_execution_context.asset_partitions_time_window_for_input(input_name)
12121212

12131213
@public
1214-
@experimental
12151214
def get_asset_provenance(self, asset_key: AssetKey) -> Optional[DataProvenance]:
12161215
"""Return the provenance information for the most recent materialization of an asset.
12171216

python_modules/dagster/dagster/_core/storage/fs_io_manager.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
DagsterInvariantViolationError,
1010
Field as DagsterField,
1111
)
12-
from dagster._annotations import experimental
12+
from dagster._annotations import superseded
1313
from dagster._config import StringSource
1414
from dagster._config.pythonic_config import ConfigurableIOManagerFactory
1515
from dagster._core.definitions.events import AssetKey, AssetMaterialization
@@ -137,6 +137,7 @@ def create_io_manager(self, context: InitResourceContext) -> "PickledObjectFiles
137137
config_schema=FilesystemIOManager.to_config_schema(),
138138
description="Built-in filesystem IO manager that stores and retrieves values using pickling.",
139139
)
140+
@superseded(additional_warn_text="Use FilesystemIOManager directly instead")
140141
def fs_io_manager(init_context: InitResourceContext) -> "PickledObjectFilesystemIOManager":
141142
"""Built-in filesystem IO manager that stores and retrieves values using pickling.
142143
@@ -339,7 +340,6 @@ def load_input(self, context: InputContext) -> object:
339340

340341
@dagster_maintained_io_manager
341342
@io_manager(config_schema={"base_dir": DagsterField(StringSource, is_required=True)})
342-
@experimental
343343
def custom_path_fs_io_manager(
344344
init_context: InitResourceContext,
345345
) -> CustomPathPickledObjectFilesystemIOManager:

0 commit comments

Comments
 (0)