你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。本周刊开源,欢迎
投稿。另有
电报频道作为副刊,补充发布更加丰富的资讯,欢迎关注。
🦄文章&教程
Ruff
所属团队用 Rust 开发的一个利器:Python 的包解析与安装器uv
!它被设计为 pip
和 pip-tools
的直接替代品,不使用缓存时比它们快 8-10 倍。也可通过 uv venv
用作虚拟环境管理器,比 python -m venv
快 80 倍,比virtualenv
快 7 倍。
Rust 正在逐步取代 C 语言成为 Python 的高性能后端支撑。文章介绍了 Rust 相比 C 的优势所在,介绍了用 Rust 开发的一些知名的 Python 库。
这篇文章略微标题党了,但是文章介绍的内容很完整:基于 RSS 的异步爬虫、倒排索引、搜索排名、基于 FastAPI 的 Web 网页。可以学习搜索引擎的工作原理,学习从数据获取、数据解析、开放接口、到网页呈现的项目开发流程。
你知道执行 Python 的
print("Hello")
大约需要多少个 CPU 指令么?答案是 17000。导入
seaborn
则需要大约 20 亿个。作者开发了
Cirron 库以计算 CPU 指令数、分支未命中数及代码的时间损耗等指标。
有多个装饰器要加在不同的函数上,而且相同的装饰器可能有不同传参,如何复用这些装饰器?问题初看可能不好理解,文章中有直观示例和解决过程,可以加深你对装饰器的理解和掌握高阶运用。
如何理解 Asyncio 中的 Task 对象?Asyncio 协程的工作原理是什么?如何等待一个任务,又如何等待多个或一组任务?文章介绍了 Asyncio 的工作原理以及任务处理相关的函数用法。
文章介绍了 textwrap
库的几个主要功能,例如 shorten() 裁剪字符串长度、wrap() 将字符串等宽分割、dedent() 处理字符串缩进等。
Python 的一些新特性是在什么版本引入的?作者为了方便,梳理了一些重要语法和标准库的变更记录,同时也指出了每个版本终止维护的时间(例如 Python 3.8 将在今年 10 月 EOL)。(附:这个
网站可以查看 Python 及很多项目的 EOL 时间)
直接将数据库作为队列使用,性能会不会很受影响?作者测试的结果是影响很小。具体该如何实现将 Postgres 作为队列使用?如何处理锁和事务、任务重试、处理任务超时等问题?
Django 框架适用于构建复杂的 Web 项目,作者介绍了自己常用的 20 软件包,在 Django 自身的核心功能之外,提供了更丰富的功能。
Python 中的元类是什么?为什么要学习元类?这个高级特性并不常用,但值得学习了解。文章介绍了元类的工作原理,并用现实例子演示它的强大用途。
一个编程挑战项目:有 100,000 个文件,每个文件 1000 万行,计算每个气象站的最低、平均和最高温度。数据存储在 S3 上,总大小 2.5 TB。作者给出了自己的实现(运行 8.5 分钟),以及优化成本的方案。
🐿️项目&资源
用 Rust 开发的速度极快的 Python 包安装器和解析器。Ruff 团队作品。可直接替换 pip
、 pip-tools
和 virtualenv
常用命令。(star 6.6K)
基于 Flask 开发的 Web 端 SQLite 管理工具,可视化管理数据库、数据表、数据项和索引等,支持 JSON 和 CSV 格式文件的导入导出。(star 2.6K)
实时获取 Celery 的任务状态、工作线程、活动任务数等监控指标,遵循 Prometheus 导出器最佳实践,并利用 Celery-mixin 提供了 Grafana 仪表板及 Prometheus 告警功能。
一个强力的工具和 pre-commit 钩子,可以自动删除冗余写法、用新语法重写过时的代码、用更优雅的写法重构代码,等等。项目文档中给出了很多例子,推荐阅读。(star 3.2K)