def traceable(cls: C) -> C:
    """Makes a class traceable for OpenTelemetry.

    Creates a new class that inherits from both the original class
    and Traceable, enabling tracing for class methods.

    Args:
        cls: The class to make traceable.

    Returns:
        A new class with tracing capabilities.
    """
    if not is_tracing_available():
        return cls

    @functools.wraps(cls, updated=())
    class TracedClass(cls, Traceable):
        def __init__(self, *args, **kwargs):
            cls.__init__(self, *args, **kwargs)
            if hasattr(self, "name"):
                Traceable.__init__(self, self.name)
            else:
                Traceable.__init__(self, cls.__name__)

    return TracedClass
Makes a class traceable for OpenTelemetry.

    Creates a new class that inherits from both the original class
    and Traceable, enabling tracing for class methods.

    Args:
        cls: The class to make traceable.

    Returns:
        A new class with tracing capabilities.
    
src/pipecat/utils/tracing/class_decorators.py