Merge pull request #10566 from oloflarsson/feat/async-pipes

feat: add optional support for async pipes
This commit is contained in:
Timothy Jaeryang Baek 2025-02-22 02:47:08 -08:00 committed by GitHub
commit 32fa8d5143
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -2,6 +2,7 @@ import logging
import sys import sys
import inspect import inspect
import json import json
import asyncio
from pydantic import BaseModel from pydantic import BaseModel
from typing import AsyncGenerator, Generator, Iterator from typing import AsyncGenerator, Generator, Iterator
@ -76,11 +77,13 @@ async def get_function_models(request):
if hasattr(function_module, "pipes"): if hasattr(function_module, "pipes"):
sub_pipes = [] sub_pipes = []
# Check if pipes is a function or a list # Handle pipes being a list, sync function, or async function
try: try:
if callable(function_module.pipes): if callable(function_module.pipes):
sub_pipes = function_module.pipes() if asyncio.iscoroutinefunction(function_module.pipes):
sub_pipes = await function_module.pipes()
else:
sub_pipes = function_module.pipes()
else: else:
sub_pipes = function_module.pipes sub_pipes = function_module.pipes
except Exception as e: except Exception as e: