Skip to content

Latest commit

 

History

History
133 lines (72 loc) · 9.6 KB

2024-01-27-weekly.md

File metadata and controls

133 lines (72 loc) · 9.6 KB
title description pubDate author
Python 潮流周刊#37:Python “令人失望”的动态类型超能力
本期周刊分享了 12 篇文章,12 个开源项目
2024-01-27
豌豆花下猫

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

🐱产品推荐

本周刊由“Python猫”出品,这是一个以 Python 技术科普和分享为主的科技自媒体,欢迎关注同名公众号。品牌合作请私信联系。

🦄文章&教程

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

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

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

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

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

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

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

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

图形界面的效果演示

5、7 个 Python 内存优化技巧

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

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

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

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

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

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

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

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

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

10、Python Cryptography 已支持 X.509

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

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

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

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

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

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

🐿️项目&资源

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

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

AI框架的对话界面

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

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

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

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

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

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

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

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

6、fasthx:FastAPI + HTMX 开发框架

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

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

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

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

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

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

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

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

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

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

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

美美的安妮海瑟薇

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

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

🐼欢迎订阅

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