import os import re app_py_path = os.path.join(os.path.dirname(__file__), "app.py") styles_css_path = os.path.join(os.path.dirname(__file__), "assets", "styles.css") with open(app_py_path, "r", encoding="utf-8") as f: content = f.read() # Find the inline CSS string pattern = re.compile(r'css=CUSTOM_CSS \+ """(.*?)""",\n\s*theme=gr\.themes\.Base', re.DOTALL) match = pattern.search(content) if match: inline_css = match.group(1) # Append to styles.css with open(styles_css_path, "a", encoding="utf-8") as f: f.write("\n" + inline_css) # Remove it from app.py new_content = content.replace(f'css=CUSTOM_CSS + """{inline_css}"""', 'css=CUSTOM_CSS') # Remove THEME_JS from app.py HTML new_content = re.compile(r'gr\.HTML\(THEME_JS \+ """(.*?)"""\)', re.DOTALL).sub(r'gr.HTML("""\1""")', new_content) # Remove THEME_JS definition new_content = re.compile(r'# Theme toggle JavaScript\nTHEME_JS = """(.*?)"""\n\n\n', re.DOTALL).sub('', new_content) with open(app_py_path, "w", encoding="utf-8") as f: f.write(new_content) print("CSS extracted and app.py refactored successfully.") else: print("Could not find inline CSS.")