def update_timezone(self, timezone: str | tzinfo | None = None):
        """
        Force the clock to update timezone information.

        If the method is called with no arguments then the widget will reload
        the timzeone set on the computer (e.g. via ``timedatectl set-timezone ..``).
        This will have no effect if you have previously set a ``timezone`` value.

        Alternatively, you can pass a timezone string (e.g. ``"Europe/Lisbon"``) to change
        the specified timezone. Setting this to an empty string will cause the clock
        to rely on the system timezone.
        """
        self.timezone = self._lift_timezone(timezone)

        # Force python to update timezone info (e.g. if system time has changed)
        time.tzset()
        self.update(self.poll())

        Force the clock to update timezone information.

        If the method is called with no arguments then the widget will reload
        the timzeone set on the computer (e.g. via ``timedatectl set-timezone ..``).
        This will have no effect if you have previously set a ``timezone`` value.

        Alternatively, you can pass a timezone string (e.g. ``"Europe/Lisbon"``) to change
        the specified timezone. Setting this to an empty string will cause the clock
        to rely on the system timezone.
        
libqtile/widget/clock.py