def update(self):
        """
        same method as in Volume widgets except that here we don't need to
        manually re-schedule update
        """
        if pulse.pulse is None or not pulse.pulse.connected:
            return

        # Update the underlying canvas size before actually attempting
        # to figure out how big it is and draw it.
        length = self.length
        self._update_drawer()
        if self.length == length:
            self.draw()
        else:
            self.bar.draw()

        same method as in Volume widgets except that here we don't need to
        manually re-schedule update
        
libqtile/widget/pulse_volume.py