• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

235
Views
Javascript Jupyter Notebook ¿Cómo obtener el contenido de la celda de código?

( Aquí hay una pregunta similar, pero se trata de usar código python para leer celdas de descuento. Quiero usar JavaScript (por ejemplo, en una extensión frontal de Jupyter Notebook) para leer el código fuente en celdas de código).

Quiero realizar un análisis en el código. Sin embargo, si simplemente inspecciono el DOM de un Jupyter Notebook, resulta ser una verdadera pesadilla DOM de div s anidados (probablemente la mitad de ellos son redundantes):

ingrese la descripción de la imagen aquí

Como podemos ver aquí, cada carácter del código fuente está en su propio elemento. Naturalmente, no estoy muy interesado en sacar todas esas cosas de sus etiquetas y concatenarlas nuevamente solo para obtener el código de una celda de código. ¿Hay alguna manera fácil de obtener el código fuente de una celda?

¿Quizás alguna función de la API de Jupyter JS? (¿Cómo obtiene el portátil el código que envía al kernel? Debería haber algo que ya esté haciendo este trabajo). ¿O alguna pequeña pieza de código jQuery, que es muy inteligente para obtener todo el contenido?

Una alternativa que se me ocurre es interceptar de alguna manera el contenido de las celdas de código antes de que el kernel lo evalúe en el backend, pero tampoco sé cómo hacerlo todavía y requeriría generar HTML, que contiene JS con una función ejecutada inmediatamente. en la salida de la celda de código, cuando se ejecuta. Esto también podría complicarse, si quiero la salida del código real y la salida del análisis del código en la salida de la celda del código. Tal vez sea menos complicado de lo que creo, pero hasta ahora parece mejor tomar el código del lado de JS, si hubiera alguna manera fácil de obtenerlo...

about 3 years ago · Santiago Trujillo
1 answers
Answer question

0

Eche un vistazo al archivo Juypter cell.js aquí : enumera las funciones que Jupyter usa para interactuar con las células. En particular, la función get_text() devolverá el contenido de una celda. (esto funciona en todos los tipos de celdas; eche un vistazo al archivo codecell.js para conocer las funciones específicas de las celdas de código solamente)

Una forma rápida de probar esto en el navegador: acceda a la instancia del notebook del objeto Jupyter global para obtener la primera celda del cuaderno:

var cell = Jupyter.notebook.get_cell(0);

Ahora que tenemos la celda, ¡podemos leer el código dentro de ella! Usar:

var code = cell.get_text();

EDITAR: puede guardar este resultado en una variable de Python usando la función Javascript para ejecutar Javascript en una celda de Python e IPython.notebook.kernel.execute para ejecutar Python en Javascript; esto se usa para configurar la variable con el nombre del código. Tenga en cuenta que tiene que escapar caracteres como comillas para usar encodeURI para realizar la codificación/descodificación de URI.

 from IPython.display import Javascript import urllib.parse Javascript("const code = Jupyter.notebook.get_cell(0).get_text(); IPython.notebook.kernel.execute(`myvar = '${encodeURI(code)}'`);") urllib.parse.unquote(myvar)
about 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error