Skip to content

Latest commit

 

History

History
134 lines (72 loc) · 10.5 KB

2023-12-09-weekly.md

File metadata and controls

134 lines (72 loc) · 10.5 KB
title pubDate author
Python 潮流周刊#30:非洲 Python 社区给 PSF 的一封公开信
2023-12-09
豌豆花下猫

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

🐱播客推荐

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

🦄文章&教程

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

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

2、Django 5.0 发布了!

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

定义数据库字段的默认值

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

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

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

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

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

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

6、非类型化的 Python:曾经的 Python

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

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

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

8、解析 Celery 的扇出模式

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

9、Python Asyncio 的 7 个替代库

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

异步编程库的star趋势

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

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

11、如何使用 Python 播放 GIF?

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

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

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

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

🐿️项目&资源

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

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

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

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

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

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

年度聊天报告的一页

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

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

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

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

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

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

7、Python 在线编译器网站

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

在线画个小闹钟

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

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

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

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

kolo功能介绍图

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

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

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

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

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

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

恢复文本信息的示例

🐼欢迎订阅

  • 微信公众号:除更新周刊外,还发布其它原创作品,并转载一些优质文章。(可加好友,可加读者交流群)
  • 博客RSS:我的独立博客,上面有历年原创/翻译的技术文章,以及从 2009 年以来的一些随笔。
  • 邮件RSS:在 Substack 上开通的频道,满足你通过邮件阅读时事通讯的诉求。
  • Github:你可以获取本周刊的 Markdown 源文件,做任何想做的事!
  • Telegram:除了发布周刊的通知外,我将它视为一个“副刊”,补充发布更加丰富的资讯。
  • Twitter:我的关注列表里有大量 Python 相关的开发者与组织的账号。