Skip to content

Latest commit

 

History

History
142 lines (73 loc) · 10.1 KB

File metadata and controls

142 lines (73 loc) · 10.1 KB
title Python 潮流周刊#79:Python 的元数据困境
pubDate 2024-12-01

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

本期分享了 12 篇文章,12 个开源项目,2 则热门讨论,全文 2200 字。

1、约束是好的:Python 的元数据困境

作者指出 Python 的元数据系统太复杂了,存在 “缺乏约束” 的问题。通过与 JavaScript 对比,文章列出了 Python 元数据的诸多问题:复杂的元数据访问、必须重新生成的元数据、缓存失效不明确以及动态元数据导致的解析器效率低下。

2、Talk Python 网站用 Quart 重写了

Talk Python 网站是 2015 年用 Pyramid 框架开发的,但该框架已发展停滞。文章讨论了多种知名 Python Web 框架,介绍了为什么不选择它们,为什么会选择 Quart(异步 Flask),以及迁移的过程。

3、Python 不仅是胶水,它是一个隐性的 JIT 生态系统

在传统的 JIT 编译中,程序会在运行时优化其热路径(常执行的代码段)。作者发现 Python 的社区生态系统做了非常相似的事,在某些路径上持续遇到性能瓶颈时,生态系统会优化这些路径。

4、Python 类型提示在实践中可能不适合我

作者尝试了用 Python 类型提示,但发现它带来的收益不比麻烦多。偶尔开发小型的单人 Python 项目,这种情况下确实可以不太关心类型提示的使用。(附:该作者还写了一篇 我使用 Python 类型提示和 mypy 的一些经验

5、Python 项目管理和打包综合指南:构建与发布

使用热门的 uv 来介绍 Python 项目管理,这是系列第二篇,关于项目构建与发布流程,包括构建系统、源码树、构建前后端接口、可编辑安装和自定义构建过程,以及如何处理依赖和元数据等问题。

6、2024 年,并发运行 100 万个任务需要多少内存?

作者用 Rust、C#、NodeJS、Python、Go、Java 的协程,进行并发任务占用内存的基准测试,分别测试 1、10K、100K、1M 个任务时,这些编程语言的表现。(附:作者在去年做的对比 不同语言运行100万个并发任务需要多少内存?

7、突破 Streamlit 的界限

作者分享了使用 Streamlit 开发 Web UI 的体验,介绍了在集成语音接口和处理长时间运行任务时遇到的挑战,并分享了如何通过自定义组件和多线程来克服困难。

8、使用 GitHub Actions 运行 Python 脚本

作者分享了使用 GitHub Action 作自动化的经验,着重介绍 GitHub Action 工作流的配置,如何调用 Python 脚本,实现了自己的一项自动化任务。

9、利用 Python 打包求解布尔满足性和整数规划

作者受到 Python 打包解决数独问题的启发,开发了一个名为 pipip 的求解器,利用 Python 包依赖解析器来解决布尔可满足性(SAT)和 0/1 整数规划(IP)问题。文章详细解释了原理、实现细节和使用示例。

10、简化 Django 迁移:高效压缩指南

作者运行了 6 年的 Django 项目有近 300 个模块,如何降低迁移的风险成了一项挑战。文章介绍了用 django-model-info 生成迁移图,识别安全压缩的迁移路径并做压缩,整个过程减少了迁移文件数,优化了部署时间。

11、累积运算在不同编程语言中的实现

了解的编程语言越多,你对它们的理解就越深。作者对比了 Python、R、Haskell、APL 和 Julia 等语言实现累积运算(如accumulatecumsum)的方法,能看出它们在解决相同问题时的多样性。

12、不同语言的 10 亿次嵌套循环迭代对比图

10 多种编程语言执行 10 亿次嵌套循环,所花费的执行时间做成了动图,看到末位的 Python 一直在龟速挪动,真为它感到着急……

1、aisuite:为多个生成式 AI 提供简单统一的接口

提供标准化的接口,让开发者可方便地使用多个 LLM。使用类似于 OpenAI 的界面,专注于聊天模式。(star 5.6K)

2、opennb:从 GitHub 代码仓或 URL 中打开 Jupyter 笔记本

支持基于 Github 代码仓文件路径打开 ipynb 文件,自动检测默认分支,支持使用指定分支。也支持直接的 URL 打开 ipynb 文件。支持给笔记本传递参数。

3、ridgeplot:用 Python 画漂亮的山脊线图

基于 Plotly 实现的简单工具,可绘制美观且交互式的山脊线图。

4、Qwen2.5-Coder:阿里云 Qwen 大语言模型的代码版本

功能强大的国产开源大语言模型,支持 92 种编程语言,上下文长度为 128K Token。(star 3.1K)

5、pex: 用于生成 .pex 文件、锁文件和 venv 的工具

.pex 是一种 Python 可执行文件,是对 PEP-441 中思想的拓展,使 Python 程序的部署像cp 一样简单。单个 pex 文件可以包含多个 Python 发行版,这意味着它可在 Linux 和 OS X 间移植。(star 2.9K)

6、pipe-operator: Elixir 管道运算符的 Python 实现

这个库让你在 Python 中用类似于 elixir 管道的语法。

7、Sequoia:A 股自动选股程序

从东方财富获取数据,实现了若干种选股策略,包括海龟交易法则、缠中说禅牛市买点,以及其他若干种技术形态。(star 2.2K)

8、LLMLLM-Engineers-Handbook:LLM 的实用指南手册

这本电子书的目标是教你用最佳实践创建端到端的基于 LLM 的系统,包括数据采集与生成、训练管道、简单的 RAG 系统、生产就绪的 AWS 部署、全面的监控、测试和评估框架。(star 1.8K)

9、bbot:面向黑客的互联网扫描仪

一款受 Spiderfoot 启发的多功能扫描仪,旨在自动化你的侦察、漏洞赏金和 ASM。(star 7.1K)

10、Scraperr:自托管的网络爬虫

一个自托管的网络爬虫,通过 XPath 指定元素来抓取数据。支持以 URL 进行抓取、管理之前的任务、用户管理、查看日志、统计分析、集成 AI 等功能。(star 1.2K)

11、ImportSpy:主动控制模块如何被导入使用

支持为模块定义明确的规则,并在外部模块导入你模块前,校验它是否符合这些规则,减少因导入不当或环境配置错误而导致的错误。

12、zerox:由视觉模型支持的 PDF 转 Markdown

利用视觉模型 AI 作精准的文件内容提取,克服奇怪的布局、表格和图表等难题。(star 6.7K)

1、关于 Python 项目的生产环境部署

公司有很多 Python 项目,生产用什么部署方案?如何作包管理?多服务间通信是用 http 还是 rpc?

2、你最喜欢的 Python 演讲是什么?

pyvideo 上有 19163 场会议演讲,大家有什么最喜欢的演讲或演讲者可以推荐么?

Python 潮流周刊#29:Rust 会比 Python 慢?! (2023.12.02)

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

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

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

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

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

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