用Jupyter开发识字包
literar的Python项目详细描述
文学的
这个包是对literate programming思想pioneered by
Donald
Knuth的探索,并在
^{nbdev
看起来是
成熟全面的工具,很有主见。这个包裹是
调查更小的nbdev
可能是什么样子。在
哲学
- 低精神开销
实际上,大多数希望编写包的Python程序员都需要有一些 熟悉Python包开发模型,包括传统的 包的结构。因此,我觉得设计是很重要的 ^用这些技巧直接翻译这些库 笔记本电脑 - 最小下游影响
literary
软件包的用户不应该意识到他们在消费 笔记本在运行时生成代码。这意味着纯Python包需要 是由笔记本电脑生成的,它必须使用传统的导入模式。为 这个原因,literary
应该只作为 包裹。在
与nbdev
的区别
- 使用单元格标记而不是注释或magics命令导出
- 使用
nbconvert
机制构建纯Python lib包 - 使用导入挂钩导入其他笔记本
- 维护与传统模块类似的编程模型 发展
- 减少了在转换过程中修改笔记本内容的需要
- 运行时开销最小
- 像
patch
这样的功能将使用AST转换从生成的模块(导入的笔记本源代码)中删除
- 像
- 目前没有文档生成
- 松散地说,计划是使用现有的笔记本工具来重用 现有Jupyter生态系统
设计
该方案的计划是:
- 笔记本将被写在文学项目根目录的
<PACKAGE_NAME>/
内 - 笔记本将尊重相对导入和其他纯Python特性,以尽量减少生成的包与笔记本之间的差异
- 在Poetry构建最终项目之前,将构建一个纯python生成的
lib/<PACKAGE_NAME>/
目录。
例如。[tool.poetry]# ...packages=[ { include = "<PACKAGE_NAME>", from = "lib" },]
在
- 项目
标签: