Python 潮流周刊#30:非洲 Python 社区给 PSF 的一封公开信

△△请给“Python猫”加星标 ,以免错过文章推送

af0c63200d61cd6850509756da374603.jpeg

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

🐱播客推荐

2023 年即将过去,给大家推荐一下我个人年度最喜爱的播客节目《纵横四海[3]》!!它主要分享读书,探讨个人成长/职业成长,探索如何处理感情问题等。每期都在 90 分钟以上,好几期还超过了 4 个小时,但是听了完全不会觉着冗长!

🦄文章&教程

1、Python 非洲:致 Python 软件基金会的一封公开信[4]

非洲十多个国家的 Python 社区组织者们联名给 PSF 的一封公开信。信件的起因是 PSF 给非洲首届 DjangoCon 的 9000 美元拨款延迟了,由此引出 PSF 内部存在的其它问题:人种歧视、对边缘群体缺乏关注、不遵守当地法律等。(题外话:PSF 在 2022 年给亚洲的拨款占比 1%,远低于给非洲的 16%……)

2、Django 5.0 发布了![5]

Django 5.0 在本周发布了,只支持 Python 3.10 及以上版本。主要新功能:新增Field.db_default 参数,可设置由数据库计算的默认值;GeneratedField 可以创建由数据库生成的列;引入了字段组和字段组模板,简化了表单字段相关元素的呈现。(附:一则介绍Django 新特性的视频[6] )

3486bad9dd6b38225983001872122911.png

定义数据库字段的默认值

3、56 行代码用 Python 实现一个 Flex/Lex[7]

Lex/Flex 可用于生成词法分析器,用于处理源代码中的词法结构。作者通过改造 Python 官方文档中的一段程序,实现了一个通用的基于规则的词法分析器,可用于处理简单的词法分析需求。

4、如何在 FastAPI 正确地使用依赖注入?[8]

文章指出了人们在 FastAPI 中使用依赖注入时的两种错误方式,介绍了如何在 FastAPI 中使用python-dependency-injector 实现依赖注入的方法。

5、为什么不应该在 Python 中过度使用列表解析式?[9]

适当使用列表解析式,可以让你的代码更简洁优雅,但是过度使用的话,将严重破坏代码的可读性。作者给出了三个例子,分别用列表解析式与常规方案实现,让读者感受到易理解的代码胜过花哨的炫技。

6、非类型化的 Python:曾经的 Python[10]

Flask 的作者 Armin Ronacher 在最新文章中讨论了 Python 的类型话题。核心观点认为 Python 的内在哲学在于它的动态类型,这是它的优势,这与类型化是冲突的,类型化有其价值,但也会带来成本。作者怀念曾经的 Python。

7、用 django-watson 给 Django 项目添加全文搜索[11]

一篇非常详细的教程,使用 django-watson[12] 和 PostgreSQL 给 Django 项目添加全文搜索功能。这个库支持跨多个 model 进行搜索,支持按相关性排序。(star 1.2K)

8、解析 Celery 的扇出模式[13]

Celery 的扇出模式(Fanout)是一种任务分发的模式,由一个任务触发多个并行执行的子任务。作者介绍了这种模式的实践运用,认为这是在任务签名中实现动态工作流的好方法。

9、Python Asyncio 的 7 个替代库[14]

Asyncio 是 Python 用作异步编程的标准库,但它不是你唯一的选择。文章介绍和对比了 7 个同类的库,有比 Asyncio 更早发布的 Tornado、Twisted 及 Gevent,也有更为年轻的 Curio、Trio、AnyIO 与 UVloop。

c27b445e45b853150b5fff5de3de24e3.png

异步编程库的star趋势

10、解密 CPython:当执行 a+b 时,背后发生了什么?[15]

一篇深度剖析 CPython 解释器的动态分发机制的文章。动态分发(Dynamic Dispatch)指的是在程序运行时(而不是在编译时)确定调用哪个方法或函数的过程。a+b 看似简单,但是它们可能有多种类型组合,实际的计算过程可能完全不同。

11、如何使用 Python 播放 GIF?[16]

GIF 是一种图像格式,是无声的动画视频。有什么 Python 库可以通过代码来播放 GIF 动画么?文章分别介绍了 tkinter、PySimpleGUI 和 Jupyter Notebook 这三种方式。

12、用 Python 开发一个微型的 REPL[17]

REPL(Read-Eval-Print Loop)是指编程语言的交互式环境。Python 标准库中有个code 模块,提供了实现 REPL 的功能,文章逐步提出需求,演示了如何用它开发一个简单的 REPL。

🎁Python潮流周刊🎁已顺利更新到第 30 期啦!我在几天前写了一篇《聊聊技术周刊的变现》分享了对未来发展的思考,近期也会对所有周刊再作一次总结,敬请期待!

🐿️项目&资源

1、self-operating-computer:使多模态模型能够操作计算机[18]

这是近期基于 GPT-4v 的最火项目之一。让大语言模型像人类一样查看屏幕内容,操作鼠标和键盘来实现特定的目标。当前的挑战是 GPT-4v 在鼠标点击位置方面的错误率很高。(star 5.1K)

2、marko:具有高扩展性的 markdown 解析器[19]

一个专注于扩展开发体验的 Markdown 解析器,遵循 CommonMark 规范 v0.30 规范。速度不是它的优势,但能方便观察 AST、实现自己的元素和渲染器。(投稿自@frostming)

3、WeChatMsg:导出微信聊天记录成 HTML/Word/CSV文档[20]

本周火爆朋友圈的项目,作者是一名在校大学生。支持导出微信聊天记录,支持生成年度聊天报告。Slogan 不错:“我的数据我做主”。可以导出数据用于训练个人 AI!(star 12.5K)

c534bc4925cc4ec99e10a48e26c89bfb.png

年度聊天报告的一页

4、PyWxDump:获取微信账号信息、导出聊天记录[21]

这是上一个项目的依赖,可解密数据库,查看和导出聊天记录,支持微信多开场景获取多用户信息。(star 1.6K)(PS. 总感觉这两个项目会被某信针对,你觉得呢?)

5、mlx:适用于 Apple 芯片的阵列框架[22]

Apple 推出的基于自家芯片的机器学习阵列框架,拥有跟 Numpy 相近的 Python API。(star 7.2K)

6、DSAlgo:数据结构和算法的面试题集锦[23]

一个精选仓库,收录了大量数据结构和算法题,使用 Python 解答。另外它还收录了不少大公司的面试题与计算机类学习笔记等资料。(star 1.7K)

7、Python 在线编译器网站[24]

一个网页在线版本的 Python 解释器,支持 Python 2.7、3.3-3.10 版本,预装了大部分的常用库,包括 Turtle、Tkinter、Pygame、Numpy、Matplotlib、Pandas、Scipy,等等。

58c7081ae6bc8d5e26de442b16352ce4.png

在线画个小闹钟

8、aio-libs:65 个基于 Asyncio 的库/项目[25]

它收录了 Python 社区中与异步 IO 相关的库,包括 aiohttp、aiopg、aiomysql、yarl、aiokafka 等等。

9、kolo:查看 Django 应用的执行过程[26]

一款 VSCode 插件,具有帧可视化、漂亮的火焰图、显示执行了 SQL 查询的代码行、支持直接跳转到异常位置等。

4f35bf00ae10e7ed8b5c458959f0da9f.png

kolo功能介绍图

10、dnsteal:DNS 渗透工具,通过 DNS 请求隐秘发送文件[27]

一个只有 200 多行代码的小工具,伪造 DNS 服务器,隐秘截取请求中的文件。支持多文件、支持 Gzip 压缩、支持自定义子域信息等。(star 1.6K)

11、github-trends:使用自定义卡片美化 GitHub 个人主页[28]

可生成你在 Github 的贡献日历、代码行数分析、多种维度下的个人贡献统计图等,轻松将动态图标嵌入到你的个人资料页面中。(star 6.4K)

12、Depix:还原打了马赛克的截图信息[29]

在截图上打了马赛克就安全了么?不!这个库能以较高的准确度还原图片中的纯文本信息。仓库中有技术原理解释,以及对使用缺陷的说明。(star 24.7K)

c42c120879479e26eacc43791fd46f93.png

恢复文本信息的示例

🐼欢迎订阅

  • 微信公众号[30]:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)

  • 博客[31] 及 RSS[32]:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。

  • 邮件[33] 及 RSS[34]:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。

  • Github[35]:你可以获取本周刊的 Markdown 源文件,做任何想做的事!

  • Telegram[36]:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。

  • Twitter[37]:我的关注列表里有大量 Python 相关的开发者与组织的账号。

参考资料

[1]

投稿: https://github.com/chinesehuazhou/python-weekly

[2]

电报频道: https://t.me/pythontrendingweekly

[3]

纵横四海: https://www.xiaoyuzhoufm.com/podcast/62694abdb221dd5908417d1e

[4]

Python 非洲:致 Python 软件基金会的一封公开信: https://pythonafrica.blogspot.com/2023/12/an-open-letter-to-python-software_5.html

[5]

Django 5.0 发布了!: https://docs.djangoproject.com/en/5.0/releases/5.0

[6]

Django 新特性的视频: https://www.youtube.com/watch?v=lPl5Q5gv9G8

[7]

56 行代码用 Python 实现一个 Flex/Lex: https://www.skywind.me/blog/archives/2761

[8]

如何在 FastAPI 正确地使用依赖注入?: https://so1n.me/2023/12/07/how-to-use-dependency-injection-in-fastapi/

[9]

为什么不应该在 Python 中过度使用列表解析式?: https://www.kdnuggets.com/why-you-should-not-overuse-list-comprehensions-in-python

[10]

非类型化的 Python:曾经的 Python: https://lucumr.pocoo.org/2023/12/1/the-python-that-was/

[11]

用 django-watson 给 Django 项目添加全文搜索: https://idiomaticprogrammers.com/post/django-watson-full-text-search-guide

[12]

django-watson: https://github.com/etianen/django-watson

[13]

解析 Celery 的扇出模式: https://www.better-simple.com/django/2023/12/06/fanout-pattern-explained/

[14]

Python Asyncio 的 7 个替代库: https://superfastpython.com/asyncio-alternatives/

[15]

解密 CPython:当执行 a+b 时,背后发生了什么?: https://codeconfessions.substack.com/p/cpython-dynamic-dispatch-internals

[16]

如何使用 Python 播放 GIF?: https://www.blog.pythonlibrary.org/2023/12/05/viewing-an-animated-gif-with-python/

[17]

用 Python 开发一个微型的 REPL: https://bernsteinbear.com//blog/simple-python-repl/

[18]

self-operating-computer:使多模态模型能够操作计算机: https://github.com/OthersideAI/self-operating-computer

[19]

marko:具有高扩展性的 markdown 解析器: https://github.com/frostming/marko

[20]

WeChatMsg:导出微信聊天记录成 HTML/Word/CSV文档: https://github.com/LC044/WeChatMsg

[21]

PyWxDump:获取微信账号信息、导出聊天记录: https://github.com/xaoyaoo/PyWxDump

[22]

mlx:适用于 Apple 芯片的阵列框架: https://github.com/ml-explore/mlx

[23]

DSAlgo:数据结构和算法的面试题集锦: https://github.com/SamirPaulb/DSAlgo

[24]

Python 在线编译器网站: https://pythononlinecompiler.com/

[25]

aio-libs:65 个基于 Asyncio 的库/项目: https://github.com/aio-libs

[26]

kolo:查看 Django 应用的执行过程: https://github.com/kolofordjango/kolo

[27]

dnsteal:DNS 渗透工具,通过 DNS 请求隐秘发送文件: https://github.com/m57/dnsteal

[28]

github-trends:使用自定义卡片美化 GitHub 个人主页: https://github.com/avgupta456/github-trends

[29]

Depix:还原打了马赛克的截图信息: https://github.com/spipm/Depix

[30]

微信公众号: https://img.pythoncat.top/python_cat.jpg

[31]

博客: https://pythoncat.top

[32]

RSS: https://pythoncat.top/rss.xml

[33]

邮件: https://pythoncat.substack.com

[34]

RSS: https://pythoncat.substack.com/feed

[35]

Github: https://github.com/chinesehuazhou/python-weekly

[36]

Telegram: https://t.me/pythontrendingweekly

[37]

Twitter: https://twitter.com/chinesehuazhou

ddd0abb7e0ff3aa7457e91f55eae0a07.gif

如果你觉得本文有帮助

请慷慨分享点赞,感谢啦

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值