Python 潮流周刊#65:CSV 有点糟糕
你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文。另有电报频道[1]作为副刊,补充发布更加丰富的资讯,欢迎关注。
本期分享了 12 篇文章,12 个开源项目,全文 2000 字。
🦄文章&教程[2]
1、CSV 有点糟糕。DSV 有点不错[3]
众所周知,CSV 文件使用逗号分隔内容,但这对于存在逗号、分隔符和换行符等情况不太适用,文章建议使用 ASCII 的通用分隔符作为替代,可以处理复杂数据,避免格式出错。
2、用 Scrapy 和 Playwright 实现无限滚动页面的抓取[4]
介绍了用 scrapy-playwright 插件实现无限滚动网页的内容抓取,包括如何配置、处理 CORS 问题、滚动抓取的原理解析、详细的实现代码。
3、用 Python 作测试(第 9 部分):额外的一英里[5]
介绍了如何用 pytest-cov 计算代码库的测试覆盖率,并用 nox 等工具对不同版本的 Python 和库进行组合测试。既测试代码本身,也测试它与整个 Python 生态的集成。
4、fastcore:一个被低估的 Python 库[6]
Fastcore 的作者介绍了这个库的主要功能,它主要用于扩展 Python 的能力,包括:使**kwargs 透明化、设置实例属性时规避样板代码、避免子类的样板代码、类型分派、更好的 functools.partial、更有用的 __repr__,等等。
5、Knuckledragger:一个半自动的 Python 校验助手[7]
作者开发了 Knuckledragger,是一个基于 Z3 的半自动 Python 校验助手,文章介绍了它的基本设计原则、核心原理、理论和应用、支持的主要功能,等等。
6、优化 PyTorch Docker 镜像:如何将大小减少 60%?[8]
在集群上训练神经网络时,常用 Docker 容器打包所有依赖项。通用配置的镜像大小达 7.6G,文章介绍了几项优化配置,可节省 60% 的空间。
7、Python 中 Pydantic 实现近似的求和类型[9]
求和类型(Sum Types)是类型理论中的概念,将不同的类型组合成一种单一类型。Python 不支持这种类型,文章介绍用 Pydantic 的 unions 和 TypeAdapter 来实现一个相似的类型,并完成 JSON 序列化和反序列化。
8、PEP-750:用来编写领域特定语言的标签字符串[10]
这是新发起的一个提案(草稿状态),可视为 f-string 的扩展,类似于 JavaScript 的标签模板字面量,使用自定义的函数代替“f”前缀,实现更丰富的功能,如安全检查、延迟计算、Web 模板等。
9、我在开发现代 TUI 框架时学到的 7 件事[11]
textual 框架已经很流行了呢,Github 星星近 25K。这篇文章是框架作者写于 2022 年的,分享了 7 个观点:终端速度很快、DictViews 非常棒、lru_cache 速度很快,等等。
10、通过 GDB 用 PDB 调试运行中的 Python 脚本[12]
如何在 Linux 上调试正在运行的 Python 脚本?文章介绍了用系统原生调试器 GDB 的 attach 命令,以及 Python 自带的调试器 pdb 来调试 Python 脚本。
11、Pandas 有效管理大型数据集的内存使用[13]
Copy-on-Write 是一种提高内存使用率的优化技术,Pandas 2.0 已经支持了,但未完全实现。文章介绍了如何启用 CoW,以及它对 Pandas 到底有哪些好处、启用与不启用 CoW 的差异。
12、3.5 亿 Token 不会说谎:Hacker News 中的爱与恨[14]
分析了 Hacker News 从 2020.1 至 2023.6 的所有帖子及其不少于 5 条评论,利用 LLama3 70B 从不同维度对这些内容做统计。用到的框架是 Netflix 开源的 metaflow[15],文章介绍了使用的工作流和提示词。
🐿️项目&资源[16]
1、Emval:Rust 开发的 Python 邮件验证库[17]
用 Rust 开发的高性能邮件校验库,比传统工具(如 python-email-validator、verify-email 和 pyIsEmail)快 100-1000 倍。
2、fastcore:增强 Python 的功能[18]
向 Python 中添加其它语言的优秀特性,如 Julia 的 multiple dispatch、Ruby 的 mixins,以及 Haskell 的 currying 和 binding 等;同时添加了不少有用的功能。
3、scrapy-playwright:Scrapy 的 Playwright 集成[19]
集成 Scrapy 和 Playwright 的优点,遵循 Scrapy 的常规工作流,可很好处理 JavaScript 相关的内容。支持协程和 asyncio。
4、DELTADB:基于 Polars 和 DeltaLake 的数据库[20]
用 Python 开发的轻量级可扩展数据库,提供基本的数据库操作和版本控制,由 polars 和 deltalake 提供高性能支持。
5、AgentK:可自我进化的、模块化的 AGI[21]
由相互协作的多个代理组成的 AGI,具备自我进化能力,可根据需要构建出新的代理来完成特定的任务。
6、llm_aided_ocr:用 LLM 矫正扫描版 PDF 的 OCR 结果[22]
利用自然语言和 LLM,提升 OCR 对扫描版 PDF 文件的扫描准确度,将结果转换为格式良好且可读的文档。(star 1.2K)
7、translation-agent:使用反省工作流的翻译代理[23]
Andrew Ng 开源的用于机器翻译的工作流,基本流程是先让 LLM 翻译,然后再让它提出修改建议,最后基于建议作修改。(star 4.4K)
8、PY4E:适合所有人的 Python 学习课程[24]
这是一个在线学习 Python 的网站,包含一系列课程、视频、PPT 材料和参考资料等,另外发布在 Coursera、edX 等平台,参加课程可获得证书。
9、unstract:无代码 LLM 平台,启动 API 和 ETL 管道[25]
利用 LLM 启动 API,将复杂的文档转换为结构化 JSON,或者启动 ETL 管道,从云文件/对象存储系统中读取复杂文件,并将结构化数据写入数据仓库和数据库。
10、tokencost:轻松估算 400+ LLMs的 token 价格[26]
这个库提供了 400+ 主流 LLM 的 token 花费计算能力,跟踪最新的价格变化,有效管理对接 LLM 的成本。(star 1.3K)
11、PyOptInterface:Python 作数学优化的高效建模接口[27]
数学优化建模,性能超过了 Pyomo 和 JuMP.jl 等,适合大规模数学优化问题(线性规划、二次规划、混合整数线性规划等)的建模和求解。
12、metasequoia-sql:注重性能的 SQL 语法解析和分析器[28]
适用于 SQL 的格式化、执行和分析场景,致力于打造性能最高的 Python 版 SQL 解析器,包含词法树解析、语法树解析和语法树分析等功能。
🐧 往年回顾[29]
Python 潮流周刊#15:如何分析异步任务的性能?[30](2023.08.12)
🐱欢迎订阅[31]
技术周刊是聪明人在信息过载时代中筛选优质知识的聪明手段。这是一个专为国内 Python 开发者量身打造的资讯平台,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等丰富内容。立即订阅[32],每周将收到一篇文章推送,每周进步一点点。
欢迎留言,说说你最喜欢本期的哪一则分享?大家反馈得越多,我今后分享的也会越多!
欢迎将本专栏[33]分享给同样爱学习的同学,当有人通过你分享的海报或者链接,购买了专栏,那么你将获得高额的返利。
🏅关联阅读
上一期:Python 潮流周刊#64:Python 的函数调用还很慢么?[34]
下一期:Python 潮流周刊#66:Python 的预处理器[35]
电报频道: https://t.me/pythontrendingweekly
[2]🦄文章&教程: https://xiaobot.net/p/python_weekly
[3]CSV 有点糟糕。DSV 有点不错: https://matthodges.com/posts/2024-08-12-csv-bad-dsv-good/
[4]用 Scrapy 和 Playwright 实现无限滚动页面的抓取: https://www.xiegerts.com/post/infinite-scroll-scrapy-playwright/
[5]用 Python 作测试(第 9 部分):额外的一英里: https://www.bitecode.dev/p/testing-with-python-part-9-the-extra
[6]fastcore:一个被低估的 Python 库: https://fastpages.fast.ai/fastcore/
[7]Knuckledragger:一个半自动的 Python 校验助手: https://www.philipzucker.com/state_o_knuck/
[8]优化 PyTorch Docker 镜像:如何将大小减少 60%?: https://mveg.es/posts/optimizing-pytorch-docker-images-cut-size-by-60percent/
[9]Python 中 Pydantic 实现近似的求和类型: https://blog.yossarian.net/2024/08/12/Approximating-sum-types-in-Python-with-Pydantic
[10]PEP-750:用来编写领域特定语言的标签字符串: https://peps.python.org/pep-0750/
[11]我在开发现代 TUI 框架时学到的 7 件事: https://www.textualize.io/blog/7-things-ive-learned-building-a-modern-tui-framework/
[12]通过 GDB 用 PDB 调试运行中的 Python 脚本: https://disconnect3d.pl//2024/08/04/debugging-cpython-live/
[13]Pandas 有效管理大型数据集的内存使用: https://geekpython.in/copy-on-write-in-pandas
[14]3.5 亿 Token 不会说谎:Hacker News 中的爱与恨: https://outerbounds.com/blog/hacker-news-sentiment/
[15]metaflow: https://github.com/Netflix/metaflow
[16]🐿️项目&资源: https://xiaobot.net/p/python_weekly
[17]Emval:Rust 开发的 Python 邮件验证库: https://github.com/bnkc/emval
[18]fastcore:增强 Python 的功能: https://github.com/fastai/fastcore
[19]scrapy-playwright:Scrapy 的 Playwright 集成: https://github.com/scrapy-plugins/scrapy-playwright
[20]DELTADB:基于 Polars 和 DeltaLake 的数据库: https://github.com/uname-n/deltadb
[21]AgentK:可自我进化的、模块化的 AGI: https://github.com/mikekelly/AgentK
[22]llm_aided_ocr:用 LLM 矫正扫描版 PDF 的 OCR 结果: https://github.com/Dicklesworthstone/llm_aided_ocr
[23]translation-agent:使用反省工作流的翻译代理: https://github.com/andrewyng/translation-agent
[24]PY4E:适合所有人的 Python 学习课程: https://www.py4e.com/
[25]unstract:无代码 LLM 平台,启动 API 和 ETL 管道: https://github.com/Zipstack/unstract
[26]tokencost:轻松估算 400+ LLMs的 token 价格: https://github.com/AgentOps-AI/tokencost
[27]PyOptInterface:Python 作数学优化的高效建模接口: https://github.com/metab0t/PyOptInterface
[28]metasequoia-sql:注重性能的 SQL 语法解析和分析器: https://github.com/ChangxingJiang/metasequoia-sql
[29]🐧 往年回顾: https://xiaobot.net/p/python_weekly
[30]Python 潮流周刊#15:如何分析异步任务的性能?: https://pythoncat.top/posts/2023-08-12-weekly
[31]🐱欢迎订阅: https://xiaobot.net/p/python_weekly
[32]立即订阅: https://xiaobot.net/p/python_weekly
[33]本专栏: https://xiaobot.net/p/python_weekly
[34]Python 潮流周刊#64:Python 的函数调用还很慢么?: https://pythoncat.top/posts/2024-08-10-weekly
[35]Python 潮流周刊#66:Python 的预处理器: https://pythoncat.top/posts/2024-08-24-weekly