@volter/browser-python 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/command.d.ts +13 -1
- package/dist/command.d.ts.map +1 -1
- package/dist/command.js +77 -11
- package/dist/command.js.map +1 -1
- package/dist/filesystem.d.ts +9 -0
- package/dist/filesystem.d.ts.map +1 -1
- package/dist/filesystem.js +29 -0
- package/dist/filesystem.js.map +1 -1
- package/dist/host.d.ts +31 -0
- package/dist/host.d.ts.map +1 -0
- package/dist/host.js +76 -0
- package/dist/host.js.map +1 -0
- package/dist/pack-filesystem.d.ts +22 -0
- package/dist/pack-filesystem.d.ts.map +1 -0
- package/dist/pack-filesystem.js +252 -0
- package/dist/pack-filesystem.js.map +1 -0
- package/dist/package-manager.d.ts +14 -0
- package/dist/package-manager.d.ts.map +1 -1
- package/dist/package-manager.js +58 -3
- package/dist/package-manager.js.map +1 -1
- package/dist/process-host.d.ts +13 -2
- package/dist/process-host.d.ts.map +1 -1
- package/dist/process-host.js +45 -8
- package/dist/process-host.js.map +1 -1
- package/dist/protocol.d.ts +28 -4
- package/dist/protocol.d.ts.map +1 -1
- package/dist/pyodide-artifacts.d.ts +22 -0
- package/dist/pyodide-artifacts.d.ts.map +1 -0
- package/dist/pyodide-artifacts.js +40 -0
- package/dist/pyodide-artifacts.js.map +1 -0
- package/dist/pyodide-runtime.d.ts +10 -2
- package/dist/pyodide-runtime.d.ts.map +1 -1
- package/dist/pyodide-runtime.js +21 -12
- package/dist/pyodide-runtime.js.map +1 -1
- package/dist/server-host.d.ts +2 -2
- package/dist/server-host.d.ts.map +1 -1
- package/dist/server-host.js +4 -4
- package/dist/server-host.js.map +1 -1
- package/dist/subprocess-bridge.d.ts +6 -2
- package/dist/subprocess-bridge.d.ts.map +1 -1
- package/dist/subprocess-bridge.js +9 -8
- package/dist/subprocess-bridge.js.map +1 -1
- package/dist/worker.js +147 -20
- package/dist/worker.js.map +1 -1
- package/dist/wsgi-bridge.d.ts.map +1 -1
- package/dist/wsgi-bridge.js +3 -0
- package/dist/wsgi-bridge.js.map +1 -1
- package/package.json +20 -6
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { PYTHON_WORKSPACE } from "./pyodide-runtime.js";
|
|
2
|
+
import { encodeBase64 } from "./filesystem.js";
|
|
3
|
+
const S_IFDIR = 0o040000;
|
|
4
|
+
const S_IFREG = 0o100000;
|
|
5
|
+
const ENOENT = 44;
|
|
6
|
+
/**
|
|
7
|
+
* Mounts the store's workspace at Pyodide's workspace path. Returns the
|
|
8
|
+
* record of changes the snapshot reads, or undefined when this Pyodide
|
|
9
|
+
* exposes no filesystem to mount over, in which case the caller restores
|
|
10
|
+
* a snapshot the old way.
|
|
11
|
+
*/
|
|
12
|
+
export function mountPackWorkspace(filesystem, store) {
|
|
13
|
+
const FS = filesystem;
|
|
14
|
+
const memfs = FS.filesystems?.MEMFS;
|
|
15
|
+
if (!memfs || typeof FS.mount !== "function" || typeof memfs.createNode !== "function")
|
|
16
|
+
return undefined;
|
|
17
|
+
const changes = { dirty: new Set(), removed: new Set() };
|
|
18
|
+
const enoent = () => FS.genericErrors?.[ENOENT] ?? new FS.ErrnoError(ENOENT);
|
|
19
|
+
const pathOf = (node) => node.packPath ?? PYTHON_WORKSPACE;
|
|
20
|
+
// A node for an entry of the store, created the first time it is looked
|
|
21
|
+
// up: a directory whose listing is filled on demand, or a file whose
|
|
22
|
+
// bytes arrive when a stream opens it.
|
|
23
|
+
function adopt(parent, name, path) {
|
|
24
|
+
const entry = store.entries.get(path);
|
|
25
|
+
if (!entry)
|
|
26
|
+
throw enoent();
|
|
27
|
+
const mode = (entry.mode & 0o7777) | (entry.type === "directory" ? S_IFDIR : S_IFREG);
|
|
28
|
+
const node = memfs.createNode(parent, name, mode, 0);
|
|
29
|
+
node.packPath = path;
|
|
30
|
+
node.timestamp = entry.mtimeMs;
|
|
31
|
+
node.atime = node.mtime = node.ctime = entry.mtimeMs;
|
|
32
|
+
if (entry.type === "directory") {
|
|
33
|
+
node.packListed = false;
|
|
34
|
+
node.node_ops = dirOps(node.node_ops);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
node.packLoaded = false;
|
|
38
|
+
node.usedBytes = entry.length;
|
|
39
|
+
node.node_ops = fileOps(node.node_ops);
|
|
40
|
+
node.stream_ops = fileStreams(node.stream_ops);
|
|
41
|
+
}
|
|
42
|
+
return node;
|
|
43
|
+
}
|
|
44
|
+
function load(node) {
|
|
45
|
+
if (node.packLoaded !== false || !node.packPath)
|
|
46
|
+
return;
|
|
47
|
+
const bytes = store.read(node.packPath);
|
|
48
|
+
node.contents = bytes;
|
|
49
|
+
node.usedBytes = bytes.byteLength;
|
|
50
|
+
node.packLoaded = true;
|
|
51
|
+
}
|
|
52
|
+
function markDirty(node) {
|
|
53
|
+
if (FS.isDir(node.mode))
|
|
54
|
+
return;
|
|
55
|
+
changes.dirty.add(nodePath(node));
|
|
56
|
+
}
|
|
57
|
+
function nodePath(node) {
|
|
58
|
+
const parts = [];
|
|
59
|
+
let current = node;
|
|
60
|
+
while (current && current.parent !== current) {
|
|
61
|
+
parts.unshift(current.name);
|
|
62
|
+
current = current.parent;
|
|
63
|
+
}
|
|
64
|
+
return `${PYTHON_WORKSPACE}/${parts.join("/")}`.replace(/\/+$/u, "") || PYTHON_WORKSPACE;
|
|
65
|
+
}
|
|
66
|
+
const dirCache = new WeakMap();
|
|
67
|
+
function dirOps(base) {
|
|
68
|
+
const cached = dirCache.get(base);
|
|
69
|
+
if (cached)
|
|
70
|
+
return cached;
|
|
71
|
+
const ops = {
|
|
72
|
+
...base,
|
|
73
|
+
lookup: (parent, name) => {
|
|
74
|
+
const path = `${pathOf(parent)}/${name}`;
|
|
75
|
+
if (!changes.removed.has(path) && store.entries.has(path))
|
|
76
|
+
return adopt(parent, name, path);
|
|
77
|
+
throw enoent();
|
|
78
|
+
},
|
|
79
|
+
readdir: (node) => {
|
|
80
|
+
const own = base.readdir(node);
|
|
81
|
+
const names = new Set(own);
|
|
82
|
+
const path = pathOf(node);
|
|
83
|
+
for (const name of store.childrenOf(path)) {
|
|
84
|
+
if (!changes.removed.has(`${path}/${name}`))
|
|
85
|
+
names.add(name);
|
|
86
|
+
}
|
|
87
|
+
return [...names];
|
|
88
|
+
},
|
|
89
|
+
mknod: (parent, name, mode, dev) => {
|
|
90
|
+
const path = `${pathOf(parent)}/${name}`;
|
|
91
|
+
changes.removed.delete(path);
|
|
92
|
+
const node = base.mknod(parent, name, mode, dev);
|
|
93
|
+
node.packPath = path;
|
|
94
|
+
if (FS.isDir(mode)) {
|
|
95
|
+
node.packListed = true;
|
|
96
|
+
node.node_ops = dirOps(node.node_ops);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
node.packLoaded = true;
|
|
100
|
+
changes.dirty.add(path);
|
|
101
|
+
node.node_ops = fileOps(node.node_ops);
|
|
102
|
+
node.stream_ops = fileStreams(node.stream_ops);
|
|
103
|
+
}
|
|
104
|
+
return node;
|
|
105
|
+
},
|
|
106
|
+
unlink: (parent, name) => {
|
|
107
|
+
const path = `${pathOf(parent)}/${name}`;
|
|
108
|
+
base.unlink(parent, name);
|
|
109
|
+
changes.dirty.delete(path);
|
|
110
|
+
changes.removed.add(path);
|
|
111
|
+
},
|
|
112
|
+
rmdir: (parent, name) => {
|
|
113
|
+
const path = `${pathOf(parent)}/${name}`;
|
|
114
|
+
// Empty as the program sees it: nothing of the store's below it either.
|
|
115
|
+
for (const child of store.childrenOf(path))
|
|
116
|
+
if (!changes.removed.has(`${path}/${child}`))
|
|
117
|
+
throw new FS.ErrnoError(55);
|
|
118
|
+
base.rmdir(parent, name);
|
|
119
|
+
changes.removed.add(path);
|
|
120
|
+
},
|
|
121
|
+
rename: (oldNode, newDir, newName) => {
|
|
122
|
+
const from = nodePath(oldNode);
|
|
123
|
+
if (FS.isFile(oldNode.mode))
|
|
124
|
+
load(oldNode);
|
|
125
|
+
else
|
|
126
|
+
materializeTree(oldNode);
|
|
127
|
+
base.rename(oldNode, newDir, newName);
|
|
128
|
+
const to = `${pathOf(newDir)}/${newName}`;
|
|
129
|
+
remap(oldNode, from, to);
|
|
130
|
+
changes.removed.add(from);
|
|
131
|
+
changes.removed.delete(to);
|
|
132
|
+
},
|
|
133
|
+
};
|
|
134
|
+
dirCache.set(base, ops);
|
|
135
|
+
return ops;
|
|
136
|
+
}
|
|
137
|
+
const fileCache = new WeakMap();
|
|
138
|
+
function fileOps(base) {
|
|
139
|
+
const cached = fileCache.get(base);
|
|
140
|
+
if (cached)
|
|
141
|
+
return cached;
|
|
142
|
+
const ops = {
|
|
143
|
+
...base,
|
|
144
|
+
setattr: (node, attr) => {
|
|
145
|
+
if (attr.size !== undefined)
|
|
146
|
+
load(node);
|
|
147
|
+
base.setattr(node, attr);
|
|
148
|
+
if (attr.size !== undefined || attr.mode !== undefined || attr.timestamp !== undefined)
|
|
149
|
+
markDirty(node);
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
fileCache.set(base, ops);
|
|
153
|
+
return ops;
|
|
154
|
+
}
|
|
155
|
+
const streamCache = new WeakMap();
|
|
156
|
+
function fileStreams(base) {
|
|
157
|
+
const cached = streamCache.get(base);
|
|
158
|
+
if (cached)
|
|
159
|
+
return cached;
|
|
160
|
+
const ops = {
|
|
161
|
+
...base,
|
|
162
|
+
open: (stream) => {
|
|
163
|
+
load(stream.node);
|
|
164
|
+
base.open?.(stream);
|
|
165
|
+
},
|
|
166
|
+
write: (stream, buffer, offset, length, position, canOwn) => {
|
|
167
|
+
load(stream.node);
|
|
168
|
+
const written = base.write(stream, buffer, offset, length, position, canOwn);
|
|
169
|
+
markDirty(stream.node);
|
|
170
|
+
return written;
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
streamCache.set(base, ops);
|
|
174
|
+
return ops;
|
|
175
|
+
}
|
|
176
|
+
/** Every node below a directory brought in from the store, so a rename moves a whole tree. */
|
|
177
|
+
function materializeTree(node) {
|
|
178
|
+
const path = pathOf(node);
|
|
179
|
+
for (const name of store.childrenOf(path)) {
|
|
180
|
+
if (changes.removed.has(`${path}/${name}`))
|
|
181
|
+
continue;
|
|
182
|
+
const contents = node.contents;
|
|
183
|
+
const child = contents[name] ?? adopt(node, name, `${path}/${name}`);
|
|
184
|
+
if (FS.isDir(child.mode))
|
|
185
|
+
materializeTree(child);
|
|
186
|
+
else
|
|
187
|
+
load(child);
|
|
188
|
+
}
|
|
189
|
+
node.packListed = true;
|
|
190
|
+
}
|
|
191
|
+
function remap(node, from, to) {
|
|
192
|
+
node.packPath = to;
|
|
193
|
+
if (FS.isFile(node.mode)) {
|
|
194
|
+
changes.dirty.delete(from);
|
|
195
|
+
changes.dirty.add(to);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
for (const [name, child] of Object.entries(node.contents)) {
|
|
199
|
+
remap(child, `${from}/${name}`, `${to}/${name}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const packfs = {
|
|
203
|
+
mount: () => {
|
|
204
|
+
const root = memfs.createNode(null, "/", S_IFDIR | 0o755, 0);
|
|
205
|
+
root.packPath = PYTHON_WORKSPACE;
|
|
206
|
+
root.node_ops = dirOps(root.node_ops);
|
|
207
|
+
return root;
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
if (FS.analyzePath(PYTHON_WORKSPACE).exists) {
|
|
211
|
+
try {
|
|
212
|
+
FS.unmount(PYTHON_WORKSPACE);
|
|
213
|
+
}
|
|
214
|
+
catch { /* not mounted */ }
|
|
215
|
+
try {
|
|
216
|
+
FS.rmdir(PYTHON_WORKSPACE);
|
|
217
|
+
}
|
|
218
|
+
catch { /* holds files from a snapshot run */ }
|
|
219
|
+
}
|
|
220
|
+
FS.mkdirTree(PYTHON_WORKSPACE);
|
|
221
|
+
FS.mount(packfs, {}, PYTHON_WORKSPACE);
|
|
222
|
+
return changes;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* The workspace as the page reconciles it: metadata for every entry, and
|
|
226
|
+
* bytes only for what the program wrote. Entries outside the workspace are
|
|
227
|
+
* the page's own, carried through from the snapshot it sent.
|
|
228
|
+
*/
|
|
229
|
+
export function snapshotPackWorkspace(filesystem, changes, original) {
|
|
230
|
+
const files = original.files.filter((entry) => entry.path !== PYTHON_WORKSPACE && !entry.path.startsWith(`${PYTHON_WORKSPACE}/`));
|
|
231
|
+
const walk = (path) => {
|
|
232
|
+
const stat = filesystem.stat(path);
|
|
233
|
+
const mtimeMs = stat.mtime instanceof Date ? stat.mtime.getTime() : stat.mtime;
|
|
234
|
+
const metadata = { mode: stat.mode & 0o7777, ...(typeof mtimeMs === "number" && Number.isFinite(mtimeMs) ? { mtimeMs } : {}) };
|
|
235
|
+
if ((stat.mode & 0o170000) === S_IFDIR) {
|
|
236
|
+
files.push({ path, type: "directory", ...metadata });
|
|
237
|
+
for (const name of filesystem.readdir(path)) {
|
|
238
|
+
if (name === "." || name === "..")
|
|
239
|
+
continue;
|
|
240
|
+
walk(`${path}/${name}`);
|
|
241
|
+
}
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
if (changes.dirty.has(path))
|
|
245
|
+
files.push({ path, type: "file", content: encodeBase64(filesystem.readFile(path)), ...metadata });
|
|
246
|
+
else
|
|
247
|
+
files.push({ path, type: "file", ...(typeof stat.size === "number" ? { size: stat.size } : {}), ...metadata });
|
|
248
|
+
};
|
|
249
|
+
walk(PYTHON_WORKSPACE);
|
|
250
|
+
return { files };
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=pack-filesystem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-filesystem.js","sourceRoot":"","sources":["../src/pack-filesystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import { type PyodideFileSystem, type PyodideRuntime } from "./pyodide-runtime.js";
|
|
2
2
|
export interface PythonPipInvocation {
|
|
3
3
|
requirements: string[];
|
|
4
|
+
/** Present when a lockfile pinned the versions; the caller says so once. */
|
|
5
|
+
lockfile?: {
|
|
6
|
+
file: string;
|
|
7
|
+
pins: number;
|
|
8
|
+
};
|
|
4
9
|
}
|
|
5
10
|
export declare function restorePythonPackages(pyodide: PyodideRuntime): Promise<void>;
|
|
6
11
|
export declare function installPythonPackages(pyodide: PyodideRuntime, invocation: PythonPipInvocation): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* `uv.lock` records the version of every package a project resolved, in
|
|
14
|
+
* TOML: a sequence of `[[package]]` tables with a name and a version. The
|
|
15
|
+
* tab installs through micropip, which takes requirement strings, so a
|
|
16
|
+
* lockfile pins each requirement to what the project recorded.
|
|
17
|
+
*/
|
|
18
|
+
export declare function readUvLock(text: string): Map<string, string>;
|
|
19
|
+
/** A requirement pinned to the version a lockfile recorded, where it names one. */
|
|
20
|
+
export declare function pinRequirement(requirement: string, versions: ReadonlyMap<string, string>): string;
|
|
7
21
|
export declare function parsePipInvocation(fs: PyodideFileSystem, argv: string[], cwd: string): PythonPipInvocation | undefined;
|
|
8
22
|
//# sourceMappingURL=package-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM7G,MAAM,WAAW,mBAAmB;
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAA4B,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAM7G,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAKlF;AAED,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,mBAAmB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAa5D;AAED,mFAAmF;AACnF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAKjG;AAED,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,iBAAiB,EACrB,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,EAAE,MAAM,GACV,mBAAmB,GAAG,SAAS,CAwCjC"}
|
package/dist/package-manager.js
CHANGED
|
@@ -11,9 +11,50 @@ export async function restorePythonPackages(pyodide) {
|
|
|
11
11
|
writeRequirements(pyodide.FS, await resolvedRequirements(pyodide));
|
|
12
12
|
}
|
|
13
13
|
export async function installPythonPackages(pyodide, invocation) {
|
|
14
|
+
// Nothing to install records nothing: a project with an empty requirements file has no packages to list.
|
|
15
|
+
if (invocation.requirements.length === 0)
|
|
16
|
+
return;
|
|
14
17
|
await installRequirements(pyodide, invocation.requirements);
|
|
15
18
|
writeRequirements(pyodide.FS, await resolvedRequirements(pyodide));
|
|
16
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* `uv.lock` records the version of every package a project resolved, in
|
|
22
|
+
* TOML: a sequence of `[[package]]` tables with a name and a version. The
|
|
23
|
+
* tab installs through micropip, which takes requirement strings, so a
|
|
24
|
+
* lockfile pins each requirement to what the project recorded.
|
|
25
|
+
*/
|
|
26
|
+
export function readUvLock(text) {
|
|
27
|
+
const versions = new Map();
|
|
28
|
+
let name;
|
|
29
|
+
for (const raw of text.split("\n")) {
|
|
30
|
+
const line = raw.trim();
|
|
31
|
+
if (line === "[[package]]") {
|
|
32
|
+
name = undefined;
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
if (line.startsWith("[") && line !== "[[package]]") {
|
|
36
|
+
name = undefined;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
const nameMatch = /^name\s*=\s*"([^"]+)"$/u.exec(line);
|
|
40
|
+
if (nameMatch) {
|
|
41
|
+
name = nameMatch[1];
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const versionMatch = /^version\s*=\s*"([^"]+)"$/u.exec(line);
|
|
45
|
+
if (versionMatch && name && !versions.has(name))
|
|
46
|
+
versions.set(name, versionMatch[1]);
|
|
47
|
+
}
|
|
48
|
+
return versions;
|
|
49
|
+
}
|
|
50
|
+
/** A requirement pinned to the version a lockfile recorded, where it names one. */
|
|
51
|
+
export function pinRequirement(requirement, versions) {
|
|
52
|
+
const name = /^[A-Za-z0-9._-]+/u.exec(requirement.trim())?.[0];
|
|
53
|
+
if (!name)
|
|
54
|
+
return requirement;
|
|
55
|
+
const pinned = versions.get(name) ?? versions.get(name.toLowerCase()) ?? versions.get(name.replace(/_/gu, "-").toLowerCase());
|
|
56
|
+
return pinned ? `${name}==${pinned}` : requirement;
|
|
57
|
+
}
|
|
17
58
|
export function parsePipInvocation(fs, argv, cwd) {
|
|
18
59
|
const executable = pythonBasename(argv[0] ?? "");
|
|
19
60
|
const args = executable === "pip" || executable === "pip3"
|
|
@@ -23,8 +64,9 @@ export function parsePipInvocation(fs, argv, cwd) {
|
|
|
23
64
|
if (!args)
|
|
24
65
|
return;
|
|
25
66
|
if (args[0] !== "install")
|
|
26
|
-
throw new Error("
|
|
67
|
+
throw new Error("pip in the tab supports only `pip install <packages> [-r requirements.txt]`, and only as a temporary path: a project's Python dependencies are meant to be prepared on a machine by `npx browser-substrate dev`.");
|
|
27
68
|
const requirements = [];
|
|
69
|
+
let fromFile = false;
|
|
28
70
|
for (let index = 1; index < args.length; index += 1) {
|
|
29
71
|
const argument = args[index];
|
|
30
72
|
if (argument === "--disable-pip-version-check" || argument === "-q" || argument === "--quiet")
|
|
@@ -37,18 +79,31 @@ export function parsePipInvocation(fs, argv, cwd) {
|
|
|
37
79
|
if (!fs.analyzePath(path).exists)
|
|
38
80
|
throw new Error(`pip: requirements file not found: ${path}`);
|
|
39
81
|
requirements.push(...parseRequirementFile(new TextDecoder().decode(fs.readFile(path))));
|
|
82
|
+
fromFile = true;
|
|
40
83
|
continue;
|
|
41
84
|
}
|
|
42
85
|
if (argument.startsWith("-"))
|
|
43
86
|
throw new Error(`browser pip does not support option: ${argument}`);
|
|
44
87
|
requirements.push(argument);
|
|
45
88
|
}
|
|
89
|
+
// A requirements file that names nothing is an install with nothing to do,
|
|
90
|
+
// as pip takes it; a bare `pip install` is a mistake, as pip says.
|
|
91
|
+
if (requirements.length === 0 && !fromFile)
|
|
92
|
+
throw new Error("pip install requires at least one package.");
|
|
93
|
+
// A lockfile beside the project pins what is installed, as it does for npm.
|
|
94
|
+
const lockPath = absolutePythonPath("uv.lock", cwd);
|
|
95
|
+
if (fs.analyzePath(lockPath).exists) {
|
|
96
|
+
const versions = readUvLock(new TextDecoder().decode(fs.readFile(lockPath)));
|
|
97
|
+
if (versions.size > 0) {
|
|
98
|
+
const pinned = requirements.map((requirement) => pinRequirement(requirement, versions));
|
|
99
|
+
validateRequirements(pinned);
|
|
100
|
+
return { requirements: pinned, lockfile: { file: "uv.lock", pins: versions.size } };
|
|
101
|
+
}
|
|
102
|
+
}
|
|
46
103
|
validateRequirements(requirements);
|
|
47
104
|
return { requirements };
|
|
48
105
|
}
|
|
49
106
|
async function installRequirements(pyodide, requirements) {
|
|
50
|
-
if (requirements.length === 0)
|
|
51
|
-
throw new Error("pip install requires at least one package.");
|
|
52
107
|
validateRequirements(requirements);
|
|
53
108
|
await withPythonNetworkPurpose("package", async () => {
|
|
54
109
|
await pyodide.loadPackage("micropip");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAA+C,MAAM,sBAAsB,CAAC;AAE7G,MAAM,iBAAiB,GAAG,+CAA+C,CAAC;AAC1E,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,qBAAqB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"package-manager.js","sourceRoot":"","sources":["../src/package-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/process-host.d.ts
CHANGED
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
import type { BrowserFileSystem } from "@volter/browser-runtime/browser-filesystem.js";
|
|
2
2
|
import type { BrowserCommandBackend } from "@volter/browser-runtime/browser-process.js";
|
|
3
|
-
import type { PythonServerWorkerMessage } from "./protocol.js";
|
|
3
|
+
import type { PythonFilesystemSync, PythonServerWorkerMessage } from "./protocol.js";
|
|
4
4
|
type ProcessMessage = Extract<PythonServerWorkerMessage, {
|
|
5
5
|
type: "process-run" | "process-cancel" | "process-start" | "process-action";
|
|
6
6
|
}>;
|
|
7
7
|
/** Owns synchronous subprocess calls and long-lived Popen handles for one Python worker. */
|
|
8
8
|
export declare class PythonChildProcessHost {
|
|
9
9
|
private readonly filesystem;
|
|
10
|
+
private readonly sync;
|
|
10
11
|
private readonly backend?;
|
|
11
12
|
private readonly controllers;
|
|
12
13
|
private readonly children;
|
|
13
14
|
private nextChildId;
|
|
14
15
|
private active;
|
|
15
16
|
private closed;
|
|
16
|
-
|
|
17
|
+
/** One reading of the tree at a time, so two children measure from different bases. */
|
|
18
|
+
private changeQueue;
|
|
19
|
+
constructor(filesystem: BrowserFileSystem, sync: PythonFilesystemSync, backend?: BrowserCommandBackend | undefined);
|
|
17
20
|
handles(message: PythonServerWorkerMessage): message is ProcessMessage;
|
|
18
21
|
handle(message: ProcessMessage): void;
|
|
19
22
|
close(): void;
|
|
20
23
|
private run;
|
|
21
24
|
private runOnce;
|
|
25
|
+
/**
|
|
26
|
+
* What the child changed: the delta between the tree the worker last saw
|
|
27
|
+
* and the tree now, with bytes read for the changed files alone. Nothing
|
|
28
|
+
* else of the project crosses, and what does is recorded as the worker's
|
|
29
|
+
* new base, the way the page records what the program wrote. Only the
|
|
30
|
+
* workspace crosses; the worker's realm holds nothing above it.
|
|
31
|
+
*/
|
|
32
|
+
private childChanges;
|
|
22
33
|
private start;
|
|
23
34
|
private act;
|
|
24
35
|
private requiredBackend;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-host.d.ts","sourceRoot":"","sources":["../src/process-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"process-host.d.ts","sourceRoot":"","sources":["../src/process-host.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAMvF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4CAA4C,CAAC;AAExF,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAErF,KAAK,cAAc,GAAG,OAAO,CAAC,yBAAyB,EAAE;IACvD,IAAI,EAAE,aAAa,GAAG,gBAAgB,GAAG,eAAe,GAAG,gBAAgB,CAAC;CAC7E,CAAC,CAAC;AAuBH,4FAA4F;AAC5F,qBAAa,sBAAsB;IAU/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAX3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsC;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAS;IACvB,uFAAuF;IACvF,OAAO,CAAC,WAAW,CAAuC;gBAGvC,UAAU,EAAE,iBAAiB,EAC7B,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,qBAAqB,YAAA;IAGlD,OAAO,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,IAAI,cAAc;IAKtE,MAAM,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAYrC,KAAK,IAAI,IAAI;IAcb,OAAO,CAAC,GAAG;YAcG,OAAO;IAqBrB;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,KAAK;YAyDC,GAAG;IAsDjB,OAAO,CAAC,eAAe;CAIxB"}
|
package/dist/process-host.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { createProcessFilesystemPatch, } from "@volter/browser-runtime/browser-process-filesystem.js";
|
|
2
|
+
import { PYTHON_WORKSPACE } from "./pyodide-runtime.js";
|
|
1
3
|
const MAX_PROCESS_REQUESTS = 8;
|
|
2
4
|
const MAX_PROCESS_COMMAND_CHARS = 64 * 1024;
|
|
3
5
|
const MAX_PROCESS_INPUT_BYTES = 16 * 1024 * 1024;
|
|
@@ -6,14 +8,18 @@ const MAX_PROCESS_READ_BYTES = 1024 * 1024;
|
|
|
6
8
|
/** Owns synchronous subprocess calls and long-lived Popen handles for one Python worker. */
|
|
7
9
|
export class PythonChildProcessHost {
|
|
8
10
|
filesystem;
|
|
11
|
+
sync;
|
|
9
12
|
backend;
|
|
10
13
|
controllers = new Map();
|
|
11
14
|
children = new Map();
|
|
12
15
|
nextChildId = 1;
|
|
13
16
|
active = 0;
|
|
14
17
|
closed = false;
|
|
15
|
-
|
|
18
|
+
/** One reading of the tree at a time, so two children measure from different bases. */
|
|
19
|
+
changeQueue = Promise.resolve();
|
|
20
|
+
constructor(filesystem, sync, backend) {
|
|
16
21
|
this.filesystem = filesystem;
|
|
22
|
+
this.sync = sync;
|
|
17
23
|
this.backend = backend;
|
|
18
24
|
}
|
|
19
25
|
handles(message) {
|
|
@@ -74,12 +80,41 @@ export class PythonChildProcessHost {
|
|
|
74
80
|
signal,
|
|
75
81
|
...(stdin.byteLength > 0 ? { stdinStream: oneChunk(stdin) } : {}),
|
|
76
82
|
});
|
|
77
|
-
complete(message, { result,
|
|
83
|
+
complete(message, { result, patch: await this.childChanges() });
|
|
78
84
|
}
|
|
79
85
|
catch (cause) {
|
|
80
86
|
complete(message, { error: errorMessage(cause) });
|
|
81
87
|
}
|
|
82
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* What the child changed: the delta between the tree the worker last saw
|
|
91
|
+
* and the tree now, with bytes read for the changed files alone. Nothing
|
|
92
|
+
* else of the project crosses, and what does is recorded as the worker's
|
|
93
|
+
* new base, the way the page records what the program wrote. Only the
|
|
94
|
+
* workspace crosses; the worker's realm holds nothing above it.
|
|
95
|
+
*/
|
|
96
|
+
childChanges() {
|
|
97
|
+
const changes = this.changeQueue.then(async () => {
|
|
98
|
+
const base = this.sync.base();
|
|
99
|
+
const difference = createProcessFilesystemPatch(base, this.filesystem.toSnapshot());
|
|
100
|
+
const files = [];
|
|
101
|
+
for (const entry of difference.files) {
|
|
102
|
+
if (!insideWorkspace(entry.path))
|
|
103
|
+
continue;
|
|
104
|
+
if (entry.type !== "file" || entry.content !== undefined) {
|
|
105
|
+
files.push(entry);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const { size: _size, ...rest } = entry;
|
|
109
|
+
files.push({ ...rest, content: encode(await this.filesystem.readFile(entry.path)) });
|
|
110
|
+
}
|
|
111
|
+
const patch = { files, removed: difference.removed.filter(insideWorkspace) };
|
|
112
|
+
this.sync.advance(patch);
|
|
113
|
+
return patch;
|
|
114
|
+
});
|
|
115
|
+
this.changeQueue = changes.catch(() => undefined);
|
|
116
|
+
return changes;
|
|
117
|
+
}
|
|
83
118
|
start(message) {
|
|
84
119
|
try {
|
|
85
120
|
const backend = this.requiredBackend();
|
|
@@ -128,11 +163,10 @@ export class PythonChildProcessHost {
|
|
|
128
163
|
writeOutput(stdout, result.stderr);
|
|
129
164
|
else if (stderr && result.stderr && !stderrStreamed)
|
|
130
165
|
writeOutput(stderr, result.stderr);
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
})).then((completion) => {
|
|
166
|
+
// What this child changed is read when the program waits for it,
|
|
167
|
+
// against the tree the worker holds then.
|
|
168
|
+
return { result };
|
|
169
|
+
}, (cause) => ({ error: errorMessage(cause) })).then((completion) => {
|
|
136
170
|
child.finished = completion;
|
|
137
171
|
stdout?.close();
|
|
138
172
|
stderr?.close();
|
|
@@ -201,7 +235,7 @@ export class PythonChildProcessHost {
|
|
|
201
235
|
if (message.closeStdin)
|
|
202
236
|
child.stdin?.close();
|
|
203
237
|
const completion = await child.completion;
|
|
204
|
-
complete(message, completion);
|
|
238
|
+
complete(message, { ...completion, patch: await this.childChanges() });
|
|
205
239
|
}
|
|
206
240
|
catch (cause) {
|
|
207
241
|
complete(message, { error: errorMessage(cause) });
|
|
@@ -292,6 +326,9 @@ class AsyncProcessOutput {
|
|
|
292
326
|
reader();
|
|
293
327
|
}
|
|
294
328
|
}
|
|
329
|
+
function insideWorkspace(path) {
|
|
330
|
+
return path === PYTHON_WORKSPACE || path.startsWith(`${PYTHON_WORKSPACE}/`);
|
|
331
|
+
}
|
|
295
332
|
function validateRequest(command, cwd, env) {
|
|
296
333
|
if (!command || command.length > MAX_PROCESS_COMMAND_CHARS
|
|
297
334
|
|| !cwd.startsWith("/") || cwd.length > 16_384 || Object.keys(env).length > 256) {
|
package/dist/process-host.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-host.js","sourceRoot":"","sources":["../src/process-host.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"process-host.js","sourceRoot":"","sources":["../src/process-host.ts"],"names":[],"mappings":"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"}
|