Kalanyr: Stopping the system suspending/hibernating if GOGrepo is running (not for critical battery etc, those are higher priority), there's ways to do it on Windows / Mac that rely on their respective native APIs (which is not great but it's something) , but there's no even semi-standardized method on *nix, it depends on at least one of : a) The desktop manager (gnome / kde /etc) b) systemd (system suspend inhibits which may also require running as root because the system power management daemon treats all of its operations as privileged (which is generally sensible but probably not for something that can be simulated by jiggling the mouse) and they all rely on dbus which doesn't have a currently maintained full python implementation for bonus points).
imho the concept of automatic suspend is just inherently flawed with regard to long running console applications, whether that is gogrepo, wget, ffmpeg, rsync or just a simple cp. It is not realistic that all these commands will ever be patched to include code to inhibit sleep/shutdown. And giving the user the impression that they can expect this to "just work" is just wrong i think.
The right answer I think should be that whatever system does the power management in your setup should provide a small console command to inhibit sleep mode, let's call it "nosuspend". Users can then simply use that when necessary, like:
nosuspend wget $BIG_DOWNLOAD
that fits much better into the unix philosophy where each tool concentrates on implementing one task. It also saves you the time to bother with implementing all that additional fluff for your tool.
for systemd users there seems to be a usable tool in existence already:
systemd-inhibit just putting it in front of your gogrepo.py call should just work.
(that also has the added benefit that it will do the right thing even if gogrepo crashes halfway through)