Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff!

2023年11月04日21:07:11 科技 1392

你好,我是貓哥。這裡每周分享優質的 PythonAI通用技術內容,大部分為英文。標題取自其中一則分享,不代表全部內容都是該主題,特此聲明。

本周刊由 Python貓 出品,精心篩選國內外的 250+ 信息源,為你挑選最值得分享的文章、教程、開源項目、軟體工具、播客和視頻、熱門話題等內容。願景:幫助所有讀者精進 Python 技術,並增長職業和副業的收入。

微信 | 博客 | 郵件 | Github | Telegram | Twitter

本周刊歸檔在 GitHub 上,已收穫 800+ star 好評,如果對你有幫助,請給顆 star 支持一下吧:https://github.com/chinesehuazhou/python-weekly

文章&教程

1、Ruff:一款極其快、兼容 Black 的 Python 格式化工具

我在今年 4 月份介紹過 性能最快的代碼分析工具 Ruff,當時發現它不局限於 Linter 的定位,還提供了部分 FORMatter 的功能。現在,它發布了重大更新,正式成為性能最快的 Python 代碼格式化工具,比 Black 快 30 倍以上,比 YAPF 快 100 倍!

Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff! - 天天要聞

不用緩存,格式化約25萬行代碼的表現

2、你應該什麼時候升級到 Python 3.12?

Python 3.12 已經發布了,你是否迫切想要升級了呢?現在是最佳的升級到 3.12 的時候么?文章建議你等到 12 月,等發布 3.12.1 錯誤修復版本後,因為新版本存在這些問題:不兼容的軟體包、缺少二進位包、每次大版本總有大量的問題要修復。

3、Python 3.12:一個被人忽略的史詩級版本

作者認為 3.12 對於 Python 的意義,大於 3.5 的「async/await」 和 3.6 的 「Type Hint」 對於 Python 的意義!主要分析了三個方面提升:PEP-669 帶來的可觀測性、PEP-684 為 non-GIL 帶來的性能提升、PEP-697 全新 C API 保證跨版本兼容性。

4、不要再用 requirements.txt 了

作者給了兩個建議:不要使用 pip 和 requirements.txt 來管理 Python 依賴項,推薦使用 Poetry。pip 的主要問題是沒有 lockfile 和手工管理虛擬環境麻煩。除了 Poetry,作者也提及了 Hatch 和 PDM

5、為什麼 Django 後台管理系統那麼「醜陋」?

Django 提供了一個默認的後台管理系統,即 Django Admin,它的 UI 很多年沒有變化,顯得設計過時了。為什麼 Django 維護者們不改善它呢?作者通過詢問多位維護者,得出了它的歷史及如此設計的原因,主要觀點是 Django Admin 面向內部管理員,不應該暴露給終端用戶。

Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff! - 天天要聞

Django Admin管理頁面

6、我遷移棄用 setup.py 的糟糕體驗

PyOxidizer 作者的一篇長文,他在將 Python 3.12 用於另一個庫時,CI 運行python setup.py 提示 setuptools 無法導入。作者在尋求解決方案時,發現 Python 的打包生態非常讓人困惑,他經歷了一系列複雜而耗時的過程。

7、使用 Ptpython 提高你的編碼效率

Ptpython 是一個功能豐富且對用戶友好的 Python REPL,這是一篇非常詳細的使用教程。重點介紹的功能包括歷史記錄、輸入驗證、自動補全、自動處理縮進、自定義互動式 shell、在腳本中嵌入 ptpython 等。

8、100%的測試覆蓋率是不夠的:Python 中基於屬性的測試

測試覆蓋率固然重要,但這項指標並不足以解決所有問題。文章通過示例揭示測試覆蓋率的不足,簡單介紹了如何用 Hypothesis 作基於屬性的測試。

9、從零開始編寫一個 Python 非同步 ASGI Web 框架

從零開始編寫一個非同步 ASGI Web 框架難么?需要了解哪些知識、實現哪些功能、思考哪些問題?這篇循序漸進的教程是很好的學習材料,讓你了解 Web 框架設計、非同步編程、功能封裝與項目管理

Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff! - 天天要聞

一個請求的生命周期

10、Python 如何在日誌中隱藏明文密碼?

不在日誌中列印明文密碼是安全需求,但是有太多可能出現列印密碼的情況,如何能高效地隱藏明文密碼呢?文章介紹了基於 logging 模塊的兩種實現方案:自定義 filter 和自定義 formatter,使用特定規則過濾明文密碼。

11、從混沌到凝聚:構建你自己的 Monorepo

monorepo 是將所有項目都放到一個代碼倉管理,可能包含不同語言和框架。這意味著對它的依賴管理和 CI/CD 等都與普通代碼倉不同。文章介紹如何使用 GitHub Actions 作為 CI/CD 工具構建簡單的 Python monorepo。

12、Python 是一種編譯型語言

我們通常習慣將 Python 稱為一種解釋型語言,因為它在運行時逐行解釋和執行代碼。很多人還知道 Python 其實也有編譯的過程,解釋器會先編譯再執行。然而作者不止步於此,他通過蘇格拉底式對話和幾輪實驗,引導讀者重新思考「解釋」與「編譯」:它們是錯誤的二分法、限制了編程語言的可能性。Python 既是解釋型語言,也是編譯型語言!

Python潮流周刊已免費發布了 25 期,訪問下方鏈接,即可查看全部內容:https://pythoncat.top/tags/weekly

周末不休息,又更新了一期周刊,我想明天喝杯奶茶了~~

Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff! - 天天要聞

️項目&資源

1、ccxt:加密貨幣交易 API,支持 100 多個交易所

用於加密貨幣交易的 JavaScript/Python/PHP/C# 庫,支持許多比特幣/以太幣/山寨幣交易市場和商家 API。(star 29.5K)

2、uDjango:單文件的 Django 微型項目

這個項目是 DjangoCon US 2023 的演示項目,使用單文件不到 10 行代碼,演示一個最小的 Django 應用。

3、esmerald:高度可擴展、高性能的 Web 框架

基於 Starlette 和 Pydantic 之上構建的開箱即用的 Web 框架,用於構建現代可擴展的 API 應用,支持同步和非同步,提供 DAO、ORM、ODM、依賴注入、許可權管理等功能。

Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff! - 天天要聞

4、Python-Type-Challenges:通過在線挑戰來學習 Python 類型提示

一個很有意思的項目,它包含從初級到高級的一系列挑戰題目,讓你在線練習 type hint 的使用。

5、mify:微服務基礎架構,代碼生成工具

可生成 OpenAPI http 服務端,內置 Prometheus 指標,提供結構化日誌記錄,支持多種語言代碼生成。

6、de4py:Python 逆向工程工具包

一款高級的 Python 反混淆器,面向惡意軟體分析師和逆向工程師,它擁有精美的 UI 和一些高級功能。

7、public-apis:面向開發者的公共 API 列表

非常非常豐富的公共 API 清單,內容應有盡有。(star 2K)

8、FunASR:端到端語音識別工具包

阿里達摩院開源的語音識別工具包,功能包括語音識別(ASR)、語音端點檢測(VAD)、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等。(star 1.2K)

9、XHS_Downloader: 小紅書圖文/視頻作品採集工具

支持採集和下載小紅書圖文/視頻作品,支持批量下載,有作品文件完整性處理機制。

Python 潮流周刊#25:性能最快的代碼格式化工具 Ruff! - 天天要聞

10、RSS-GPT:使用 ChatGPT 為你的 RSS 訂閱源生成摘要

使用 GitHub workflow 自動運行一個簡單的 Python 腳本,調用 OpenAI API 為 RSS 訂閱源生成摘要,然後將新生成的 RSS 訂閱源推送到 GitHub Pages。配置簡單快速,無需伺服器。

11、codespell:檢查代碼是否存在常見拼寫錯誤

用於檢查源代碼中拼寫錯誤的單詞,支持多種運行方式,可指定忽略單詞和文件,可用於 pre-commit。(star 1.5K)

12、codeshell:多語言代碼大模型基座

具有 70 億參數,在五千億 Tokens 進行了訓練,上下文窗口長度為 8192。在權威的代碼評估Benchmark 上,CodeShell 取得同等規模最好的性能。(star 1.2K)

贊助&支持

如果你喜歡周刊,請分享給其他需要的同學,讓更多人可以從中受益~

如果你覺得周刊有價值,請隨意讚賞 或 買杯咖啡 進行支持!

如果你想幫助周刊辦得更好,歡迎向我們投稿或提出建議:投稿/建議通道

如果你是品牌方或廣告主,歡迎私信我,洽談贊助與合作事項。

歡迎訂閱

  • 微信公眾號:除更新周刊外,還發布其它原創作品,並轉載一些優質文章。(可加好友,可加讀者交流群)
  • 博客 及 RSS:我的獨立博客,上面有歷年原創/翻譯的技術文章,以及從 2009 年以來的一些隨筆。
  • Github:你可以獲取本周刊的 Markdown 源文件,做任何想做的事!
  • 郵件:在 Substack 上開通的頻道,滿足你通過郵件閱讀時事通訊的訴求。
  • Telegram:除了發布周刊的通知外,我將它視為一個「副刊」,補充發布更加豐富的資訊。
  • Twitter:我的關注列表裡有大量 Python 相關的開發者與組織的賬號。

科技分類資訊推薦

從聊天機器人到協作夥伴:AI智能體如何重塑企業工作 - 天天要聞

從聊天機器人到協作夥伴:AI智能體如何重塑企業工作

Scott White至今仍對人工智慧從新奇技術轉變為真正工作夥伴的速度感到驚嘆。僅僅一年多前,這位Anthropic公司Claude AI產品負責人目睹了早期AI編程工具甚至無法完成一行代碼的窘境。如今,儘管並非專業程序員,他卻能親自構建
小米 16 系列迎最新爆料,Pro 系列鏡頭模組大改,橫向延伸全尺寸設計 - 天天要聞

小米 16 系列迎最新爆料,Pro 系列鏡頭模組大改,橫向延伸全尺寸設計

近日,包括數碼閑聊站在內等多個消息源,就下一代旗艦新機紛紛進行了最新爆料,其中小米 16 系列也在近日迎來了最新消息。根據最新爆料來看,小米 16 系列將會在以往的標準版、Pro 版、Ultra 的基礎上新增一款 Pro Max 型號。但一一對應來看,新款的小米 16 Pro 即對標標準版 , 為大家熟悉的 6.3 英寸小尺寸旗艦機型。而 1...
魅族 22 系列手機本月到來,提供全新開模小尺寸旗艦版本 - 天天要聞

魅族 22 系列手機本月到來,提供全新開模小尺寸旗艦版本

伴隨著時間來到 7 月,各大手機廠商的新機更新計劃有所放緩,不過根據多方爆料來看,「小廠代表」 星紀魅族旗下的魅族 22 系列將會在本月與大家見面。目前魅族 22 系列仍然十分 「神秘」,欠缺主要的配置爆料與外觀圖片作為參考。但根據部分什麼爆料者的消息來看,魅族 22 系列將會全新開模,並提供小尺寸旗艦版本可供選擇...
vivo X300 Pro 更多細節曝光,大 R 角直面屏,新款大底主攝方案加持 - 天天要聞

vivo X300 Pro 更多細節曝光,大 R 角直面屏,新款大底主攝方案加持

今天數碼博主數碼閑聊站在與網友互動中,透露了一款搭載聯發科天璣 9500 的 「大杯」 工程機的最新進展。參考爆料內容與評論區互動來看,預計為 vivo X300 Pro。除搭載聯發科天璣 9500 外,據悉該機一大變化之處在於屏幕部分,根據最新消息來看將會搭載一塊大 R 角直屏,不再採用曲面屏或微曲面屏設計。而這也將成為下一代...
數據驅動,柔性智能建造平台助力高效管理 - 天天要聞

數據驅動,柔性智能建造平台助力高效管理

長沙晚報掌上長沙7月1日訊(全媒體記者 劉嘉)6月30日,由長沙市智能建造產業鏈推進辦公室與中建五局三公司聯合承辦的「創新驅動 智建未來」科技活動舉行。該活動不僅展示了長沙在智能建造領域的創新成果,也為行業高質量發展提供了可複製的實踐經驗。
以前不敢想,機械革命搭配出4959元的RTX5050本,還有2.5K屏 - 天天要聞

以前不敢想,機械革命搭配出4959元的RTX5050本,還有2.5K屏

最近RTX5050本開始大面積登場,很多消費者也想知道,廠商到底能搭配出什麼樣配置?結果機械革命沒有讓大家失望,搭配出一個6199元的新品,補貼後價格4959元,再一次刷新新顯卡筆記本的價格新低。同時,其配置還不是很潦草,還是很平衡的,讓我們來看看。這款本配置了R9 7845HX處理器,12核心,24線程,台積電5nm工藝,Zen4...
中國移動三大核心布局 助力南亞東南亞數字經濟新發展 - 天天要聞

中國移動三大核心布局 助力南亞東南亞數字經濟新發展

【來源:雲南網】6月30日,由雲南省人民政府和雲南省工業和信息化廳聯合舉辦的面向南亞東南亞數字合作推介會在北京舉行,中國移動副總經理陳懷達出席,中國移動數智化部副總經理陶濤發表主題為《建設跨境數據交易高速公路,服務數字信息大通道建設》的演講