Jupyter Notebook 7 发布了,无 GIL 提案传来大好消息!

2023年 8月 1日 30.3k 0

你好,我是猫哥。这里每周分享优质的 Python、AI 及通用技术内容,大部分为英文,已在小标题注明。(标题取自其中一则分享,不代表全部内容都是该主题,特此声明。)

本周刊精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。

周刊已开通 Telegram 频道,欢迎加入:https://t.me/pythontrendingweekly

🦄文章&教程

1、Jupyter Notebook 7 隆重发布[1] (英)

Jupyter Notebook 大版本更新,亮点包括实时协作、交互式调试、目录、主题和深色模式、国际化、改进的可访问性、移动设备上的紧凑视图。

2、Python 中的弱引用与基础类型支持情况探究[2]

Python 的基础类型 Int、List、Dict、Tuple、Str 不支持弱引用,而 Object、Type、Set 等类型却支持弱引用,为什么会出现这种情况呢?文章给出了自己的分析。

3、分布式锁的介绍与 Python 实现[3]

什么情况下要使用分布式锁?如何用 py-redis 实现分布式锁,加锁与解锁的流程是怎样的?加锁的超时时间有什么注意点,如何实现 WatchDog 给锁自动续约?

4、释放 PyScript 的力量:在 HTML 中运行 Python 代码[4] (英)

一篇 PyScript 入门教程,介绍了安装、基础知识、配合 Flask 的使用以及高级功能。

5、通过并发实现更快的文件 I/O[5] (英)

什么是文件 I/O,为什么它会比主内存 I/O 慢很多?文件 I/O 的速度与哪些因素有关?有哪些提升文件 I/O 性能的方法?

6、如何编写完美干净的 Python 代码?[6] (英)

文章介绍了一些最佳编程实践,涵盖代码结构、pre-commit、类型提示、文档字符串、lint、Pydantic、拼写检查、测试等方面。

7、Python 日志记录:对比最流行的 6 个库[7] (英)

文章详细对比了当前最为流行的 6 种日志框架:logging、loguru、structlog、Eliot、logbook 与 picologging 。最推荐的无疑是前两个,其它权当兴趣尝鲜吧。

8、使用 cProfile 分析模块级代码[8] (英)

如何使用 cProfile 来对 Python 代码进行性能分析?文章简单介绍了它的用法,并给出了上下文管理器与装饰器两种高级用法。

9、掌握 Python 函数式编程[9] (英)

文章介绍了函数式编程的优点、Python 对函数式编程的支持、最佳实践以及编写 Python 程序时要避免的错误。

10、Python 3.12 预览版:更直观和一致的 f-string[10] (英)

在 Python 3.12 之前,f-string 有什么限制?即将发布的 3.12 版本会带来哪些变化呢?新功能前瞻:嵌入表达式可以重用引号、f-string 中允许使用反斜杠、多行表达式中可写注释、任意级别的 f-string 嵌套、优化了 f-string 的错误提示……

11、使用 AsyncMixin 创建可等待的构造函数[11] (英)

介绍了如何使用名为 AsyncMixin 的 mixin 在 Python 中创建异步构造函数。

12、在 Python 中查找并修复不安全的直接对象引用[12] (英)

不安全的直接对象引用 (IDOR) 是一种安全漏洞,文章介绍了这种漏洞的危害,如何识别并修复 IDOR 漏洞。

13、使用异步 Python 克服性能瓶颈:深入研究 CPU 密集型代码[13] (英)

作者介绍了如何识别和优化特征存储中 CPU 密集型代码,从而提升核心模型的性能。事件循环延迟是什么,如何监控异步代码消耗的时间?

14、PEP-720 交叉编译 Python 包[14] (英)

交叉编译是指在一台计算机上编译适用于另一种体系结构的程序。这份 PEP 试图揭示交叉编译遇到的挑战,并以此进行改进。

15、PEP-722 单文件脚本的依赖关系规范[15] (英)

在项目中记录和管理第三方库,这有很多解决方案。但是,如何给单文件管理三方库依赖呢?这份 PEP 提出了一种很简单的规范格式。

🐿️项目&资源

1、Resume-Matcher:比较简历与职位描述,按照打分排名[16] (英)

基于 AI 的简历匹配器,根据 JD 的关键词给简历打分。使用 Qdrant(一种高效的向量相似度搜索工具)来衡量简历与 JD 的匹配程度。

2、awesome-python-htmx:Python 中使用 htmx 作 Web 开发的精选内容[17] (英)

PyHAT 旨在 Python 中推广 htmx+ASGI+TailwindCSS,这个项目列出了一些入门资源、教程、设计理论、周边生态等等。

3、CodeGeeX2: 更强大的多语言代码生成模型[18]

基于 ChatGLM2-6B 基座语言模型,在 Python 上达到 35.9% 的 Pass@1 一次通过率,超越规模更大的 StarCoder-15B。CodeGeeX 插件支持 VS Code、 IntelliJ IDEA、PyCharm、GoLand、WebStorm、Android Studio 等IDE。(star 1K)

AI编程助手AI编程助手

4、Chinese-Llama-2-7b: 第一个能下载运行的中文 LLaMA2 模型[19]

开源可商用的中文版 Llama2 模型及中英文 SFT 数据集,兼容适配所有针对原版 llama-2-chat 模型的优化。(star 1K)

5、docker-llama2-chat: LLaMA2 (official / 中文版 / INT4 / llama2.cpp)[20]

中文开源项目,三步上手 LLaMA2,作者写了一系列教程博客。

6、taipy:将数据和 AI 算法转变为完整的 Web 应用[21] (英)

一个全栈项目,快速将数据和 AI 构建出 Web 应用。

前后端示意图前后端示意图

7、pyrasite:将代码注入正在运行的 Python 进程[22] (英)

允许在运行中的 Python 进程里注入自定义代码,以实现动态调试、修改变量值、破解加密、分析运行时行为等功能。支持多种注入方式,包括注入到 Python 解释器、注入到指定函数、注入到特定线程等。(star 2.7K)

8、python-manhole:调试运行中的 Python 程序[23] (英)

在运行中的 Python 进程里提供交互式的调试和监控功能,利用 Python 的"ptrace"机制,通过在目标进程中注入代码,可通过 SSH 或 telnet 等协议连接,实现远程交互。与 gevent 和 eventlet 兼容,有少许限制。

9、vscode-python:使用 VScode 和 Docker 设置 Python 开发环境[24] (英)

一个非常完备的教程项目,指导在 Docker 上运行 Python、设置开发环境与容器扩展、测试与部署等。

图片图片

使用VScode和Docker的开发工作流

10、webdriver_manager:Python 的 Webdriver 管理器[25] (英)

使用 Selenium 与 Playwright 等框架时,要管理各种浏览器驱动。这个项目简化了浏览器驱动的管理与使用方式。

11、lets-plot:用于统计数据的开源绘图库[26] (英)

JetBrains 开源的一个绘图库,可创建美观、交互式的统计图表和数据可视化。为 Python 和 Kotlin 开发者提供类似 ggplot2 的绘图 API。(star 1.1K)

12、pdfarranger:在图形界面合并或拆分 PDF 文档,支持旋转、裁剪和重排[27] (英)

一个小型 python-gtk 程序,通过直观的方式编辑 PDF 文档。它的后端基于 pikepdf[28] ,这是一个用于读写 PDF 文件的库。(star 2.3K)

pdfarranger的界面pdfarranger的界面

🥂讨论&问题

1、关于 PEP-703 的指导委员会通知(使 CPython 的 GIL 成为可选)[29] (英)

在第 11 期周刊中,我们分享过“如果 PEP-703 被采纳,Meta 将投入人力支持”,现在又有进展啦,指导委员会打算接受 PEP-703 了!这篇帖子列出几个基本原则与三个阶段的开发计划。向后兼容性是重中之重,这不会是 Python 4。

参考资料

[1]Jupyter Notebook 7 隆重发布: https://blog.jupyter.org/announcing-jupyter-notebook-7-8d6d66126dcf

[2]Python 中的弱引用与基础类型支持情况探究: https://juejin.cn/post/7258881840823615544

[3]分布式锁的介绍与 Python 实现: http://so1n.me/2023/07/23/distributed_lock_lntroduction_and_lmplementation/

[4]释放 PyScript 的力量:在 HTML 中运行 Python 代码: https://scofield.hashnode.dev/unlocking-the-power-of-pyscript-a-guide-to-running-python-code-in-your-html

[5]通过并发实现更快的文件 I/O: https://superfastpython.com/faster-file-io-with-concurrency/

[6]如何编写完美干净的 Python 代码?: https://dev.to/atkumar/how-to-write-impeccably-clean-code-that-will-save-your-sanity-4np9

[7]Python 日志记录:对比最流行的 6 个库: https://betterstack.com/community/guides/logging/best-python-logging-libraries/

[8]使用 cProfile 分析模块级代码: https://adamj.eu/tech/2023/07/23/python-profile-section-cprofile/

[9]掌握 Python 函数式编程: https://www.codium.ai/blog/mastering-functional-programming-in-python/

[10]Python 3.12 预览版:更直观和一致的 f-string: https://realpython.com/python312-f-strings/

[11]使用 AsyncMixin 创建可等待的构造函数: https://dev.to/akarshan/asynchronous-python-magic-how-to-create-awaitable-constructors-with-asyncmixin-18j5

[12]在 Python 中查找并修复不安全的直接对象引用: https://snyk.io/blog/insecure-direct-object-references-python/

[13]使用异步 Python 克服性能瓶颈:深入研究 CPU 密集型代码: https://medium.com/@DorIndivo/overcoming-performance-bottlenecks-with-async-python-a-deep-dive-into-cpu-bound-code-b604a400255a

[14]PEP-720 交叉编译 Python 包: https://peps.python.org/pep-0720/

[15]PEP-722 单文件脚本的依赖关系规范: https://pep-previews--3210.org.readthedocs.build/pep-0722/

[16]Resume-Matcher:比较简历与职位描述,按照打分排名: https://github.com/srbhr/Resume-Matcher

[17]awesome-python-htmx:Python 中使用 htmx 作 Web 开发的精选内容: https://github.com/PyHAT-stack/awesome-python-htmx

[18]CodeGeeX2: 更强大的多语言代码生成模型: https://github.com/THUDM/CodeGeeX2

[19]Chinese-Llama-2-7b: 第一个能下载运行的中文 LLaMA2 模型: https://github.com/LinkSoul-AI/Chinese-Llama-2-7b

[20]docker-llama2-chat: LLaMA2 (official / 中文版 / INT4 / llama2.cpp): https://github.com/soulteary/docker-llama2-chat

[21]taipy:将数据和 AI 算法转变为完整的 Web 应用: https://github.com/Avaiga/taipy

[22]pyrasite:将代码注入正在运行的 Python 进程: https://github.com/lmacken/pyrasite

[23]python-manhole:调试运行中的 Python 程序: https://github.com/ionelmc/python-manhole

[24]vscode-python:使用 VScode 和 Docker 设置 Python 开发环境: https://github.com/RamiKrispin/vscode-python

[25]webdriver_manager:Python 的 Webdriver 管理器: https://github.com/SergeyPirogov/webdriver_manager

[26]lets-plot:用于统计数据的开源绘图库: https://github.com/JetBrains/lets-plot

[27]pdfarranger:在图形界面合并或拆分 PDF 文档,支持旋转、裁剪和重排: https://github.com/pdfarranger/pdfarranger

[28]pikepdf: https://github.com/pikepdf/pikepdf

[29]关于 PEP-703 的指导委员会通知(使 CPython 的 GIL 成为可选): https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474?s=35

[30]赞赏: https://img.pythoncat.top/wechat_code.png

[31]买杯咖啡: https://www.buymeacoffee.com/pythoncat

[32]微信: https://img.pythoncat.top/python_cat.jpg

[33]博客: https://pythoncat.top

[34]邮件: https://pythoncat.substack.com

[35]Github: https://github.com/chinesehuazhou/python-weekly

[36]Telegram: https://t.me/pythontrendingweekly

[37]Twitter: https://twitter.com/chinesehuazhou

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论