mirror of
https://github.com/pyscript/pyscript.git
synced 2022-05-01 19:47:48 +03:00
fix enviroment promise loading bug on pyenv
This commit is contained in:
@@ -14,12 +14,15 @@
|
|||||||
|
|
||||||
const initializePyodide = async () => {
|
const initializePyodide = async () => {
|
||||||
pyodideReadyPromise = loadInterpreter();
|
pyodideReadyPromise = loadInterpreter();
|
||||||
|
const pyodide = await pyodideReadyPromise;
|
||||||
let newEnv = {
|
let newEnv = {
|
||||||
id: 'a',
|
id: 'a',
|
||||||
promise: pyodideReadyPromise,
|
promise: pyodideReadyPromise,
|
||||||
|
runtime: pyodide,
|
||||||
state: 'loading',
|
state: 'loading',
|
||||||
};
|
};
|
||||||
pyodideLoaded.set(pyodideReadyPromise);
|
pyodideLoaded.set(pyodide);
|
||||||
|
|
||||||
loadedEnvironments.update((value: any): any => {
|
loadedEnvironments.update((value: any): any => {
|
||||||
value[newEnv['id']] = newEnv;
|
value[newEnv['id']] = newEnv;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,12 +5,21 @@ import { loadPackage, loadFromFile } from '../interpreter';
|
|||||||
|
|
||||||
// Premise used to connect to the first available pyodide interpreter
|
// Premise used to connect to the first available pyodide interpreter
|
||||||
let pyodideReadyPromise;
|
let pyodideReadyPromise;
|
||||||
|
let runtime;
|
||||||
|
|
||||||
|
pyodideLoaded.subscribe(value => {
|
||||||
|
runtime = value;
|
||||||
|
console.log("RUNTIME READY")
|
||||||
|
});
|
||||||
|
|
||||||
export class PyEnv extends HTMLElement {
|
export class PyEnv extends HTMLElement {
|
||||||
shadow: ShadowRoot;
|
shadow: ShadowRoot;
|
||||||
wrapper: HTMLElement;
|
wrapper: HTMLElement;
|
||||||
code: string;
|
code: string;
|
||||||
environment: any;
|
environment: any;
|
||||||
|
runtime: any;
|
||||||
|
env: string[];
|
||||||
|
paths: string[];
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
super();
|
super();
|
||||||
@@ -40,20 +49,20 @@ export class PyEnv extends HTMLElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function loadEnv() {
|
async function loadEnv() {
|
||||||
const pyodide = await pyodideReadyPromise;
|
await loadPackage(env, runtime);
|
||||||
await loadPackage(env, pyodide);
|
|
||||||
console.log('enviroment loaded');
|
console.log('enviroment loaded');
|
||||||
}
|
}
|
||||||
|
|
||||||
async function loadPaths() {
|
async function loadPaths() {
|
||||||
const pyodide = await pyodideReadyPromise;
|
const pyodide = await pyodideReadyPromise;
|
||||||
for (const singleFile of paths) {
|
for (const singleFile of paths) {
|
||||||
await loadFromFile(singleFile, pyodide);
|
await loadFromFile(singleFile, runtime);
|
||||||
}
|
}
|
||||||
console.log('paths loaded');
|
console.log('paths loaded');
|
||||||
}
|
}
|
||||||
|
|
||||||
addInitializer(loadEnv);
|
addInitializer(loadEnv);
|
||||||
addInitializer(loadPaths);
|
addInitializer(loadPaths);
|
||||||
console.log('enviroment loading...', env);
|
console.log('enviroment loading...', this.env);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user