You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dinglehopper/qurator/dinglehopper/tests/util.py

39 lines
814 B
Python

from itertools import zip_longest
from typing import Iterable
import colorama
import os
def diffprint(x, y):
"""Print elements or lists x and y, with differences in red"""
def _diffprint(x, y):
if x != y:
print(colorama.Fore.RED, x, y, colorama.Fore.RESET)
else:
print(x, y)
if isinstance(x, Iterable):
for xe, ye in zip_longest(x, y):
_diffprint(xe, ye)
else:
_diffprint(x, y)
def unzip(l):
return zip(*l)
class working_directory:
"""Context manager to temporarily change the working directory"""
def __init__(self, wd):
self.wd = wd
def __enter__(self):
self.old_wd = os.getcwd()
os.chdir(self.wd)
def __exit__(self, etype, value, traceback):
os.chdir(self.old_wd)