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]

Reply via email to