多核/多会话Jupyter科学报告生成器和识字编程工具。

metys的Python项目详细描述


大都会

Metys是一个科学的报告生成器和一个类似于 刀或刀。和pweave一样,metys使用jupyter协议运行代码 嵌入到源文档中。与pweave不同,metys可以访问多个 jupyter内核位于同一个源文档中,还可以创建多个 同一内核的不同会话。

Metys目前是Alpha级软件。

处理Metys文档

Metys当前使用以下命令行运行。

metys foo.tmt

有许多命令行选项可用。将显示简短的说明 具有以下功能。

metys --help

输入格式

metys可以解析noweb、markdown或metys格式的源文档。格式 源文档的 --parser命令行选项(如果指定)。带有文件的源文档 以nw结尾的扩展名假定为noweb文档。有档案的 以md结尾的扩展名假定为标记文档。所有其他文件 假设为Metys格式。

分析源文档会产生一系列逻辑块。这些块 是文本、代码或组块。文本块包含复制的文本 逐字记录到输出文档。代码块由jupyter内核计算 结果在输出文档中按照本地和全局 指定的选项。组块用于设置 分块或包含包含更多文本、代码和组分块的子文件。

noweb格式

noweb格式的文档可以包含文本或代码块,但不能包含组 块。文本块前面的一行只包含@。代码块 前面有一行包含<;..>;=,其中..表示 键/值选项。文本和代码块都由开始的标记终止 新的一块。noweb文档中的第一个块假定为文本块。

在下面的示例文档中,要求maxima核求解一个三次方程, 一些代码被发送到python,然后maxima被要求绘制一个函数。拜托 请注意,缺少值的键值选项假定为块名称。 换句话说,<;<;foo,kernel=python>;=等同于 <;<;name=foo,kernel=python>;=

Let's ask Maxima to solve a cubic equation.
<<kernel=maxima>>=
solve(x^3+x+1=0,x);
@
Next let Python say hello and have Maxima plot a hyperbolic paraboloid.
<<kernel=python>>=
print('Hello world!')
<<foo, kernel=maxima>>=
plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
  [mesh_lines_color, false], [svg_plot, "m.svg"]);
@
That's all for now.

降价格式

标记格式的源文档可以包含文本或代码块,但不能 分组块。代码块由一对单回勾号或 一对三叉棍。这与普通标记使用的分隔符相同 为了指示代码,不同之处在于metys需要一组键/值 由大括号或一组空大括号包围的选项。

下面的示例文档完成与前面的noweb相同的任务 例子。与noweb不同,假定文档键值选项没有值 作为内核名,而不是块名。

Let's ask Maxima to solve a cubic equation.

```{maxima}
solve(x^3+x+1=0,x);
```

Next let Python say hello and have Maxima plot a hyperbolic paraboloid.
`{python} print('Hello world!')`

```{maxima, name=foo}
plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
  [mesh_lines_color, false], [svg_plot, "m.svg"]);
```
That's all for now.

Metys格式

Metys格式的文档可以包含文本、代码或组块。比如降价 假设整个文档处于文本模式,因此只有代码和组块 有分隔符。代码块和组块都由<;开始并终止 通过>;。在打开分隔符后,可以指定键/值选项,直到 接收到块分隔符。块的其余部分则是代码或 组数据。块分隔符是@。使用分隔符 对于代码块,分隔符用于内联代码,@ 分隔符用于组块。例如,下面使用组 在调用maxima内核和 一个python内核。

<|maxima@
Let's ask Maxima to solve a cubic equation.

<|:solve(x^3+x+1=0,x);|>

Next let Python say hello and have Maxima plot a hyperbolic paraboloid.
<|python|print('Hello world!')|>

<|name=foo:
plot3d (u^2 - v^2, [u, -2, 2], [v, -3, 3], [grid, 100, 100],
  [mesh_lines_color, false], [svg_plot, "m.svg"]);
|>
That's all for now.
|>

请注意kernels和sessions是最内层封闭的本地 分组块。

块选项

块选项可以在所有输入格式中指定为键/值对列表 以逗号分隔。每个键/值对都包含一个名称,后跟一个 等号和值。缺少等号和值被视为 要分配给默认键的值。noweb格式的默认键是 名称。对于所有其他格式,默认键是kernel

密钥名称可以包含字母和下划线的任意组合,以及 用于指定子选项的单个句点。例如,下面 指定Maxima内核,其乳胶代码环境为逐字frame=single作为逐字环境选项。

<|maxima, code_env=Verbatim, code_env_options.frame=single:
solve(x^3+x+1=0,x);
|>

下表列出了可用的块选项以及 每个选项。

<表><广告>名称键入默认值说明 < /广告><正文>代码回声布尔值true启用代码输入的回声。编码环境字符串逐字记录 乳胶的代码环境。编码环境选项字符串/子选项无 乳胶的代码环境选项。评估 布尔值true启用代码输入评估。展开"选项"布尔值false在代码输入中启用选项扩展。图形标题字符串无 图片标题。图形环境字符串模拟乳胶的环境。图形路径字符串图形目录。图形环境选项字符串/子选项无 绘制乳胶的环境选项。图形前缀字符串图:乳胶的图形标签前缀。格式 乳胶降价无 输出文件的格式。图形选项字符串/子选项无 乳胶的图形选项。内联 布尔值无 启用内联输出格式。输入 字符串无 块的输入文件路径。内核字符串无 Jupyter内核。数学环境字符串公式显示乳胶的数学环境。数学前缀字符串均衡器:乳胶的数学标签前缀。名称字符串无 块名称。用于文件名和标签。输出 字符串无 块的输出文件路径。分析器降价大都会现在无 用于输入文件的分析器。结果布尔值true启用代码结果输出。会话字符串无 特定内核会话的唯一标识符。标准回声 布尔值true启用stderr的echo。标准环境字符串逐字记录 Stderr乳胶环境。stderr_env_选项字符串/子选项无 Stderr乳胶环境选项。标准输出回声布尔值false启用标准输出的回声。标准输出环境字符串逐字记录 用于乳胶的标准输出环境。标准输出环境选项 字符串/子选项无 乳胶的标准输出环境选项。包装数学布尔值true启用数学结果包装。

请不要认为某些选项是自动推导出来的,或者可能有特殊的 行为。例如,

  • 如果未指定,格式选项将自动设置。如果语法分析器是 设置为markdown格式也为。否则格式设置为 乳胶

  • 自动为markdown和metys文档设置inline选项,但是 不适用于NoWeb文档。

  • 输入选项对于文本/代码块与组具有不同的行为 块。对于组块,块内容替换为内容 解析后由input指定的文件。用于文本或代码 分块文件的内容包括在内而不进行任何分析。

  • 默认情况下,内核选项未设置,但将设置为 扩展名为.pmd的输入文件,对于带有 扩展.rmd

  • 输出选项将任何块输出写入 选项与将输出写入主输出文档相比。

  • 会话选项将允许同一内核的多个单独会话 存在。例如,下面的文档将有两个独立的python 内核活动。在默认会话中,x的值为3,而在 foosessionx的值为4。

    Wibble <|python|x=3|>, wibble <|python,session=foo|x=4|>, quux <|python|x|>.
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
netbeans根据命名约定返回布尔类的getter的Java名称   java如何在MessageFormat中使用单引号   java如何在整数数组中只对奇数排序,而将偶数保留在其原始位置?   自定义ArrayAdapter中未定义java构造函数   java joda时间格式化程序解析yyyyymmdd(额外一小时)   java Spring引导控制器测试始终返回404   java如何提取类文件以获取该类文件中的类?   JTable java列不会显示   java Selenium Web驱动程序输出错误的Web表行数   当应用程序在mac上打开时,java SWT选项卡项会从页面上消失   java如何将html文件映射到过滤器   swing Java计算一段时间内两点之间的转换   javawebsphere和javax。xml。ws。spi。提供者:提供者组织。阿帕奇。axis2。jaxws。spi。提供者不是子类型   For循环在Java中没有按预期继续?   java如何配置gson以排除0个整数值   java读取一个由tab分隔的文件,并将单词放入ArrayList中   java我需要做什么才能让LiveConnect重新工作?   sqlservermerge2xml&使用java提取这些数据并将其存储在db表中   java如何在模型中添加新对象时通知网格