mirror of
https://github.com/langgenius/dify.git
synced 2026-10-16 15:35:32 +08:00
21 lines
551 B
Python
21 lines
551 B
Python
"""Release optional stream resources without replacing an invocation error."""
|
|
|
|
import logging
|
|
from typing import Protocol, runtime_checkable
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@runtime_checkable
|
|
class _Closable(Protocol):
|
|
def close(self) -> None: ...
|
|
|
|
|
|
def close_stream(stream: object) -> None:
|
|
"""Close resource-owning streams; plain iterables need no cleanup."""
|
|
if isinstance(stream, _Closable):
|
|
try:
|
|
stream.close()
|
|
except Exception:
|
|
logger.warning("Failed to close stream", exc_info=True)
|