Spaces:
Running
Running
# | |
# Copyright (c) 2024, Daily | |
# | |
# SPDX-License-Identifier: BSD 2-Clause License | |
# | |
from pipecat.frames.frames import Frame | |
from pipecat.processors.frame_processor import FrameDirection, FrameProcessor | |
from loguru import logger | |
from typing import Optional | |
logger = logger.opt(ansi=True) | |
class FrameLogger(FrameProcessor): | |
def __init__(self, prefix="Frame", color: Optional[str] = None): | |
super().__init__() | |
self._prefix = prefix | |
self._color = color | |
async def process_frame(self, frame: Frame, direction: FrameDirection): | |
dir = "<" if direction is FrameDirection.UPSTREAM else ">" | |
msg = f"{dir} {self._prefix}: {frame}" | |
if self._color: | |
msg = f"<{self._color}>{msg}</>" | |
logger.debug(msg) | |
await self.push_frame(frame, direction) | |