|
2 | 2 | let pyodide; |
3 | 3 | let pyodideOutput = []; |
4 | 4 |
|
| 5 | +// Helper function to read all files from the Pyodide file system |
| 6 | +function readAllFiles() { |
| 7 | + const dirFiles = pyodide.FS.readdir(HOME); |
| 8 | + const updatedFiles = []; |
| 9 | + for (const filename of dirFiles) { |
| 10 | + if (filename === "." || filename === "..") continue; |
| 11 | + const filepath = HOME + filename; |
| 12 | + const stat = pyodide.FS.stat(filepath); |
| 13 | + if (pyodide.FS.isFile(stat.mode)) { |
| 14 | + const content = pyodide.FS.readFile(filepath, { encoding: "utf8" }); |
| 15 | + updatedFiles.push([filename, content]); |
| 16 | + } |
| 17 | + } |
| 18 | + return updatedFiles; |
| 19 | +} |
| 20 | + |
5 | 21 | async function init(id, payload) { |
6 | 22 | const { PYODIDE_CDN, interruptBuffer } = payload; |
7 | 23 | if (!pyodide) { |
@@ -73,18 +89,7 @@ async function runPython(id, payload) { |
73 | 89 | } |
74 | 90 | } |
75 | 91 |
|
76 | | - // Use Pyodide FS API to read all files |
77 | | - const dirFiles = pyodide.FS.readdir(HOME); |
78 | | - const updatedFiles = []; |
79 | | - for (const filename of dirFiles) { |
80 | | - if (filename === "." || filename === "..") continue; |
81 | | - const filepath = HOME + filename; |
82 | | - const stat = pyodide.FS.stat(filepath); |
83 | | - if (pyodide.FS.isFile(stat.mode)) { |
84 | | - const content = pyodide.FS.readFile(filepath, { encoding: "utf8" }); |
85 | | - updatedFiles.push([filename, content]); |
86 | | - } |
87 | | - } |
| 92 | + const updatedFiles = readAllFiles(); |
88 | 93 |
|
89 | 94 | const output = [...pyodideOutput]; |
90 | 95 | pyodideOutput = []; // 出力をクリア |
@@ -145,18 +150,7 @@ async function runFile(id, payload) { |
145 | 150 | } |
146 | 151 | } |
147 | 152 |
|
148 | | - // Use Pyodide FS API to read all files |
149 | | - const dirFiles = pyodide.FS.readdir(HOME); |
150 | | - const updatedFiles = []; |
151 | | - for (const filename of dirFiles) { |
152 | | - if (filename === "." || filename === "..") continue; |
153 | | - const filepath = HOME + filename; |
154 | | - const stat = pyodide.FS.stat(filepath); |
155 | | - if (pyodide.FS.isFile(stat.mode)) { |
156 | | - const content = pyodide.FS.readFile(filepath, { encoding: "utf8" }); |
157 | | - updatedFiles.push([filename, content]); |
158 | | - } |
159 | | - } |
| 153 | + const updatedFiles = readAllFiles(); |
160 | 154 |
|
161 | 155 | const output = [...pyodideOutput]; |
162 | 156 | pyodideOutput = []; // 出力をクリア |
|
0 commit comments