你好,我是猫哥。本期周刊分享了 12 篇文章,12 个开源项目,2 则音视频,赠书 5 本《Python编程:从入门到实践(第3版)》。

🦄文章&教程

这篇文章提出了一个尖锐的问题:有些老师建议学生去开源项目上做事,但却没给出有效的指导,导致开源项目里出现很多无效的互动。建议想参与开源贡献的同学,不要犯这些错误:不要将练习 Git 操作的内容提交 PR 到原仓、不要破坏项目原有的 linter 和格式化规范、不要签到式打招呼……
f-string 很好用,而且很强大。文章介绍了一些经常使用的场景,例如对数字的处理(整数、浮点数、科学计数法等)、百分比、日期、填充、正负号等。
如何开发一个可以录制和转录语音的笔记应用?这篇教程使用 Django+OpenAI+AlpineJS 开发了一个简单的项目。
文章介绍了可提高 Web 项目安全性的 7 类实践,包括验证输入并清洗数据、使用安全的编码工具、使用最新 Python 及库、明智处理错误和记录日志、最小权限原则、使用 HTTPS 传输、定期作安全审计。
Fedora Linux 的一项提案,希望用 “-O3” 编译器优化标志来构建 CPython 解释器和标准库,预计整体上可提升 Python 性能 1.04 倍。提案对应的版本是 Fedora 41 和 Python 3.13。
Ruff 又发布新版本啦,新的解析器速度提升 2 倍,这意味着所有 linting 和格式化的速度提升 20-40%。文章介绍了这个手写解析器相比旧解析器,带来了诸多优点。(感叹一句,Astral 团队可太会做 build in public 了!)
RSS 是个好东西,强烈建议所有人都用!个人博客的标配是提供 RSS 源,Django 框架有Syndication 可创建 RSS 源,但默认情况难以阅读,文章介绍了如何给 RSS 源加上样式。(附:我的博客也做了 RSS 预览美化
如何快速判断一个元素是否在某个集合中?最流行的方法是布隆过滤器,但还有别的过滤器,文章介绍了最近推出的二进制熔断过滤器,速度更快,内存占用更低。介绍了pyxorfilter 库的使用,这个仓的文档中指出了两篇学术论文,感兴趣的读者可以研读一下。
Code Review(代码评审)是项目开发时的关键环节,值得关注的评审点有不少,作者分享了 3 个曾忽视的重要的小事:命名、指引性注释、以及沟通方式。文中总结的要点对提升代码可维护性和塑造团队氛围有重要作用。
作者有一个很好的出发点:各大 APP 有年度总结,我们每天用键盘,为何不给它来个工作总结?用pynput 库可监听键盘与鼠标事件,实现统计功能。文章还介绍了用tkinter 开发一个简单的查看界面。
上界版本约束(Upper Bound Version Constraints)是一种指定软件包最高可安装版本的机制。这篇万字长文主要指出了这种机制的诸多弊端、解释了语义化版本控制(SemVer)的概念及其局限性。
作者最近花了几周为自己的编程语言开发了一个代码格式化工具,文章介绍了技术实现上的一些知识点,主要是如何处理各种抽象语法树 (AST),包括文本、空格、缩进、宽度、内容渲染、注释的处理,等等。(附:作者去年写的 开发编程语言的十年

🐿️项目&资源

用 Rust 开发的高性能静态代码分析器,比 pytype 和 pyright 快 100 倍以上。可检测列表越界和字典不存在的键,支持语言服务器的各种功能如代码补全和重命名等。(star 1.9K)
Claude 官方推出的 cookbook,一系列的资源和教程。(star 2.7K)
一个使用 Kubernetes 的工作流编排器,可定义并运行容器的 YAML 工作流。提供@flow.task() 装饰器,每个 Python 函数可作为 Kubernetes pod 运行。
用于从代码仓下载文件,方便提供给聊天机器人使用。支持根据语言筛选、可排除某些目录/文件类型和测试文件、支持删除注释和文档字符串。
知识内容密集的速查表,专注于 Python 核心内容、全面而精选。
专为斗地主设计的强化学习框架。斗地主包含合作、竞争、非完全信息、庞大的状态空间和动作空间。它提出了将深度蒙特卡洛与动作编码和并行演员相结合的方法,提供了一个简单而有效的解决方案。(star 3.9K)
支持多种仪表板的无缝集成,首选的推荐是Homepage 、Homarr 和Dashy 。(star 4K)
newspaper3k 是一个拥有 13.7K star 的项目,用于从网站中提取各种元素,能识别 10 多种文字语言。但该项目已有 3 年多没更新了,newspaper4k 是它的复刻分支,添加了许多功能,修复了不少问题。
由 marian 和 Bergamot 提供支持,在本地作翻译,提供 CLI 和 GUI 使用方式。
在运行时将 print 语句直接插入到 AST 中,可打印变量赋值和其他信息。用法简单,constable.trace 装饰器在要追踪的变量发生赋值时,将 print 语句插入到函数的 AST 中。
用于处理文本数据的 Python 库,用于深入研究常见的自然语言处理任务,如词性标记、名词短语提取、情感分析、分类等。(star 8.9K)
基于微信读书生成 RSS 订阅(支持.atom.rss.json格式),自动定时更新内容,支持全文输出,支持将订阅源导出 OPML。(star 2.7K)

🐢播客&视频

菲律宾第 9 年举办 PyCon 活动,这份演讲视频列表共有 37 个视频。
2024年菲律宾PyCon演讲视频
如今的 LLM 已如雨后春笋般遍地开花,个人开发者训练 LLM 的条件越来越便利。这则视频介绍了 LLM 的相关概念,以及训练 LLM 所需的知识。作者的另一则视频会动手实践,通过示例将理论运用起来。