Skip to content

Types

The downmixer.types module provides the core data structures used throughout Downmixer. These types standardize how song metadata and search results are represented across different music platforms.

Submodules

Submodule Description
library Core music metadata types (Song, Album, Artist, Playlist, User)
search Generic search result wrapper
exceptions Custom exceptions and warnings

LoggerLike Protocol

The module also defines LoggerLike, a protocol describing the logging interface used throughout Downmixer. It mirrors Python's standard logging.Logger interface:

class LoggerLike(Protocol):
    def debug(self, msg): ...
    def info(self, msg): ...
    def warning(self, msg): ...
    def error(self, msg, exc_info): ...

This allows any logger implementation compatible with the standard library to be used, or a completely custom implementation; as long as it follows this Protocol. The default Logger used by most modules in the app is ConsoleLogger.

See the reference for complete API documentation.