import sys import os from datetime import datetime def convert_to_gradio_lite(python_files, requirements_file): # gradio-requirements.txt からの依存関係の取得 dependencies = [] if requirements_file: with open(requirements_file, "r") as file: dependencies = [line.strip() for line in file] # Gradio Lite の HTML テンプレートを作成 html_template = """ {} {} """ # 依存関係を Gradio Lite の HTML に挿入 requirements = "\n".join(dependencies) # 各 Python ファイルを処理し、 タグを作成 gradio_files = [] for python_file in python_files: with open(python_file, "r") as file: python_code = file.read() entrypoint = "entrypoint" if python_file == python_files[0] else "" gradio_file = f""" {python_code} """ gradio_files.append(gradio_file) # 完成した HTML を返す return html_template.format(requirements, "\n".join(gradio_files)) # コマンドライン引数からファイルパスを取得 python_files = sys.argv[1:-1] requirements_file = sys.argv[-1] if len(sys.argv) > 1 else None # Gradio Lite への変換 gradio_lite_html = convert_to_gradio_lite(python_files, requirements_file) # タイムスタンプ付きのファイル名を生成 timestamp = datetime.now().strftime("%Y-%m-%d_%H%M%S") output_file = f"index_{timestamp}.html" # 結果をファイルに出力 with open(output_file, "w") as file: file.write(gradio_lite_html) print(f"Gradio Lite HTML has been generated and saved as {output_file}")