From c68e0c629b9d763c4714029544d0a686006ba439 Mon Sep 17 00:00:00 2001 From: littleblack111 Date: Thu, 26 Oct 2023 21:52:03 +0800 Subject: added rpath & runutil functions --- stdlib.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/stdlib.py b/stdlib.py index 6e22999..3059fce 100755 --- a/stdlib.py +++ b/stdlib.py @@ -226,6 +226,23 @@ 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