Skip to content

Commit 7a8d2fa

Browse files
committed
fix: remove duplicate partition_key defs, fix breaking_version to 2.0
- Remove the asset-partition-derived `partition_key` property that was silently overwriting the existing run-level `partition_key` property (`self._partition_key`) in both InputContext and OutputContext. The `asset_partition_key` → `partition_key` rename cannot be done until the run-level `partition_key` property is itself deprecated; that should be a separate PR. - Remove the now-unreachable `@deprecated asset_partition_key` wrappers that delegated to the overwritten property. - Fix `breaking_version="2.0.0"` → `"2.0"` across all new deprecation annotations to match every other deprecation in the execution/context package. Addresses Greptile review feedback on PR #33896.
1 parent 608fc7d commit 7a8d2fa

2 files changed

Lines changed: 8 additions & 73 deletions

File tree

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

Lines changed: 4 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ def config(self) -> Any:
183183
"""The config attached to the input that we're loading."""
184184
return self._config
185185

186-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use definition_metadata instead")
186+
@deprecated(breaking_version="2.0", additional_warn_text="Use definition_metadata instead")
187187
@public
188188
@property
189189
def metadata(self) -> ArbitraryMetadataMapping | None:
@@ -336,35 +336,6 @@ def has_asset_partitions(self) -> bool:
336336
"""Returns True if the asset being loaded as input is partitioned."""
337337
return self._asset_partitions_subset is not None
338338

339-
@public
340-
@property
341-
def partition_key(self) -> str:
342-
"""The partition key for input asset.
343-
344-
Raises an error if the input asset has no partitioning, or if the run covers a partition
345-
range for the input asset.
346-
"""
347-
subset = self._asset_partitions_subset
348-
349-
if subset is None:
350-
check.failed("The input does not correspond to a partitioned asset.")
351-
352-
keys_iter = iter(subset.get_partition_keys())
353-
first = next(keys_iter, None)
354-
if first is not None and next(keys_iter, None) is None:
355-
return first
356-
check.failed(
357-
f"Tried to access partition key for asset '{self.asset_key}', "
358-
f"but the number of input partitions != 1: '{subset}'."
359-
)
360-
361-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partition_key` instead.")
362-
@public
363-
@property
364-
def asset_partition_key(self) -> str:
365-
"""The partition key for input asset. Deprecated: use `partition_key`."""
366-
return self.partition_key
367-
368339
@public
369340
@property
370341
def partition_key_range(self) -> PartitionKeyRange:
@@ -391,7 +362,7 @@ def partition_key_range(self) -> PartitionKeyRange:
391362

392363
return partition_key_ranges[0]
393364

394-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partition_key_range` instead.")
365+
@deprecated(breaking_version="2.0", additional_warn_text="Use `partition_key_range` instead.")
395366
@public
396367
@property
397368
def asset_partition_key_range(self) -> PartitionKeyRange:
@@ -412,7 +383,7 @@ def partition_keys(self) -> Sequence[str]:
412383

413384
return list(self._asset_partitions_subset.get_partition_keys())
414385

415-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partition_keys` instead.")
386+
@deprecated(breaking_version="2.0", additional_warn_text="Use `partition_keys` instead.")
416387
@public
417388
@property
418389
def asset_partition_keys(self) -> Sequence[str]:
@@ -451,7 +422,7 @@ def partitions_time_window(self) -> TimeWindow:
451422

452423
return time_window_for_partition_key_range(partitions_def, self.partition_key_range)
453424

454-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partitions_time_window` instead.")
425+
@deprecated(breaking_version="2.0", additional_warn_text="Use `partitions_time_window` instead.")
455426
@public
456427
@property
457428
def asset_partitions_time_window(self) -> TimeWindow:

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

Lines changed: 4 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def run_id(self) -> str:
237237

238238
return self._run_id
239239

240-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use definition_metadata instead")
240+
@deprecated(breaking_version="2.0", additional_warn_text="Use definition_metadata instead")
241241
@public
242242
@property
243243
def metadata(self) -> ArbitraryMetadataMapping | None:
@@ -464,42 +464,6 @@ def has_asset_partitions(self) -> bool:
464464

465465
return self._asset_partitions_subset is not None
466466

467-
@public
468-
@property
469-
def partition_key(self) -> str:
470-
"""The partition key for output asset.
471-
472-
Raises an error if the output asset has no partitioning, or if the run covers a partition
473-
range for the output asset.
474-
"""
475-
if self._warn_on_step_context_use:
476-
warnings.warn(
477-
"You are using InputContext.upstream_output.partition_key. "
478-
"This use on upstream_output is deprecated and will fail in the future. "
479-
"Try to obtain what you need directly from InputContext. "
480-
"For more details: https://github.com/dagster-io/dagster/issues/7900"
481-
)
482-
483-
subset = self._asset_partitions_subset
484-
if subset is None:
485-
check.failed("The output does not correspond to a partitioned asset.")
486-
487-
keys_iter = iter(subset.get_partition_keys())
488-
first = next(keys_iter, None)
489-
if first is not None and next(keys_iter, None) is None:
490-
return first
491-
check.failed(
492-
f"Tried to access partition key for asset '{self._asset_key}', "
493-
f"but the number of output partitions != 1: '{subset}'."
494-
)
495-
496-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partition_key` instead.")
497-
@public
498-
@property
499-
def asset_partition_key(self) -> str:
500-
"""The partition key for output asset. Deprecated: use `partition_key`."""
501-
return self.partition_key
502-
503467
@public
504468
@property
505469
def partition_key_range(self) -> PartitionKeyRange:
@@ -532,7 +496,7 @@ def partition_key_range(self) -> PartitionKeyRange:
532496

533497
return partition_key_ranges[0]
534498

535-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partition_key_range` instead.")
499+
@deprecated(breaking_version="2.0", additional_warn_text="Use `partition_key_range` instead.")
536500
@public
537501
@property
538502
def asset_partition_key_range(self) -> PartitionKeyRange:
@@ -559,7 +523,7 @@ def partition_keys(self) -> Sequence[str]:
559523

560524
return list(self._asset_partitions_subset.get_partition_keys())
561525

562-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partition_keys` instead.")
526+
@deprecated(breaking_version="2.0", additional_warn_text="Use `partition_keys` instead.")
563527
@public
564528
@property
565529
def asset_partition_keys(self) -> Sequence[str]:
@@ -604,7 +568,7 @@ def partitions_time_window(self) -> TimeWindow:
604568

605569
return time_window_for_partition_key_range(partitions_def, self.partition_key_range)
606570

607-
@deprecated(breaking_version="2.0.0", additional_warn_text="Use `partitions_time_window` instead.")
571+
@deprecated(breaking_version="2.0", additional_warn_text="Use `partitions_time_window` instead.")
608572
@public
609573
@property
610574
def asset_partitions_time_window(self) -> TimeWindow:

0 commit comments

Comments
 (0)