uranusjr commented on code in PR #44639:
URL: https://github.com/apache/airflow/pull/44639#discussion_r1875544423
##########
airflow/utils/context.py:
##########
@@ -161,54 +178,89 @@ class OutletEventAccessor:
:meta private:
"""
- raw_key: str | Asset | AssetAlias
+ key: str | BaseAssetUniqueKey
extra: dict[str, Any] = attrs.Factory(dict)
asset_alias_events: list[AssetAliasEvent] = attrs.field(factory=list)
- def add(self, asset: Asset | str, extra: dict[str, Any] | None = None) ->
None:
+ def add(self, asset: str | Asset, extra: dict[str, Any] | None = None) ->
None:
"""Add an AssetEvent to an existing Asset."""
if isinstance(asset, str):
- asset_uri = asset
- elif isinstance(asset, Asset):
- asset_uri = asset.uri
- else:
+ asset = Asset(asset)
+ elif not isinstance(asset, Asset):
return
- if isinstance(self.raw_key, str):
- asset_alias_name = self.raw_key
- elif isinstance(self.raw_key, AssetAlias):
- asset_alias_name = self.raw_key.name
+ if isinstance(self.key, AssetAliasUniqueKey):
+ asset_alias_name = self.key.name
+ elif isinstance(self.key, str):
+ # TODO: deprecate string access
+ asset_alias_name = self.key
else:
return
- event = AssetAliasEvent(asset_alias_name, asset_uri, extra=extra or {})
+ event = AssetAliasEvent(
+ source_alias_name=asset_alias_name,
+ dest_asset_key=AssetUniqueKey.from_asset(asset),
+ extra=extra or {},
+ )
self.asset_alias_events.append(event)
-class OutletEventAccessors(Mapping[str, OutletEventAccessor]):
+class OutletEventAccessors(Mapping[Union[str, BaseAsset],
OutletEventAccessor]):
Review Comment:
This should be something like `Asset | AssetAlias` instead of `BaseAsset`
since not all BaseAsset subclasses make sense here (for example it’d be awkward
if the user passes in an AssetAny).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]