From 2845da8fcbf4c6024e5c8264aab04c00c5bf26a8 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Thu, 26 Oct 2023 21:52:16 +0800 Subject: sync littleblack111/stdlib --- stdlib.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/stdlib.py b/stdlib.py index a3dd52a..7ac310d 100755 --- a/stdlib.py +++ b/stdlib.py @@ -222,6 +222,24 @@ def bgexec(func, arg=False, stop=False): else: t = Thread(target=func).start() + +# to give a absolutly perfect path to the location of a file or self(directory) +def rpath(file: str=None) -> str: + from os import path + if file: + if path.islink(file): + from os import readlink + file = readlink(file) + return f'{path.dirname(path.abspath(__file__))}/{file}' + else: + return path.dirname(path.abspath(__file__)) + +# run another python file(utils) +def runutil(file: str, *arg) -> any: + from sys import executable + from os import execv + execv(executable, ['python3', f'{rpath()}/{file}'] + list(arg)) + # TODO: fix this "TypeError: Please input @sig as a int(signal number, like 15) or str(signal name, like SIGTERM", tried signal.SIGINT, or str(signal name, like SIGTERM) # catch & handle signals def sigcatch(sig, error=None, sysexit=False, handler=None): -- cgit v1.2.3