用Jupyter开发识字包

literar的Python项目详细描述


文学的

pypi-badgebinder-badge

这个包是对literate programming思想pioneered by Donald Knuth的探索,并在 ^{} package。尽管nbdev看起来是 成熟全面的工具,很有主见。这个包裹是 调查更小的nbdev可能是什么样子。在

哲学

  1. 低精神开销
    实际上,大多数希望编写包的Python程序员都需要有一些 熟悉Python包开发模型,包括传统的 包的结构。因此,我觉得设计是很重要的 ^用这些技巧直接翻译这些库 笔记本电脑
  2. 最小下游影响
    literary软件包的用户不应该意识到他们在消费 笔记本在运行时生成代码。这意味着纯Python包需要 是由笔记本电脑生成的,它必须使用传统的导入模式。为 这个原因,literary应该只作为 包裹。在

nbdev的区别

  • 使用单元格标记而不是注释或magics命令导出
  • 使用nbconvert机制构建纯Python lib包
  • 使用导入挂钩导入其他笔记本
    • 维护与传统模块类似的编程模型 发展
    • 减少了在转换过程中修改笔记本内容的需要
  • 运行时开销最小
    • patch这样的功能将使用AST转换从生成的模块(导入的笔记本源代码)中删除
  • 目前没有文档生成
    • 松散地说,计划是使用现有的笔记本工具来重用 现有Jupyter生态系统

设计

该方案的计划是:

  1. 笔记本将被写在文学项目根目录的<PACKAGE_NAME>/
  2. 笔记本将尊重相对导入和其他纯Python特性,以尽量减少生成的包与笔记本之间的差异
  3. 在Poetry构建最终项目之前,将构建一个纯python生成的lib/<PACKAGE_NAME>/目录。
    例如。
    [tool.poetry]# ...packages=[  { include = "<PACKAGE_NAME>", from = "lib" },]

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

推荐PyPI第三方库


热门话题
java使用jain api上的编解码器信息自动创建sdp消息   显示素数误报的java程序   java如何从存储x、y值和整数索引之间的时间变化的两个数组列表创建动画?   java CompletableFuture:转换与组合   具有多个in运算符的java CrudePository findBy方法签名?   java:扩展小程序进程超时   java如何做mvn scm插件匿名pserver cvs访问   java如何在选中项目时将项目从一个活动发送到另一个活动   java存储子网的最佳数据结构,用于将Ip地址与子网匹配   java Jackson序列化以报告无法序列化的字段列表   如何将java mysql连接器导入IntelliJ?   如果java只在构造函数中编写,它是线程安全的集合吗?   java正则表达式捕获组在OR运算符后返回null   java使用Jackson在运行时将实体动态序列化为其ID或完整表示形式