mirror of
https://github.com/pyscript/pyscript.git
synced 2026-04-18 17:00:22 -04:00
Minor refactoring (#437)
This commit is contained in:
@@ -62,7 +62,6 @@ export class BaseEvalElement extends HTMLElement {
|
||||
}
|
||||
|
||||
async getSourceFromFile(s: string): Promise<string> {
|
||||
const pyodide = runtime;
|
||||
const response = await fetch(s);
|
||||
this.code = await response.text();
|
||||
return this.code;
|
||||
@@ -104,11 +103,8 @@ export class BaseEvalElement extends HTMLElement {
|
||||
let source: string;
|
||||
let output;
|
||||
try {
|
||||
if (this.source) {
|
||||
source = await this.getSourceFromFile(this.source);
|
||||
} else {
|
||||
source = this.getSourceFromElement();
|
||||
}
|
||||
source = this.source ? await this.getSourceFromFile(this.source)
|
||||
: this.getSourceFromElement();
|
||||
|
||||
await this._register_esm(pyodide);
|
||||
|
||||
@@ -142,7 +138,7 @@ export class BaseEvalElement extends HTMLElement {
|
||||
if (errorElements.length > 0) {
|
||||
for (const errorElement of errorElements) {
|
||||
errorElement.classList.add('hidden');
|
||||
if(this.hasAttribute('std-err')) {
|
||||
if (this.hasAttribute('std-err')) {
|
||||
this.errorElement.hidden = true;
|
||||
this.errorElement.style.removeProperty('display');
|
||||
}
|
||||
@@ -160,7 +156,7 @@ export class BaseEvalElement extends HTMLElement {
|
||||
addClasses(this.errorElement, ['bg-red-200', 'p-2']);
|
||||
out.write.callKwargs(err, { append: true });
|
||||
|
||||
this.errorElement.children[this.errorElement.children.length - 1].setAttribute('error', '')
|
||||
this.errorElement.children[this.errorElement.children.length - 1].setAttribute('error', '');
|
||||
this.errorElement.hidden = false;
|
||||
this.errorElement.style.display = 'block';
|
||||
}
|
||||
@@ -249,7 +245,6 @@ function createWidget(name: string, code: string, klass: string) {
|
||||
}
|
||||
}
|
||||
}
|
||||
const xPyWidget = customElements.define(name, CustomWidget);
|
||||
}
|
||||
|
||||
export class PyWidget extends HTMLElement {
|
||||
@@ -290,7 +285,6 @@ export class PyWidget extends HTMLElement {
|
||||
throw new ReferenceError(
|
||||
`No id specified for component. Components must have an explicit id. Please use id="" to specify your component id.`,
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
const mainDiv = document.createElement('div');
|
||||
|
||||
@@ -43,11 +43,7 @@ function createCmdHandler(el: PyRepl): StateCommand {
|
||||
|
||||
let initialTheme: string;
|
||||
function getEditorTheme(el: BaseEvalElement): string {
|
||||
if (initialTheme) {
|
||||
return initialTheme;
|
||||
}
|
||||
|
||||
return (initialTheme = el.getAttribute('theme'));
|
||||
return initialTheme || (initialTheme = el.getAttribute('theme'));
|
||||
}
|
||||
|
||||
export class PyRepl extends BaseEvalElement {
|
||||
@@ -165,11 +161,9 @@ export class PyRepl extends BaseEvalElement {
|
||||
mainDiv.appendChild(this.outputElement);
|
||||
}
|
||||
|
||||
if (this.hasAttribute('std-err')) {
|
||||
this.errorElement = document.getElementById(this.getAttribute('std-err'));
|
||||
} else {
|
||||
this.errorElement = this.outputElement;
|
||||
}
|
||||
this.errorElement = this.hasAttribute('std-err')
|
||||
? document.getElementById(this.getAttribute('std-err'))
|
||||
: this.outputElement;
|
||||
}
|
||||
|
||||
this.appendChild(mainDiv);
|
||||
@@ -188,7 +182,7 @@ export class PyRepl extends BaseEvalElement {
|
||||
|
||||
if (this.hasAttribute('auto-generate')) {
|
||||
const allPyRepls = document.querySelectorAll(`py-repl[root='${this.getAttribute('root')}'][exec-id]`);
|
||||
const lastRepl = allPyRepls[allPyRepls.length -1 ];
|
||||
const lastRepl = allPyRepls[allPyRepls.length - 1];
|
||||
const lastExecId = lastRepl.getAttribute('exec-id');
|
||||
const nextExecId = parseInt(lastExecId) + 1;
|
||||
|
||||
@@ -198,17 +192,15 @@ export class PyRepl extends BaseEvalElement {
|
||||
newPyRepl.setAttribute('auto-generate', '');
|
||||
this.removeAttribute('auto-generate');
|
||||
|
||||
if (this.hasAttribute('output')) {
|
||||
newPyRepl.setAttribute('output', this.getAttribute('output'));
|
||||
}
|
||||
const addReplAttribute = (attribute: string) => {
|
||||
if (this.hasAttribute(attribute)) {
|
||||
newPyRepl.setAttribute(attribute, this.getAttribute(attribute));
|
||||
}
|
||||
};
|
||||
|
||||
if (this.hasAttribute('std-out')) {
|
||||
newPyRepl.setAttribute('std-out', this.getAttribute('std-out'));
|
||||
}
|
||||
|
||||
if (this.hasAttribute('std-err')) {
|
||||
newPyRepl.setAttribute('std-err', this.getAttribute('std-err'));
|
||||
}
|
||||
addReplAttribute('output');
|
||||
addReplAttribute('std-out');
|
||||
addReplAttribute('std-err');
|
||||
|
||||
newPyRepl.setAttribute('exec-id', nextExecId.toString());
|
||||
this.parentElement.appendChild(newPyRepl);
|
||||
|
||||
Reference in New Issue
Block a user