获取整个 Jupyter Notebook 的当前内容

2024-05-02

我有一个正在运行的 Jupyter Notebook。我希望能够从 Python 中访问当前 Jupyter Notebook 的源代码。我的最终目标是将其传递到ast.parse这样我就可以对用户的代码进行一些分析。理想情况下,我能够做这样的事情:

import ast
ast.parse(get_notebooks_code())

显然,如果源代码是 IPYNB 文件,则需要一个从 Python 单元中提取代码的中间步骤,但这是一个相对容易解决的问题。

到目前为止,我已经找到了将使用list_running_serversIPython 对象的函数,以便发出请求并匹配内核 ID - 这给我当前运行的笔记本的文件名。这是可行的,除了磁盘上的源代码可能与用户浏览器中的源代码不匹配(直到您保存新的检查点)。

我已经看到了一些涉及使用 JavaScript 提取数据的想法,但这需要一个带有魔法的单独单元格或调用 display.Javascript 函数 - 该函数异步触发,因此不允许我将结果传递给ast.parse.

对于如何动态获取当前笔记本源代码作为 Python 中的字符串以便立即处理,有人有什么聪明的想法吗?如果我需要将其作为扩展甚至内核包装器,我完全没问题,我只需要以某种方式获取源代码即可。


嗯,这并不完全是我想要的,但这是我当前的策略。我需要根据用户的代码运行一些Python代码,但它实际上不必直接连接到用户的代码。所以我接下来要运行以下魔法:

%%javascript
// Get source code from cells
var source_code = Jupyter.notebook.get_cells().map(function(cell) {
    if (cell.cell_type == "code") {
        var source = cell.code_mirror.getValue();
        if (!source.startsWith("%%javascript")) {
            return source;
        }
    }
}).join("\n");
// Embed the code as a Python string literal.
source_code = JSON.stringify(source_code);
var instructor_code = "student_code="+source_code;
instructor_code += "\nimport ast\nprint(ast.dump(ast.parse(student_code)))\nprint('Great')"
// Run the Python code along with additional code I wanted.
var kernel = IPython.notebook.kernel;
var t = kernel.execute(instructor_code, { 'iopub' : {'output' : function(x) {
    if (x.msg_type == "error") {
        console.error(x.content);
        element.text(x.content.ename+": "+x.content.evalue+"\n"+x.content.traceback.join("\n"))
    } else {
        element.html(x.content.text.replace(/\n/g, "<br>"));
        console.log(x);
    }
}}});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取整个 Jupyter Notebook 的当前内容 的相关文章

  • 没有名为 crypto.cipher 的模块

    我现在正在尝试加密一段时间 我最近得到了这个基于 python 的密码器 名为PythonCrypter https github com jbertman PythonCrypter 我对 Python 相当陌生 当我尝试通过终端打开 C
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • Django 管理员在模型编辑时间歇性返回 404

    我们使用 Django Admin 来维护导出到我们的一些站点的一些数据 有时 当单击标准更改列表视图来获取模型编辑表单而不是路由到正确的页面时 我们会得到 Django 404 页面 模板 它是偶尔发生的 我们可以通过重新加载三次来重现它
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • 如何在 Python 中检索 for 循环中的剩余项目?

    我有一个简单的 for 循环迭代项目列表 在某些时候 我知道它会破裂 我该如何退回剩余的物品 for i in a b c d e f g try some func i except return remaining items if s
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • Spark KMeans 无法处理大数据吗?

    KMeans 有几个参数training http spark apache org docs latest api python pyspark mllib html highlight kmeans pyspark mllib clus
  • AWS EMR Spark Python 日志记录

    我正在 AWS EMR 上运行一个非常简单的 Spark 作业 但似乎无法从我的脚本中获取任何日志输出 我尝试过打印到 stderr from pyspark import SparkContext import sys if name m
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 绘制与Fig.show()内联的IPython Notebook图形?

    我正在使用 IPython Notebook 调用内联模式 pylab inline 以下代码立即在单元格处绘制一个图形 fig plt figure axes fig add axes 0 0 1 1 不过 我想在一个单元格中创建绘图 轴
  • 使用其构造函数初始化 OrderedDict 以便保留初始数据的顺序的正确方法?

    初始化有序字典 OD 以使其保留初始数据的顺序的正确方法是什么 from collections import OrderedDict Obviously wrong because regular dict loses order d O
  • Scrapy:如何使用元在方法之间传递项目

    我是 scrapy 和 python 的新手 我试图将 parse quotes 中的项目 item author 传递给下一个解析方法 parse bio 我尝试了 request meta 和 response meta 方法 如 sc
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2

随机推荐

  • 从 MySQL 转储中删除 DEFINER 子句

    我有一个数据库的 MySQL 转储 其中有 DEFINER 子句 如下所示 DEFINER root localhost 也就是说 这些 DEFINER 子句位于我的 CREATE VIEW 和 CREATE PROCEDURE 语句中 有
  • 使用 sed 反转输入顺序

    我有一个文件 我们将其命名为 a txt 该文件包含以下文本行 do to what 我想知道 SED 命令是什么来反转此文本的顺序 使其看起来像 what to do 我必须做某种追加吗 就像将 do 附加到 to 所以它看起来像 to
  • 寻找使用库版本的方法?

    我正在通过库在多个电子表格上部署脚本 但正如您所知 脚本 目前 还无法知道它是否正在运行最新版本 我试图通过为我的代码创建自己的版本控制来找到解决此问题的方法 我有一个 Web 服务返回我的库代码的最新版本号 以便我可以对其进行比较 但 o
  • 使用更新面板时服务器控件丢失其 CSS 样式

    我在用我的项目的模板 我在表单中使用了 updatepanel 在更新面板中我采用了 asp net 的不同下拉列表控件 现在的问题是 当页面回发时 应用于下拉列表的 css 样式会丢失 因为我对 CSS 没有详细的了解 所以请帮助 现在有
  • 在 re.sub 中使用变量,以便 Python 解析多个日期时间格式字符串?

    我试图想出一个函数来将各种人类日期 时间格式字符串转换为Python兼容的字符串 来自 yyyy MMM dd to Y b d 到目前为止 我构建了下面的翻译字典 元组列表 yyyy Y MMM b 这样我可以将输入格式字符串中的占位符字
  • 获取运行时权限错误 E/Minikin: addFont 未能创建字体 /system/fonts/NanumGothic.ttf

    我在 google 和 stackoverflow 上搜索了很多 我得到了这个错误 E Minikin addFont 无法在片段中创建字体 system fonts NanumGothic ttf 之后重新加载片段 请帮我解决这个问题 在
  • redux 减速器类型“从不”

    我想使用 useSelector 来选择 rootStore 的正确状态 但无法正确获取状态 原因是主题缩减器根状态给我类型never export type RootState ReturnType
  • 忽略 Xamarin.Forms (PCL) 中的 SSL 证书错误

    有没有办法做类似这里描述的事情 https stackoverflow com a 2675183 https stackoverflow com a 2675183但在 Xamarin Forms PCL 应用程序中 我正在使用 Http
  • Pandas 旋转一列,同时使用与列标题相同的列值

    我想在数据框中旋转一列 其中列值成为列标题 而这些列的实际值成为1 or 0 例子 movie id cluster id answer id 0 73 1 4 1 80 1 5 4 81 1 2 7 84 1 1 10 88 1 1 11
  • google Drive api 是否支持 2 足 oauth?

    现在 我们有一个带有 Google Docs Api 和 2 条腿的 oauth 的应用程序 但是 我们希望迁移到使用 Oauth 2 0 的 Google Drive Api 我们可以将 2 条腿的 oauth 与 Google Driv
  • 如何在工作项更改事件中获取对 TFS 工作项的引用?

    看起来这非常简单 但我正在努力寻找我需要的东西 我正在实现一个 TFS 2013 事件处理程序 并且只想获取对引发更改事件的工作项的引用 获取标题似乎很容易 但我在事件签名对象中找不到属性或方法来为我提供对 WorkItem 对象的引用或查
  • Azure Pipelines 中的 NG 构建失败,出现 NPM 错误 134

    大约 50 的托管构建失败 并出现 npm 错误 134 我正在使用托管 vs2017 构建具有相同构建定义的相同提交 我正在使用 Angular CLI 构建 Angular 应用程序 npm 任务调用 run build 它在我的 pa
  • TypeScript GUID 类? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道在 TypeScript 中像 GUID UUID 这样的 C 的良好 可靠的实现吗 我自己可
  • 当用户控件可见时将焦点设置到它

    I am showing a MessageBox and want the user to be able to copy the contents of the message using CTRL C The problem is t
  • 如何在应用程序启动时获取当前的 Facebook 访问令牌?

    在应用程序启动时 我需要知道用户是否已登录或未显示登录页面 我的第一次尝试是打电话AccessToken getCurrentAccessToken 但这不起作用 请参阅https stackoverflow com a 29854249
  • iOS 相机视频实时预览与拍摄的照片有偏移

    我正在使用相机工作 相机以实时反馈的形式呈现给用户 当用户单击时 就会创建图像并将其传递给用户 问题是图像被设计为位于最顶部位置 该位置高于实时预览显示的位置 您知道如何调整相机的框架 使实时视频的顶部与他们要拍摄的照片的顶部相匹配吗 我以
  • Apksigner 不验证签名

    我试图使用 apksigner 验证最新 Gmail 应用程序 版本 8 11 25 224 的签名 但失败了 I used apksigner verifiy verbose print certs
  • 使用 d3 在两个节点之间绘制多条边

    我一直在关注 Mike Bostock 的代码这个例子 http bl ocks org 1153292学习如何在 d3 中绘制有向图 并且想知道如何构建代码 以便可以在图中的两个节点之间添加多个边 例如 如果上例中的数据集定义为 var
  • 在 MatterJS 中如何通过标签访问主体?

    这个问题被问到了here https stackoverflow com questions 70477975 how to access a constraint by its label in matter js但没有给出答复 为了澄清
  • 获取整个 Jupyter Notebook 的当前内容

    我有一个正在运行的 Jupyter Notebook 我希望能够从 Python 中访问当前 Jupyter Notebook 的源代码 我的最终目标是将其传递到ast parse这样我就可以对用户的代码进行一些分析 理想情况下 我能够做这