add script body only refresh

This commit is contained in:
DepFA 2022-10-02 01:18:42 +01:00 committed by GitHub
parent 0aa354bd5e
commit cf33268d68
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -162,10 +162,33 @@ class ScriptRunner:
return processed
def reload_sources(self):
for si,script in list(enumerate(self.scripts)):
with open(script.filename, "r", encoding="utf8") as file:
args_from = script.args_from
args_to = script.args_to
filename = script.filename
text = file.read()
from types import ModuleType
compiled = compile(text, filename, 'exec')
module = ModuleType(script.filename)
exec(compiled, module.__dict__)
for key, script_class in module.__dict__.items():
if type(script_class) == type and issubclass(script_class, Script):
self.scripts[si] = script_class()
self.scripts[si].filename = filename
self.scripts[si].args_from = args_from
self.scripts[si].args_to = args_to
scripts_txt2img = ScriptRunner()
scripts_img2img = ScriptRunner()
def reload_script_body_only():
scripts_txt2img.reload_sources()
scripts_img2img.reload_sources()
def reload_scripts(basedir):
global scripts_txt2img,scripts_img2img