import subprocess import tempfile from shutil import which DEPENDENCIES = ('pdftoppm',) IMAGE_OPENER = 'ristretto' def ensure_dependencies(): for s in DEPENDENCIES: if which(s) is None: return RuntimeError(f'required dependency not found: {s}') def randomtempname(suffix=None): name = next(tempfile._get_candidate_names()) if suffix is not None: name += suffix return name def desktop_open_image(f): subprocess.run([IMAGE_OPENER, f])