你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。周刊开源在 Github 上,喜欢请给颗小星星支持下~

本期分享了 11 篇文章,12 个开源项目,全文 1514 字。

**重要提示:**本周刊即将迎来第 100 期,即日起续订或新订阅,可享受八五折优惠,欢迎领取优惠券 —> https://www.xiaobot.net/coupon/d2c69b05-91b8-4e2b-b346-e7bc4dbc141a

🦄文章&教程

1、如何解决 FastAPI 的大文件传输问题?

使用 FastAPI/Starlette 作大文件传输时,为何会比其它框架慢?在文件上传和下载场景中,作者分别对比了不同实现方案的性能差异,剖析了问题原因,并分享了多种性能优化方案。

2、Python 运行实战–第1部分:为什么它让人痛苦?

Python 写起来很棒,但维护起来可能令人沮丧。文章分析了 Python 让人感觉痛苦的一些原因,比如不同编程文化碰撞和包依赖管理,最后分享提升可维护性的建议。

3、Python Discord 2024 调查报告

Python Discord 社区 2024 年的调查结果,涵盖用户编程经验、社区参与度、学习资源使用、帮助寻求与提供、社区活动体验、语音频道使用、开源贡献意向等方面。

4、尝鲜体验 Astral 的 Red Knot 静态类型检查器

Ruff 和 uv 所属团队正在开发一个 Python 类型检查器,旨在成为 mypy 的替代。文章介绍了 Red Knot 的安装、配置和使用方法,并通过与 mypy 的比较和性能测试,展示了其在速度上的显著优势。

5、最佳实践:高性能的 Django Admin

针对 Django Admin 在处理大数据集时的性能问题,文章介绍了多种优化策略:限制排序字段、调整分页大小、使用估算计数、缓存、优化搜索字段等。

6、PEP-776:支持 Emscripten

PEP-776 提议在 Python 3.14 将 Emscripten 添加为 Tier 3 支持。Emscripten 是一个编译器工具链,可将 C/C++ 代码编译为 WebAssembly/JavaScript,适用于浏览器和 Node.js 等 JavaScript 运行时。

7、使用双向生成器实现二分搜索

文章提出了一种基于双向生成器的二分查找实现,利用 Python 生成器的 send 方法来动态调整算法行为。该方法可扩展成无届搜索,提供了新的实现思路。

8、布尔类型参数的陷阱

作者指出在函数或 API 中使用布尔参数容易引发问题,如代码可读性差、扩展性受限及潜在错误,建议使用枚举作为替代方案。

9、重新发明 notebook 为可重用的 Python 程序

Marimo 是一种新型的 notebook,不同于传统的 Jupyter notebook,它保存的是 Python 文件,解决了版本控制、代码复用和测试等痛点,同时支持导入和作为脚本执行等用途。

10、Python 编程与编织艺术

用代码编程与用毛线编织,它们能有什么关系呢?除了需要耐心、逻辑和创造力,文章还分享了几组有趣的对照关系。

11、“主动型枚举”模式

文章指出传统的枚举存在维护困难、行为与数据分离等问题,因此提出了“Active Enum”模式,使枚举不仅作为数据容器,还能主动执行相关操作。演示了具体代码示例,揭示了它的优势、可能遇到的问题和对应的解决方案。

🐿️项目&资源

1、docs:可扩展的协作笔记、wiki 和文档平台

用 Django 和 React 开发的协作式文档编辑器,是 Notion、Outline 与 Confluence 的开源替代。(star 8.9K)

2、mcp-tool-kit:MCP 协议的代理抽象层

MCP(Model Context Protocol)中间件,用于开发高精度的垂直人工智能 agent。

3、eventure:事件驱动框架,用于仿真、游戏和复杂系统

纯 Python 实现的事件驱动框架,功能特性:事件驱动、事件溯源、基于 Tick 的系统、高级事件查询、开箱即用的示例、类型安全。

4、html5lib-python:用于解析和序列化 HTML 文档

纯 Python 实现的 HTML 解析库,符合 WHATWG HTML 规范。(star 1.2K)

5、Run Python Online:在浏览器中运行 Python 代码

一个在线执行 Python 脚本的网站,提供了浏览器中的 Python 编译器和 IDE,内置了常用的 Python 库,支持文件上传下载。

6、rusty-graph:Rust 开发的高性能图数据库库

将 SQL 关系型数据高效转化为知识图谱,通过 Rust 实现底层高性能计算,提供 Python 绑定降低使用门槛。

7、aiopandas:轻量级 Pandas 猴子补丁,添加异步支持

使用猴子补丁让 Pandas 的 map、apply、applymap、aggregate 和 transform 支持异步。

8、basic-memory:基于 AI 助手的对话构建持久语义图

这是一个知识管理系统,利用与大模型的对话来构建持久化知识,保存成 Markdown 文件。

9、Python 开发者工具手册

在线电子书,主旨是帮你理解开发 Python 包的复杂生态:uv、Poetry、Flit、Setuptools 和 Hatch 到底是什么?它们的优缺点是什么?如何比较和取舍?另外,还涵盖了代码审查、格式化和依赖管理的内容。

10、mcp-agent:使用 MCP 和简单工作流开发高效的 agent

一个简单可组合的 agent 开发框架,使用 MCP 协议和 Building Effective Agents 中描述的所有模式。(star 1.6K)

11、InkyPi:Raspberry Pi 驱动的 E-Ink 显示屏

开源、可定制的 E-Ink 显示屏,提供 Web 界面可用于任何联网设备,易于安装和配置,支持定时播放列表。(star 1K)

12、physicsnemo:NVIDIA 开源深度学习框架

使用最先进的 SciML 方法构建、训练和微调深度学习模型。提供了工具和优化管道,可开发结合物理知识和数据的 AI 模型,实现实时预测。(star 1.3K)

🐢播客&视频

1、Web 项目的架构选择:SPA 与 HTMX

视频探讨了选择单页应用(SPA)和服务器端渲染应用的影响因素,比如状态管理、用户体验管理、性能和可扩展性、项目限制和开发团队专业知识等。

2、为什么 Python 开发者只用 PostgreSQL?

Talking Postgres 播客讨论了为什么特别多 Python 和 Django 开发者对 Postgres 情有独钟?嘉宾是 Python 软件基金会主席,其新书《领域驱动 Django》有一章为“Just Use Postgres”。

🐧 往年回顾

Python 潮流周刊#44:Mojo 本周开源了;AI 学会生成音乐了(2024.03.30)

🐱欢迎订阅

技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅,每周将收到一篇文章推送,每周进步一点点。

欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!

欢迎将本专栏分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得 50% 的返利。

Python 潮流周刊第 2 季完结了,分享几项总结

Python 潮流周刊第一季精华合集(1~30)

万字浓缩版,Python 潮流周刊第 1 季的 800 个链接!

🚀关联阅读

上一期:Python 潮流周刊#93:为什么“if not list”比len()快2倍?

下一期:Python 潮流周刊#95:像人类一样使用计算机