Python 潮流週刊#25:效能最快的程式碼格式化工具 Ruff!

豌豆花下貓發表於2023-11-04

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

本週刊由 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 倍!

不用快取,格式化約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 面向內部管理員,不應該暴露給終端使用者。

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 框架設計、非同步程式設計、功能封裝與專案管理。

一個請求的生命週期

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

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

?️專案&資源

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、依賴注入、許可權管理等功能。

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: 小紅書圖文/影片作品採集工具

支援採集和下載小紅書圖文/影片作品,支援批次下載,有作品檔案完整性處理機制。

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 相關的開發者與組織的賬號。

相關文章