你好,我是貓哥。這裡每週分享優質的 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 倍!
Python 3.12 已經發布了,你是否迫切想要升級了呢?現在是最佳的升級到 3.12 的時候麼?文章建議你等到 12 月,等釋出 3.12.1 錯誤修復版本後,因為新版本存在這些問題:不相容的軟體包、缺少二進位制包、每次大版本總有大量的問題要修復。
作者認為 3.12 對於 Python 的意義,大於 3.5 的“async/await” 和 3.6 的 “Type Hint” 對於 Python 的意義!主要分析了三個方面提升:PEP-669 帶來的可觀測性、PEP-684 為 non-GIL 帶來的效能提升、PEP-697 全新 C API 保證跨版本相容性。
作者給了兩個建議:不要使用 pip 和 requirements.txt
來管理 Python 依賴項,推薦使用 Poetry。pip 的主要問題是沒有 lockfile 和手工管理虛擬環境麻煩。除了 Poetry,作者也提及了 Hatch 和 PDM。
Django 提供了一個預設的後臺管理系統,即 Django Admin,它的 UI 很多年沒有變化,顯得設計過時了。為什麼 Django 維護者們不改善它呢?作者透過詢問多位維護者,得出了它的歷史及如此設計的原因,主要觀點是 Django Admin 面向內部管理員,不應該暴露給終端使用者。
PyOxidizer 作者的一篇長文,他在將 Python 3.12 用於另一個庫時,CI 執行python setup.py
提示 setuptools 無法匯入。作者在尋求解決方案時,發現 Python 的打包生態非常讓人困惑,他經歷了一系列複雜而耗時的過程。
Ptpython 是一個功能豐富且對使用者友好的 Python REPL,這是一篇非常詳細的使用教程。重點介紹的功能包括歷史記錄、輸入驗證、自動補全、自動處理縮排、自定義互動式 shell、在指令碼中嵌入 ptpython 等。
8、100%的測試覆蓋率是不夠的:Python 中基於屬性的測試
測試覆蓋率固然重要,但這項指標並不足以解決所有問題。文章透過示例揭示測試覆蓋率的不足,簡單介紹瞭如何用 Hypothesis 作基於屬性的測試。
9、從零開始編寫一個 Python 非同步 ASGI Web 框架
從零開始編寫一個非同步 ASGI Web 框架難麼?需要了解哪些知識、實現哪些功能、思考哪些問題?這篇循序漸進的教程是很好的學習材料,讓你瞭解 Web 框架設計、非同步程式設計、功能封裝與專案管理。
不在日誌中列印明文密碼是安全需求,但是有太多可能出現列印密碼的情況,如何能高效地隱藏明文密碼呢?文章介紹了基於 logging 模組的兩種實現方案:自定義 filter 和自定義 formatter,使用特定規則過濾明文密碼。
monorepo 是將所有專案都放到一個程式碼倉管理,可能包含不同語言和框架。這意味著對它的依賴管理和 CI/CD 等都與普通程式碼倉不同。文章介紹如何使用 GitHub Actions 作為 CI/CD 工具構建簡單的 Python monorepo。
我們通常習慣將 Python 稱為一種解釋型語言,因為它在執行時逐行解釋和執行程式碼。很多人還知道 Python 其實也有編譯的過程,直譯器會先編譯再執行。然而作者不止步於此,他透過蘇格拉底式對話和幾輪實驗,引導讀者重新思考“解釋”與“編譯”:它們是錯誤的二分法、限制了程式語言的可能性。Python 既是解釋型語言,也是編譯型語言!
?Python潮流週刊?已免費釋出了 25 期,訪問下方連結,即可檢視全部內容:https://pythoncat.top/tags/weekly
週末不休息,又更新了一期週刊,我想明天喝杯奶茶了~~
?️專案&資源
1、ccxt:加密貨幣交易 API,支援 100 多個交易所
用於加密貨幣交易的 JavaScript/Python/PHP/C# 庫,支援許多比特幣/以太幣/山寨幣交易市場和商家 API。(star 29.5K)
這個專案是 DjangoCon US 2023 的演示專案,使用單檔案不到 10 行程式碼,演示一個最小的 Django 應用。
3、esmerald:高度可擴充套件、高效能的 Web 框架
基於 Starlette 和 Pydantic 之上構建的開箱即用的 Web 框架,用於構建現代可擴充套件的 API 應用,支援同步和非同步,提供 DAO、ORM、ODM、依賴注入、許可權管理等功能。
4、Python-Type-Challenges:透過線上挑戰來學習 Python 型別提示
一個很有意思的專案,它包含從初級到高階的一系列挑戰題目,讓你線上練習 type hint 的使用。
可生成 OpenAPI http 服務端,內建 Prometheus 指標,提供結構化日誌記錄,支援多種語言程式碼生成。
一款高階的 Python 反混淆器,面向惡意軟體分析師和逆向工程師,它擁有精美的 UI 和一些高階功能。
非常非常豐富的公共 API 清單,內容應有盡有。(star 2K)
阿里達摩院開源的語音識別工具包,功能包括語音識別(ASR)、語音端點檢測(VAD)、標點恢復、語言模型、說話人驗證、說話人分離和多人對話語音識別等。(star 1.2K)
9、XHS_Downloader: 小紅書圖文/影片作品採集工具
支援採集和下載小紅書圖文/影片作品,支援批次下載,有作品檔案完整性處理機制。
10、RSS-GPT:使用 ChatGPT 為你的 RSS 訂閱源生成摘要
使用 GitHub workflow 自動執行一個簡單的 Python 指令碼,呼叫 OpenAI API 為 RSS 訂閱源生成摘要,然後將新生成的 RSS 訂閱源推送到 GitHub Pages。配置簡單快速,無需伺服器。
用於檢查原始碼中拼寫錯誤的單詞,支援多種執行方式,可指定忽略單詞和檔案,可用於 pre-commit。(star 1.5K)
具有 70 億引數,在五千億 Tokens 進行了訓練,上下文視窗長度為 8192。在權威的程式碼評估Benchmark 上,CodeShell 取得同等規模最好的效能。(star 1.2K)
?贊助&支援
如果你喜歡週刊,請分享給其他需要的同學,讓更多人可以從中受益~
如果你想幫助週刊辦得更好,歡迎向我們投稿或提出建議:投稿/建議通道
如果你是品牌方或廣告主,歡迎私信我,洽談贊助與合作事項。