From 7c635fed24bba638f10a73fe39134519ecd675bf Mon Sep 17 00:00:00 2001 From: Leonard Kugis Date: Tue, 21 Mar 2023 23:49:42 +0100 Subject: Split util and tmsu functions --- util.py | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 util.py (limited to 'util.py') diff --git a/util.py b/util.py new file mode 100644 index 0000000..2bf4ff8 --- /dev/null +++ b/util.py @@ -0,0 +1,79 @@ +import subprocess +import logging +import cv2 +import platform +import readline +import os + +def image_resize(image, width = None, height = None, inter = cv2.INTER_AREA): + # initialize the dimensions of the image to be resized and + # grab the image size + dim = None + (h, w) = image.shape[:2] + + # if both the width and height are None, then return the + # original image + if width is None and height is None: + return image + + # check to see if the width is None + if width is None: + # calculate the ratio of the height and construct the + # dimensions + r = height / float(h) + dim = (int(w * r), height) + + # otherwise, the height is None + else: + # calculate the ratio of the width and construct the + # dimensions + r = width / float(w) + dim = (width, int(h * r)) + + # resize the image + resized = cv2.resize(image, dim, interpolation = inter) + + # return the resized image + return resized + +''' +Fetch input prompt with prefilled text. + +Parameters: +prompt: Prompt message. +text: Prefilled input. +''' +def input_with_prefill(prompt, text): + def hook(): + readline.insert_text(text) + readline.redisplay() + readline.set_pre_input_hook(hook) + result = input(prompt) + readline.set_pre_input_hook() + return result + +''' +Checks if the given string is a valid path. + +Parameters: +string: String to be checked. +''' +def dir_path(string): + if os.path.isdir(string): + return string + else: + raise NotADirectoryError(string) + +''' +Opens the given file with the platform default handler. + +Parameters: +file: Path to the file. +''' +def open_system(file): + if platform.system() == 'Darwin': # macOS + subprocess.call(('open', file)) + elif platform.system() == 'Windows': # Windows + os.startfile(file) + else: # linux variants + subprocess.call(('xdg-open', file)) \ No newline at end of file -- cgit v1.2.1