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

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

文章&教程

1、Python 装饰器的 3 个真实案例[3]

这是作者装饰器系列文章的第三篇,从很多开源库的现实用法中提取出了三个通用型用法:拦截调用、作函数注册、丰富函数行为。

2、这不是面试建议:Python 不用堆和树实现按优先级过期的 LRU 缓存[4]

假如这是一家超级大公司的面试题,不使用堆和二叉搜索树,如何实现标题的算法?文章通过最小合理方案,一步步提出问题再优化代码,并比较各种方案的时间复杂度,可以学到很多东西。

3、Python dict() 和 {} 的性能分析[5]

Python 创建字典的两种写法 dict() 与 {} 有什么区别?文章通过它们的字节码和 CPython 解释器源码进行了深度分析。单纯看性能,结论是:{} 要比 dict() 快。(附:Python 为什么系列曾写过 Python 疑难问题:[] 与 list() 哪个快?为什么快?快多少呢?[6])

4、增强 Markdown 语言以实现出色的 Python 图形界面[7]

Taipy团队开发了增强型 Markdown API,通过添加标签在内容中生成图形界面元素。

5、7 个 Python 内存优化技巧[8]

介绍了 Python 中 7 个可以优化内存的技巧:在类定义中使用__slots__、使用生成器、使用mmap作大文件处理、减少使用全局变量、利用逻辑运算符的短路求值、选择合适的数据类型、使用字符串驻留技术。

6、Python 中的垃圾回收:你需要知道的事情[9]

Python 垃圾回收是如何实现的?CPython 为什么使用引用计数?分代垃圾回收器可以解决什么问题?如何查看和调试引用周期?

7、Postgres 与 DynamoDB:该选择哪个数据库?[10]

PostgresDynamoDB两种数据库分别是如何使用的?应该如何选择?文章比较了它们的 ORM、查询、性能、备份、迁移等方面,并根据不同场景给出了方案选型的建议。

8、使用 Streamlit 在 Python 中创建仪表板[11]

一篇详细的官方博客教程,使用 Pandas 作数据整理,用 Altair/Plotly 作数据可视化,用 Streamlit 作前端。

9、scrapscript.py 编程语言的实现过程[12]

Scrapscript是一种小型、纯粹、函数型、内容可寻址、网络优先的编程语言,作者介绍了它的设计原则、特性、已实现和开发中的功能,以及使用 Python 实现的过程。

10、Python Cryptography 已支持 X.509[13]

X.509 是一种 PKI 标准,用于定义数字证书的格式和标准化证书的属性。Cryptography的 42.0.0 版本提供了 X.509 相关 API,文章介绍了它的重要意义、解决的相关问题。

11、我对动态类型感到失望[14]

作者感到失望的原因不是动态类型相比静态类型有什么缺点,而是认为 Python 没有充分利用动态类型的优势。动态不是静态的对立面,动态是可在运行时变更类型。作者希望增强动态分析的能力,希望动态类型的“test amplification”更容易,而不是转向类型注释或静态类型。

12、Python “令人失望”的超能力[15]

这篇文章是对上一则分享的回应,通过 Werkzeug、Pony、Django、fluent-compile、Pytest 等库使用到的神奇技术(猴子补丁和动态元编程),说明 Python 动态类型的超能力。Python 能做的事或许超出你想象。

Python潮流周刊每 30 期为一季,第一季的精华内容已整理成一篇,方便你随时查看。在线访问地址:Python 潮流周刊第一季精华合集(1~30)[16]

️项目&资源

1、core:可用于生产的 AI 助手框架[17]

一个基于任意大语言模型构建自定义 AI 的框架,使用 Docker 部署。API 优先,支持插件扩展,带管理面板,记忆对话和文档。(star 1.6K)

2、van-gonography:将任意类型的文件隐藏在一张图像中[18]

支持将任意类型文件隐藏在一张图像中,不影响图像的视觉效果。支持图像解码、图像比较、CLI、UI、跨平台、加密与压缩等功能。

3、mpmath:任意精度的浮点数运算[19]

支持高精度的实数和复数浮点数运算,提供了大量特殊的用于数学运算的函数。

4、sqlite-worker:在多线程应用中轻松管理 SQLite[20]

为 SQLite 数据库操作提供线程安全的接口,基于队列的语句执行。

5、granian:用于 Python 程序的 Rust HTTP server[21]

用 Rust 实现的单一 HTTP 实现,避免常见的 Gunicorn + uvicorn + http-tools 依赖组合。支持 ASGI/3、RSGI 和 WSGI 接口应用,支持 HTTP/1 和 HTTP/2 协议。(star 1.5K)

6、fasthx:FastAPI + HTMX 开发框架[22]

FastAPI + HTMX 的组合,主要特点:装饰器语法、支持任意模板引擎和服务器端渲染库、内置 Jinja2、同时支持 HTMX 请求和普通请求、支持同步和异步路由……

7、ml-engineering:机器学习工程开源书籍[23]

一本适合 LLM/VLM 训练工程师和操作员的技术手册,可帮助成功训练大型语言模型和多模态模型。(star 6.9K)

8、sglang:专为大型语言模型设计的结构化生成语言[24]

通过同时设计前端语言和运行时系统,使交互 LLMs 更快、更可控。支持多个链式生成调用、高级提示技术、控制流、多模态、并行和外部交互,具有 RadixAttention 的高性能运行时。

9、chatgpt_telegram_bot:ChatGPT Telegram 机器人,无限制用 GPT-4 [25]

将 ChatGPT 部署成自己的 Telegram 机器人,支持 GPT-4、GPT-4 Turbo 和 DALLE 2,支持群聊,内置 15 种特殊对话模式,支持查看 OpenAI API 花费等功能。(star 4.5K)

10、HuixiangDou:基于 LLM 的领域知识助手[26]

它的中文名是“茴香豆”,提出一套解答技术问题的算法 pipeline,部署成本低,支持群聊这类复杂场景,支持微信群、lark 群组、飞书群、钉钉机器人等 IM。

11、ComfyUI-InstantID:ComfyUI 的 InstantID 的非官方实现[27]

使用 ID Base 模型、InsightFace 模型、ID ControlNet 模型、Ipadapter_instantid 等模型,官方提供 8 种风格。

12、ComfyUI-PhotoMaker-ZHO:ComfyUI 的 PhotoMaker 的非官方实现[28]

支持 lora、支持多批次、支持通用的 styler,官方提供 10 种风格。

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

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

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

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

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

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

  • 参考资料

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

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

    Python 装饰器的 3 个真实案例: https://www.bitecode.dev/p/xmas-decorations-part-3

    这不是面试建议:Python 不用堆和树实现按优先级过期的 LRU 缓存: https://death.andgravity.com/lru-cache

    [5]

    Python dict() 和 {} 的性能分析: https://madebyme.today/blog/python-dict-vs-curly-brackets/

    [6]

    Python 疑难问题:[] 与 list() 哪个快?为什么快?快多少呢?: https://pythoncat.top/posts/2020-10-14-list

    [7]

    增强 Markdown 语言以实现出色的 Python 图形界面: https://www.taipy.io/posts/augmenting-the-markdown-language-for-great-python-graphical-interfaces

    [8]

    7 个 Python 内存优化技巧: https://medium.com/techtofreedom/7-python-memory-optimization-tricks-to-enhance-your-codes-efficiency-5ef65bf415e7

    [9]

    Python 中的垃圾回收:你需要知道的事情: https://rushter.com/blog/python-garbage-collector/

    [10]

    Postgres 与 DynamoDB:该选择哪个数据库?: https://testdriven.io/blog/postgres-vs-dynamodb/

    [11]

    使用 Streamlit 在 Python 中创建仪表板: https://blog.streamlit.io/crafting-a-dashboard-app-in-python-using-streamlit/

    [12]

    scrapscript.py 编程语言的实现过程: https://bernsteinbear.com/blog/scrapscript/

    [13]

    Python Cryptography 已支持 X.509: https://blog.trailofbits.com/2024/01/25/we-build-x-509-chains-so-you-dont-have-to/

    [14]

    我对动态类型感到失望: https://buttondown.email/hillelwayne/archive/i-am-disappointed-by-dynamic-typing/

    [15]

    Python “令人失望”的超能力: https://lukeplant.me.uk/blog/posts/pythons-disappointing-superpowers/

    [16]

    Python 潮流周刊第一季精华合集(1~30): https://pythoncat.top/posts/2023-12-11-weekly

    [17]

    core:可用于生产的 AI 助手框架: https://github.com/cheshire-cat-ai/core

    van-gonography:将任意类型的文件隐藏在一张图像中: https://github.com/JoshuaKasa/van-gonography

    mpmath:任意精度的浮点数运算: https://github.com/mpmath/mpmath

    sqlite-worker:在多线程应用中轻松管理 SQLite: https://github.com/roshanlam/sqlite-worker

    [21]

    granian:用于 Python 程序的 Rust HTTP server: https://github.com/emmett-framework/granian

    [22]

    fasthx:FastAPI + HTMX 开发框架: https://github.com/volfpeter/fasthx

    [23]

    ml-engineering:机器学习工程开源书籍: https://github.com/stas00/ml-engineering

    [24]

    sglang:专为大型语言模型设计的结构化生成语言: https://github.com/sgl-project/sglang

    [25]

    chatgpt_telegram_bot:ChatGPT Telegram 机器人,无限制用 GPT-4 : https://github.com/father-bot/chatgpt_telegram_bot

    [26]

    HuixiangDou:基于 LLM 的领域知识助手: https://github.com/InternLM/HuixiangDou

    [27]

    ComfyUI-InstantID:ComfyUI 的 InstantID 的非官方实现: https://github.com/ZHO-ZHO-ZHO/ComfyUI-InstantID

    [28]

    ComfyUI-PhotoMaker-ZHO:ComfyUI 的 PhotoMaker 的非官方实现: https://github.com/ZHO-ZHO-ZHO/ComfyUI-PhotoMaker-ZHO

    [29]

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

    [30]

    博客: https://pythoncat.top

    [31]

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

    [32]

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

    [33]

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

    [34]

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

    [35]

    Telegram: https://t.me/pythontrendingweekly

    [36]

    Twitter: https://twitter.com/chinesehuazhou

    如果你觉得本文有帮助