用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第三方库


热门话题
apache HttpClient execute(HttpUriRequest请求)和execute(HttpHost目标,HttpRequest请求)之间的java差异   如何向java进程传递多个密码   java servlet从外部事件调用网页中的javascript弹出/模式对话框   正在重置Unix Java路径变量   java将@Named managed bean注入另一个重用JSF页面?   java Cookie未显示在请求中   java如何记录用户的操作并在用户返回时重播?   java FTPSClient抛出异常javax。网ssl。SSLHandshakeException:握手期间远程主机关闭连接   java“变量可能尚未初始化”在何处使用开关盒进行初始化?   初始化Double java数组   java Android:如何通过按钮启动活动?   java设置外观和感觉颜色   计算两个时间戳对象之间的时间差的日期   扩展画布的类时,绘制方法出现java错误   java在不同的线程中运行JNI方法   java Spring引导OIDC刷新令牌场景   Java slf4j实现:logback vs log4j   java KeyEvents新的KeyEvent变量?   为什么java的模式和匹配器类中没有公共构造函数?   java在JVM上禁用本地JMX连接