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

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

🦄文章&教程

1、是时候停止使用 Python 3.8 了

Python 3.8 发布于 2019 年 10 月,将在今年 10 月 End Of Life,之后即便有安全漏洞,也不会再发布修复版本!一些三方库和框架,也将停止对 Python 3.8 的支持,因此,尽快升级到较新版本吧。(附:下个月要发布 Python 3.13 了,什么时候升级到 Python 3.13 比较好?

2、多版本 Python 库的思考

如何让一个库同时依赖多个版本的其它库,例如 pydantic 1.x 和 2.x?作者在思考它的可能性,并提出了一种端到端的解决方案,讨论了需要解决的技术问题。

3、为什么我要从 Pandas 切换用 Polars?

作者决定将自己的 Pandas 项目切换到 Polars,文章解释了这么做的原因:起决定作用的并不是因为 Polars 更快,而是因为它语法直观,更易于记忆和使用。文章对比了 Polars、Pandas、Tidyverse 和 Base R 处理 CSV 文件的代码。

4、我们如何将 Jupyter Notebook 的加载速度提高 10 倍?

作者的产品中嵌入了 Jupyter iframe,加载耗时很长。通过将 JupyterLab 的 UI 与后端服务分离、并行加载、模拟静态请求、预渲染扩展 UI 等措施,最终得到 87% 提升。

5、异步 IO:下一个 10 亿美元的错误?

作者提出一个疑问,异步IO(非阻塞IO)算得上是“十亿美元错误”么?在平行宇宙中,如果我们花的二十年是在提升操作系统的线程性能,会不会有更好的结果?

6、使用各种 Web 框架开发相同的程序

用不同的 Web 框架来开发相同功能的项目,能够看出些什么?作者分别用 FastAPI + Jinja + HTML + CSS + JavaScript、FastHTML、Next.JS、SvelteKit、FastAPI + Svelte 做了实验。FastHTML 的表现让人眼前一亮。

7、用 Weaviate 和 Streamlit 开发一个电影推荐应用

Weaviate 是一个 AI 原生数据库,可简化数据存储、检索和查询的复杂性,并与 AI 模型集成。文章介绍用它和 Streamlit 开发一个接受自然语言的电影推荐应用,支持关键词、语义和混合搜索模式。

8、用于 Docker 构建的 PyPI 代理

能否通过在本地缓存 PyPI 数据来改进 CI 系统?作者探索了两种方法:在构建期间挂载缓存,使用代理服务器 Proxpi。介绍了如何使用 Docker 和 Docker Compose 来设置Proxpi。

9、被 Unicode 咬伤了

作者遇到了一个 Unicode 问题,因为连字符在视觉上与减号相似(HYPHEN-MINUS 和 HYPHEN),导致负数金额错误使用了连字符而被解析为正数。文章介绍了如何用标准库 unicodedata 来识别和区分这两种符号。

10、Rust 用于小型任务?那么 Python 呢?

Rust 在数据工程的特定任务重越来越受欢迎,例如 Polars,但是由于它代码冗长,在许多场景中并不及 Python 的简单易用。文章作了简单代码对比,能看出 Python 在快速开发和原型设计中更具优势。

11、Go 与 Python 无服务器应用:性能、成本和易用性

Serverless 让开发者关注于开发应用,而无需担心底层的基础设施。那么,Go 和 Python 在无服务器应用开发中,有何优劣呢?文章从三个维度对它们作了比较。

12、Google Trends API 替代方案:维基百科网页浏览统计

Google Trends 没有官方的 Python API,但非官方的 API 并不可靠,因此作者寻找替代方案来了解搜索及话题趋势。文章介绍了维基百科相关 API 的使用。

🐿️项目&资源

1、polar:开源的 Lemon Squeezy 替代品

面向开源和独立开发者的一体化的资金和商业化平台,售卖数字产品和订阅制产品,包括 Github 代码库、Discord 频道、文件下载和许可证等。(star 2.6K)

2、gigi:用于实时渲染的原型设计和开发框架

用于快速原型设计和开发实时渲染技术。包括编辑器、查看器和编译器三个组件,支持 DirectX 12 代码生成。

3、nestedtext:一种用户友好的数据格式

一种保存结构化数据的文件格式,与 JSON 类似,可直观输入、编辑和查看。只支持字符串类型,不支持其它类型(整数、实数、布尔类型等)。

4、maestro-cli:在命令行中播放音乐或任意音频

一个命令行工具,可播放音频。支持 YouTube、YouTube Music 和 Spotify 的歌曲,支持歌词、剪辑、按标签过滤、统计数量、音频可视化、音乐发现。

5、repo2file: 选定代码仓多文件,转储成单个文件

将代码仓的文件转储到单文件中,便于在 RAG 和 LLM 中使用。支持整个代码仓、遵循 .gitignore、可按文件类型筛选。

6、edx-platform:Open edX LMS 和 Studio

一个面向服务的平台,用于编写和提供任意规模的在线学习。提供内容管理服务和学习管理服务。(star 7.3K)

7、langflow:用于 RAG 和多代理 AI 的低代码应用开发工具

基于 Python,与模型、API、数据源和数据库无关。可视化 IDE,支持拖拽。多代理编排和对话管理。集成 LangSmith、LangFuse 和 LangWatch,实现可观测性。(star 28.3K)

8、crawl4ai:LLM 友好的网络爬虫和抓取器

简化了网络爬取和数据提取,使其可用于大语言模型和 AI 应用。支持同时爬取多个 URL、提取所有内外部链接、在爬取前执行自定义 JavaScript、支持 CSS 选择器。(star 2.7K)

9、litecli:SQLite 的 CLI,支持自动补全和语法高亮

用 Python 开发的 SQLite 命令行客户端,支持常规数据库操作、自动补全命令、语法高亮。(star 2.5K)

10、defusedxml:拆除 XML 炸弹和其它漏洞

提供安全的方式来处理 XML 文件,通过修改标准库中的 XML 解析器,移除可能导致安全漏洞的功能。

11、sail:使命是统一流处理、批处理和计算密集型 (AI) 工作负载

在单进程设置中提供了 Spark SQL 和 Spark DataFrame API 的直接替代品。

12、dbos-transact-py:超轻量级的持久执行

当出现中断或崩溃,它会自动从最后完成的步骤恢复,达到持久执行的效果。使用 Postgre 保存执行状态,用 OpenTelemetry 跟踪工作流。

🐧 往年回顾

Python 潮流周刊#19:Mojo 终于提供下载了!(2023.09.09)

🐱欢迎订阅

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

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

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

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

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

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

🎭关联阅读

上一期:Python 潮流周刊#68:2023 年 Python 开发者调查结果

下一期:Python 潮流周刊#70:微软 Excel 中的 Python 正式发布!