你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。另有电报频道作为副刊,补充发布更加丰富的资讯,欢迎关注。
本期分享了 12 篇文章,12 个开源项目,赠书 5 本《网络是怎样连接的》,全文 1900 字。
🦄文章&教程
这是一篇写于 2007 年的文章,介绍和对比了正则表达式的两种实现:传统方法和 Thompson NFA 方法。后者在某些任务上比传统方法快几百万倍,但使用普及度不及前者,作者呼吁编程语言可以改用后者。作者还写了 3 篇关于正则的文章,详见其文末。
作者不小心把本地代码删除了,然后设法中从运行中的 Docker 容器里恢复了自己的代码。使用到的库是pyrasite
和 uncompyle6
,文章介绍了具体的操作步骤。
这个 PEP 计划合入到 Python 3.13 版本,作者之一是我们国内的@高天。在早期 Python 中,所有命名空间都是用字典实现的,后来出于性能原因变更了函数命名空间的实现,但导致了一些奇怪的 BUG。此 PEP 提议将所有命名空间再次保持一致的实现。
作者开发了一个packaged
项目,可替代 pyinstaller 将 Python 项目打包成可执行文件。文章介绍了它的迭代实现过程,亮点之一是用到了 python-build-standalone ,还有特别的是用了可自解压的压缩工具 makeself 。
py.space
是最近推出的一个网站,是Anvil
的精简版,可开发在 Web 上运行的 Python 应用。这篇教程演示了该网站的基本功能。
文章利用 Python 3.12 的模式匹配、typing 的泛型并结合数据类,实现函数式编程的类似功能。现在 match-case 的使用场景不多见,文章做了很好的示范。
7、如何用 Python 动态生成 Github 个人主页 README?
Github 支持添加个人的自述文件,有很多开源项目可以让我们美化自己的主页。作者用 Python 实现抓取自己博客文章,利用 Github Actions 实现动态更新。我准备等有空也去试试。
pyastgrep
是作者开发的库,可使用 XPath 语法查询特定的 Python 语法元素。文章介绍如何用它作自定义的代码检查,执行其它工具无法满足的编码规范检查。
pygments
是一个可将代码或文本作高亮显示的库,作者为了在 PyCon 演讲时演示代码片段,于是用这个库生成自己的代码图片。文章介绍了具体的实现过程、优势和建议。
Llama 3 是当前开源大模型的佼佼者。文章详细介绍了这个模型的关键组件,在不依赖深度学习框架的情况下,使用纯 NumPy 实现 Llama 3 模型。
文章提出了一个暂时还无解的问题。AI 辅助编程已兴起,人类依赖 AI 完成的代码会越来越多,那么,关于这些代码的知识产权该如何判定,AI 生成部分在法律上是无版权的,由此可能会带来法律风险。
聪明的代码(clever code)很可能不是清晰的代码(clear code),建议大家不要滥用炫技式的一行流代码。代码的可读性至关重要,文章区别了好代码与坏代码,并给出了如何写出清晰代码的一些建议。
🐿️项目&资源
这个网站收录了一些可读写 Excel 文件的库(openpyxl、xlsxwriter、pyxlsb、pylightxl、xlrd、xlwt、xlutils)、可编写 Excel 加载项的库(PyXLL、xlwings)。
2、yen:Python 虚拟环境管理工具,无需预装 Python
号称是最简单的 Python 环境管理工具,无需预装 Python。一半的代码是 Rust。
这个仓库收录了一些编程题目,提升 PyTorch 水平。(star 2.8K)
提供了一个IoC(控制反转)容器,可简化对象的创建和管理,避免手动传递对象或使用全局变量。
5、hstream:将 Python 脚本转换为 Web 应用
基于 Django + HTMX,可将 Python 脚本转换为交互式的 Web 应用。
6、cover-agent:AI 自动生成测试,提升代码覆盖率
让 AI 来帮忙生成测试代码,有效提升代码覆盖率。目前主要是单元测试,仅支持在终端运行。(star 2.6K)
7、pygments:用 Python 开发的通用型语法高亮工具
前文已提到过这个语法高亮工具,它支持 500 多种语言和文本格式,可用于代码仓、论坛、wiki和其它需要美化源码的地方。(star 1.7K)
在数据仓库中定义和查询 BI 模型,表达式使用 Python 定义,编译为 SQL,能表达复杂的多层查询,能力超过标准 SQL。
这是 Hacker News 上的问答帖,提及的一些项目有:pymetrics、ddtrace、datadog、statsd、pyformance、prometheus 的 Python 客户端,等等。
基于tenacity
作了封装的重试库,亮点有:仅在某些异常时重试、指数退避、自动支持异步、可全局停用以作测试,以及拥有开箱即用的 Prometheus、structlog 和标准库 logging
支持。
通过 git push
命令将自己的应用部署到个人服务器上,不管服务器规模大小。支持 ARM 和 Intel 架构,适用于任何可以运行 Python、nginx 和 uwsgi 的云服务商或裸机。(star 2.6K)
根据自然语言生成为可执行的 SQL 语句,仅支持 PostgreSQL 数据库。
PS.有些海外的同学表示不用/很少用微信,不便访问小报童。为了照顾这些朋友,我开通了爱发电,欢迎使用这个平台来订阅。