diff --git a/.gitignore b/.gitignore index 5a9f2b3..a9ed25c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ .eggs/ -dist/ +dist/*.gz + *.pyc __pycache__/ *.py[cod] diff --git a/demo/video_chat.py b/demo/video_chat.py index 9b0b4a6..ac86301 100644 --- a/demo/video_chat.py +++ b/demo/video_chat.py @@ -61,7 +61,7 @@ class GeminiHandler(AsyncAudioVideoStreamHandler): # await self.session.send(encode_image(frame)) # if self.latest_args[2] is not None: # await self.session.send(encode_image(self.latest_args[2])) - print(frame.shape) + # print(frame.shape) newFrame = np.array(frame) newFrame[0:, :, 0] = 255 - newFrame[0:, :, 0] self.video_queue.put_nowait(newFrame) diff --git a/dist/gradio_webrtc-0.0.30.dev0-py3-none-any.whl b/dist/gradio_webrtc-0.0.30.dev0-py3-none-any.whl new file mode 100644 index 0000000..5d5cd64 Binary files /dev/null and b/dist/gradio_webrtc-0.0.30.dev0-py3-none-any.whl differ diff --git a/update_version.py b/update_version.py index 506f643..858c237 100644 --- a/update_version.py +++ b/update_version.py @@ -2,32 +2,64 @@ import subprocess import os import glob import shutil +import argparse -# 获取当前脚本所在的目录 -script_dir = os.path.dirname(os.path.abspath(__file__)) +def check_node_installed(): + try: + # 尝试运行 `node -v` 命令 + subprocess.check_output(['node', '-v']) + print("Node.js is installed.") + return True + except subprocess.CalledProcessError: + print("Node.js is not installed or not found in PATH.") + return False + except FileNotFoundError: + print("Node.js is not installed or not found in PATH.") + return False -# 切换到当前脚本所在的目录 -os.chdir(script_dir) +def install_wheel(whl_file, force_reinstall=False): + if force_reinstall: + subprocess.run(['pip', 'install', '--force-reinstall', whl_file]) + print(f"Force reinstallation of {whl_file} successful.") + else: + subprocess.run(['pip', 'install', whl_file]) + print(f"Installation of {whl_file} successful.") -# 移除 gradio_webrtc 包 -subprocess.run(['pip', 'uninstall', '-y', 'gradio_webrtc']) +def main(force_reinstall): + # 获取当前脚本所在的目录 + script_dir = os.path.dirname(os.path.abspath(__file__)) -# 删除已有的 dist 目录 -if os.path.exists('dist'): - shutil.rmtree('dist') + # 切换到当前脚本所在的目录 + os.chdir(script_dir) -# 执行 gradio cc install -subprocess.run(['gradio', 'cc', 'install']) + # 查找 dist 目录下的 .whl 文件 + whl_files = glob.glob('dist/*.whl') -# 执行 gradio cc build --no-generate-docs -subprocess.run(['gradio', 'cc', 'build', '--no-generate-docs']) + if not check_node_installed() or whl_files is None or len(whl_files) == 0: + # 移除 gradio_webrtc 包 + subprocess.run(['pip', 'uninstall', '-y', 'gradio_webrtc']) -# 查找 dist 目录下的 .whl 文件 -whl_files = glob.glob('dist/*.whl') + # 删除已有的 dist 目录 + if os.path.exists('dist'): + shutil.rmtree('dist') -if whl_files: - whl_file = whl_files[0] - # 安装 .whl 文件 - subprocess.run(['pip', 'install', whl_file]) -else: - print("没有找到 .whl 文件") \ No newline at end of file + # 执行 gradio cc install + subprocess.run(['gradio', 'cc', 'install']) + + # 执行 gradio cc build --no-generate-docs + subprocess.run(['gradio', 'cc', 'build', '--no-generate-docs']) + + if whl_files: + whl_file = whl_files[0] + # 安装 .whl 文件 + install_wheel(whl_file, force_reinstall) + else: + print("没有找到 .whl 文件") + +if __name__ == "__main__": + # 解析命令行参数 + parser = argparse.ArgumentParser(description="Update and install gradio-webrtc package.") + parser.add_argument('--force-reinstall', action='store_true', help='Force reinstall the .whl file') + args = parser.parse_args() + + main(args.force_reinstall) \ No newline at end of file