Python 潮流周刊#52:Python 处理 Excel 的资源
这里分享的是 Python 潮流周刊第 52 期,原文发布于 2024-05-25。我们的付费专栏内容在发布一年后会免费开源,不少内容依然值得回看,愿大家读有所获。点击文末“阅读原文”,体验更佳。
温馨提示:在微信关注 Python猫,发送“优惠券”,即可领取 9 折优惠券,订阅专栏可享 15 元优惠。
本期分享了 12 篇文章,12 个开源项目。
🦄文章&教程[1]
1、正则表达式匹配可以很简单且高速[2]
这是一篇写于 2007 年的文章,介绍和对比了正则表达式的两种实现:传统方法和 Thompson NFA 方法。后者在某些任务上比传统方法快几百万倍,但使用普及度不及前者,作者呼吁编程语言可以改用后者。作者还写了 3 篇关于正则的文章,详见其文末。
2、如何利用内存中还在运行的代码,恢复已删除的源码?[3]
作者不小心把本地代码删除了,然后设法中从运行中的 Docker 容器里恢复了自己的代码。使用到的库是pyrasite 和 uncompyle6 ,文章介绍了具体的操作步骤。
3、PEP-667:命名空间的一致视图[4]
这个 PEP 计划合入到 Python 3.13 版本,作者之一是我们国内的@高天。在早期 Python 中,所有命名空间都是用字典实现的,后来出于性能原因变更了函数命名空间的实现,但导致了一些奇怪的 BUG。此 PEP 提议将所有命名空间再次保持一致的实现。
4、用 100 行代码替换 pyinstaller[5]
作者开发了一个packaged 项目,可替代 pyinstaller 将 Python 项目打包成可执行文件。文章介绍了它的迭代实现过程,亮点之一是用到了 python-build-standalone[6] ,还有特别的是用了可自解压的压缩工具 makeself[7] 。
5、py.space:免费开发在线的 Python 应用[8]
py.space 是最近推出的一个网站,是Anvil 的精简版,可开发在 Web 上运行的 Python 应用。这篇教程演示了该网站的基本功能。
6、使用 Python 3.12 作静态类型函数式编程[9]
文章利用 Python 3.12 的模式匹配、typing 的泛型并结合数据类,实现函数式编程的类似功能。现在 match-case 的使用场景不多见,文章做了很好的示范。
7、如何用 Python 动态生成 Github 个人主页 README?[10]
Github 支持添加个人的自述文件,有很多开源项目可以让我们美化自己的主页。作者用 Python 实现抓取自己博客文章,利用 Github Actions 实现动态更新。我准备等有空也去试试。
8、用 pyastgrep 作自定义 linting[11]
pyastgrep 是作者开发的库,可使用 XPath 语法查询特定的 Python 语法元素。文章介绍如何用它作自定义的代码检查,执行其它工具无法满足的编码规范检查。
9、使用 pygments 生成代码片段的图片[12]
pygments 是一个可将代码或文本作高亮显示的库,作者为了在 PyCon 演讲时演示代码片段,于是用这个库生成自己的代码图片。文章介绍了具体的实现过程、优势和建议。
10、使用纯 NumPy 实现 Llama 3[13]
Llama 3 是当前开源大模型的佼佼者。文章详细介绍了这个模型的关键组件,在不依赖深度学习框架的情况下,使用纯 NumPy 实现 Llama 3 模型。
11、AI 帮你写的代码,所有权归谁?[14]
文章提出了一个暂时还无解的问题。AI 辅助编程已兴起,人类依赖 AI 完成的代码会越来越多,那么,关于这些代码的知识产权该如何判定,AI 生成部分在法律上是无版权的,由此可能会带来法律风险。
12、聪明的代码可能是你写过最糟糕的代码[15]
聪明的代码(clever code)很可能不是清晰的代码(clear code),建议大家不要滥用炫技式的一行流代码。代码的可读性至关重要,文章区别了好代码与坏代码,并给出了如何写出清晰代码的一些建议。
🐿️项目&资源[16]
1、用于处理 Excel 的 Python 资源[17]
这个网站收录了一些可读写 Excel 文件的库(openpyxl、xlsxwriter、pyxlsb、pylightxl、xlrd、xlwt、xlutils)、可编写 Excel 加载项的库(PyXLL、xlwings)。
2、yen:Python 虚拟环境管理工具,无需预装 Python[18]
号称是最简单的 Python 环境管理工具,无需预装 Python。一半的代码是 Rust。
3、Tensor-Puzzles:21 个张量谜题[19]
这个仓库收录了一些编程题目,提升 PyTorch 水平。(star 2.8K)
4、dishka:依赖注入框架[20]
提供了一个IoC(控制反转)容器,可简化对象的创建和管理,避免手动传递对象或使用全局变量。
5、hstream:将 Python 脚本转换为 Web 应用[21]
基于 Django + HTMX,可将 Python 脚本转换为交互式的 Web 应用。
6、cover-agent:AI 自动生成测试,提升代码覆盖率[22]
让 AI 来帮忙生成测试代码,有效提升代码覆盖率。目前主要是单元测试,仅支持在终端运行。(star 2.6K)
7、pygments:用 Python 开发的通用型语法高亮工具[23]
前文已提到过这个语法高亮工具,它支持 500 多种语言和文本格式,可用于代码仓、论坛、wiki和其它需要美化源码的地方。(star 1.7K)
8、hashquery:在数据仓库中定义和查询 BI 模型[24]
在数据仓库中定义和查询 BI 模型,表达式使用 Python 定义,编译为 SQL,能表达复杂的多层查询,能力超过标准 SQL。
9、Python 有哪些指标监测库?[25]
这是 Hacker News 上的问答帖,提及的一些项目有:pymetrics、ddtrace、datadog、statsd、pyformance、prometheus 的 Python 客户端,等等。
10、stamina:可用于生产的 Python 重试库[26]
基于tenacity 作了封装的重试库,亮点有:仅在某些异常时重试、指数退避、自动支持异步、可全局停用以作测试,以及拥有开箱即用的 Prometheus、structlog 和标准库 logging 支持。
11、piku:支持对自己的服务器作 git 推送部署[27]
通过 git push 命令将自己的应用部署到个人服务器上,不管服务器规模大小。支持 ARM 和 Intel 架构,适用于任何可以运行 Python、nginx 和 uwsgi 的云服务商或裸机。(star 2.6K)
12、mql:用自然语言输入生成 SQL 查询[28]
根据自然语言生成为可执行的 SQL 语句,仅支持 PostgreSQL 数据库。
🦄文章&教程: https://xiaobot.net/p/python_weekly
[2]正则表达式匹配可以很简单且高速: https://swtch.com/~rsc/regexp/regexp1.html
[3]如何利用内存中还在运行的代码,恢复已删除的源码?: https://gist.github.com/simonw/8aa492e59265c1a021f5c5618f9e6b12
[4]PEP-667:命名空间的一致视图: https://peps.python.org/pep-0667/
[5]用 100 行代码替换 pyinstaller: https://tushar.lol/post/packaged/
[6]python-build-standalone: https://github.com/indygreg/python-build-standalone
[7]makeself: https://github.com/megastep/makeself
[8]py.space:免费开发在线的 Python 应用: https://jeff.glass/post/pyspace/
[9]使用 Python 3.12 作静态类型函数式编程: https://wickstrom.tech/2024-05-23-statically-typed-functional-programming-python-312.html
[10]如何用 Python 动态生成 Github 个人主页 README?: https://tduyng.dev/blog/dynamic-github-profile-readme
[11]用 pyastgrep 作自定义 linting: https://lukeplant.me.uk/blog/posts/pyastgrep-and-custom-linting/
[12]使用 pygments 生成代码片段的图片: https://www.mostlypython.com/generating-code-snippets/
[13]使用纯 NumPy 实现 Llama 3: https://docs.likejazz.com/llama3.np/
[14]AI 帮你写的代码,所有权归谁?: https://www.theregister.com/2024/05/15/ai_coding_complications/
[15]聪明的代码可能是你写过最糟糕的代码: https://read.engineerscode%2A%2A/p/clever-code-is-probably-the-worst
[16]🐿️项目&资源: https://xiaobot.net/p/python_weekly
[17]用于处理 Excel 的 Python 资源: https://www.python-excel.org/
[18]yen:Python 虚拟环境管理工具,无需预装 Python: https://github.com/tusharsadhwani/yen
[19]Tensor-Puzzles:21 个张量谜题: https://github.com/srush/Tensor-Puzzles
[20]dishka:依赖注入框架: https://github.com/reagento/dishka
[21]hstream:将 Python 脚本转换为 Web 应用: https://github.com/conradbez/hstream
[22]cover-agent:AI 自动生成测试,提升代码覆盖率: https://github.com/Codium-ai/cover-agent
[23]pygments:用 Python 开发的通用型语法高亮工具: https://github.com/pygments/pygments
[24]hashquery:在数据仓库中定义和查询 BI 模型: https://github.com/hashboard-hq/hashquery
[25]Python 有哪些指标监测库?: https://news.ycombinator.com/item?id=40104427
[26]stamina:可用于生产的 Python 重试库: https://github.com/hynek/stamina
[27]piku:支持对自己的服务器作 git 推送部署: https://github.com/piku/piku
[28]mql:用自然语言输入生成 SQL 查询: https://github.com/shurutech/mql