告别信息碎片,「Python潮流周刊」为你带来最优质的Python技术资讯

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。另有电报频道作为副刊,补充发布更加丰富的资讯,欢迎关注。

本期分享了 12 篇文章,12 个开源项目,赠书 5 本《网络是怎样连接的》,全文 1900 字。

🦄文章&教程

1、正则表达式匹配可以很简单且高速

这是一篇写于 2007 年的文章,介绍和对比了正则表达式的两种实现:传统方法和 Thompson NFA 方法。后者在某些任务上比传统方法快几百万倍,但使用普及度不及前者,作者呼吁编程语言可以改用后者。作者还写了 3 篇关于正则的文章,详见其文末。

注意图中单位,一个是秒,一个是微秒

2、如何利用内存中还在运行的代码,恢复已删除的源码?

作者不小心把本地代码删除了,然后设法中从运行中的 Docker 容器里恢复了自己的代码。使用到的库是pyrasiteuncompyle6 ,文章介绍了具体的操作步骤。

3、PEP-667:命名空间的一致视图

这个 PEP 计划合入到 Python 3.13 版本,作者之一是我们国内的@高天。在早期 Python 中,所有命名空间都是用字典实现的,后来出于性能原因变更了函数命名空间的实现,但导致了一些奇怪的 BUG。此 PEP 提议将所有命名空间再次保持一致的实现。

4、用 100 行代码替换 pyinstaller

作者开发了一个packaged 项目,可替代 pyinstaller 将 Python 项目打包成可执行文件。文章介绍了它的迭代实现过程,亮点之一是用到了 python-build-standalone ,还有特别的是用了可自解压的压缩工具 makeself

5、py.space:免费开发在线的 Python 应用

py.space 是最近推出的一个网站,是Anvil 的精简版,可开发在 Web 上运行的 Python 应用。这篇教程演示了该网站的基本功能。

6、使用 Python 3.12 作静态类型函数式编程

文章利用 Python 3.12 的模式匹配、typing 的泛型并结合数据类,实现函数式编程的类似功能。现在 match-case 的使用场景不多见,文章做了很好的示范。

7、如何用 Python 动态生成 Github 个人主页 README?

Github 支持添加个人的自述文件,有很多开源项目可以让我们美化自己的主页。作者用 Python 实现抓取自己博客文章,利用 Github Actions 实现动态更新。我准备等有空也去试试。

8、用 pyastgrep 作自定义 linting

pyastgrep 是作者开发的库,可使用 XPath 语法查询特定的 Python 语法元素。文章介绍如何用它作自定义的代码检查,执行其它工具无法满足的编码规范检查。

9、使用 pygments 生成代码片段的图片

pygments 是一个可将代码或文本作高亮显示的库,作者为了在 PyCon 演讲时演示代码片段,于是用这个库生成自己的代码图片。文章介绍了具体的实现过程、优势和建议。

10、使用纯 NumPy 实现 Llama 3

Llama 3 是当前开源大模型的佼佼者。文章详细介绍了这个模型的关键组件,在不依赖深度学习框架的情况下,使用纯 NumPy 实现 Llama 3 模型。

11、AI 帮你写的代码,所有权归谁?

文章提出了一个暂时还无解的问题。AI 辅助编程已兴起,人类依赖 AI 完成的代码会越来越多,那么,关于这些代码的知识产权该如何判定,AI 生成部分在法律上是无版权的,由此可能会带来法律风险。

12、聪明的代码可能是你写过最糟糕的代码

聪明的代码(clever code)很可能不是清晰的代码(clear code),建议大家不要滥用炫技式的一行流代码。代码的可读性至关重要,文章区别了好代码与坏代码,并给出了如何写出清晰代码的一些建议。

🐿️项目&资源

1、用于处理 Excel 的 Python 资源

这个网站收录了一些可读写 Excel 文件的库(openpyxl、xlsxwriter、pyxlsb、pylightxl、xlrd、xlwt、xlutils)、可编写 Excel 加载项的库(PyXLL、xlwings)。

2、yen:Python 虚拟环境管理工具,无需预装 Python

号称是最简单的 Python 环境管理工具,无需预装 Python。一半的代码是 Rust。

3、Tensor-Puzzles:21 个张量谜题

这个仓库收录了一些编程题目,提升 PyTorch 水平。(star 2.8K)

4、dishka:依赖注入框架

提供了一个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)

8、hashquery:在数据仓库中定义和查询 BI 模型

在数据仓库中定义和查询 BI 模型,表达式使用 Python 定义,编译为 SQL,能表达复杂的多层查询,能力超过标准 SQL。

9、Python 有哪些指标监测库?

这是 Hacker News 上的问答帖,提及的一些项目有:pymetrics、ddtrace、datadog、statsd、pyformance、prometheus 的 Python 客户端,等等。

10、stamina:可用于生产的 Python 重试库

基于tenacity 作了封装的重试库,亮点有:仅在某些异常时重试、指数退避、自动支持异步、可全局停用以作测试,以及拥有开箱即用的 Prometheus、structlog 和标准库 logging 支持。

11、piku:支持对自己的服务器作 git 推送部署

通过 git push 命令将自己的应用部署到个人服务器上,不管服务器规模大小。支持 ARM 和 Intel 架构,适用于任何可以运行 Python、nginx 和 uwsgi 的云服务商或裸机。(star 2.6K)

12、mql:用自然语言输入生成 SQL 查询

根据自然语言生成为可执行的 SQL 语句,仅支持 PostgreSQL 数据库。

PS.有些海外的同学表示不用/很少用微信,不便访问小报童。为了照顾这些朋友,我开通了爱发电,欢迎使用这个平台来订阅。

支持 Python猫