tags:list[str]|None=None,)-> PregelNode:"""Runs process.invoke() each time channels are updated,
with a dict of the channel values as input."""ifnotisinstance(channels,str)and key isnotNone:raise ValueError("Can't specify a key when subscribing to multiple channels")return PregelNode(
channels=cast(
Union[list[str], Mapping[str,str]],({key: channels}ifisinstance(channels,str)and key isnotNoneelse([channels]ifisinstance(channels,str)else{chan: chan for chan in channels})),),
cls,*channels:str,**kwargs: WriteValue,)-> ChannelWrite:"""Writes to channels the result of the lambda, or None to skip writing."""return ChannelWrite([ChannelWriteEntry(c)for c in channels]+[(
ChannelWriteEntry(k, mapper=v)ifcallable(v)else ChannelWriteEntry(k, value=v))for k, v in kwargs.items()])