|
18 | 18 | from dagster._core.definitions.asset_key import AssetCheckKey, AssetKey, EntityKey, T_EntityKey |
19 | 19 | from dagster._core.definitions.assets.graph.asset_graph_subset import AssetGraphSubset |
20 | 20 | from dagster._core.definitions.events import AssetKeyPartitionKey |
| 21 | +from dagster._core.definitions.freshness import FreshnessState |
21 | 22 | from dagster._core.definitions.partitions.context import ( |
22 | 23 | PartitionLoadingContext, |
23 | 24 | use_partition_loading_context, |
@@ -563,6 +564,26 @@ async def compute_subset_with_status( |
563 | 564 | else: |
564 | 565 | return self.get_empty_subset(key=key) |
565 | 566 |
|
| 567 | + async def compute_subset_with_freshness_state( |
| 568 | + self, key: AssetKey, state: FreshnessState |
| 569 | + ) -> EntitySubset[AssetKey]: |
| 570 | + from dagster._core.definitions.asset_health.asset_freshness_health import ( |
| 571 | + AssetFreshnessHealthState, |
| 572 | + ) |
| 573 | + |
| 574 | + if not self.asset_graph.has(key) or self.asset_graph.get(key).freshness_policy is None: |
| 575 | + if state == FreshnessState.NOT_APPLICABLE: |
| 576 | + return self.get_full_subset(key=key) |
| 577 | + else: |
| 578 | + return self.get_empty_subset(key=key) |
| 579 | + |
| 580 | + asset_freshness_health_state = await AssetFreshnessHealthState.compute_for_asset(key, self) |
| 581 | + |
| 582 | + if asset_freshness_health_state.freshness_state == state: |
| 583 | + return self.get_full_subset(key=key) |
| 584 | + else: |
| 585 | + return self.get_empty_subset(key=key) |
| 586 | + |
566 | 587 | async def _compute_run_in_progress_check_subset( |
567 | 588 | self, key: AssetCheckKey |
568 | 589 | ) -> EntitySubset[AssetCheckKey]: |
|
0 commit comments