class ProgressManager:
    _instance = None

    def __new__(cls):
        if cls._instance is None:
            cls._instance = super().__new__(cls)
            cls._instance._callback = None
        return cls._instance

    def set_callback(self, callback):
        """
        callback(title: str, progress: float)
        """
        self._callback = callback

    def update(self, info:dict):
        if self._callback:
            self._callback(info)