|
1 | 1 | import os
|
2 | 2 | import tempfile
|
3 | 3 | from collections import namedtuple
|
| 4 | +from pathlib import Path |
4 | 5 |
|
5 | 6 | import gradio as gr
|
6 | 7 |
|
|
12 | 13 | Savedfile = namedtuple("Savedfile", ["name"])
|
13 | 14 |
|
14 | 15 |
|
| 16 | +def register_tmp_file(gradio, filename): |
| 17 | + if hasattr(gradio, 'temp_file_sets'): # gradio 3.15 |
| 18 | + gradio.temp_file_sets[0] = gradio.temp_file_sets[0] | {os.path.abspath(filename)} |
| 19 | + |
| 20 | + if hasattr(gradio, 'temp_dirs'): # gradio 3.9 |
| 21 | + gradio.temp_dirs = gradio.temp_dirs | {os.path.abspath(os.path.dirname(filename))} |
| 22 | + |
| 23 | + |
| 24 | +def check_tmp_file(gradio, filename): |
| 25 | + if hasattr(gradio, 'temp_file_sets'): |
| 26 | + return any([filename in fileset for fileset in gradio.temp_file_sets]) |
| 27 | + |
| 28 | + if hasattr(gradio, 'temp_dirs'): |
| 29 | + return any(Path(temp_dir).resolve() in Path(filename).resolve().parents for temp_dir in gradio.temp_dirs) |
| 30 | + |
| 31 | + return False |
| 32 | + |
| 33 | + |
15 | 34 | def save_pil_to_file(pil_image, dir=None):
|
16 | 35 | already_saved_as = getattr(pil_image, 'already_saved_as', None)
|
17 | 36 | if already_saved_as and os.path.isfile(already_saved_as):
|
18 |
| - shared.demo.temp_dirs = shared.demo.temp_dirs | {os.path.abspath(os.path.dirname(already_saved_as))} |
| 37 | + register_tmp_file(shared.demo, already_saved_as) |
| 38 | + |
19 | 39 | file_obj = Savedfile(already_saved_as)
|
20 | 40 | return file_obj
|
21 | 41 |
|
@@ -44,7 +64,7 @@ def on_tmpdir_changed():
|
44 | 64 |
|
45 | 65 | os.makedirs(shared.opts.temp_dir, exist_ok=True)
|
46 | 66 |
|
47 |
| - shared.demo.temp_dirs = shared.demo.temp_dirs | {os.path.abspath(shared.opts.temp_dir)} |
| 67 | + register_tmp_file(shared.demo, os.path.join(shared.opts.temp_dir, "x")) |
48 | 68 |
|
49 | 69 |
|
50 | 70 | def cleanup_tmpdr():
|
|
0 commit comments