Python 潮流周刊#26:requests3 的現(xiàn)狀
△點(diǎn)擊上方“Python貓”關(guān)注 ,回復(fù)“1”領(lǐng)取電子書

你好,我是貓哥。這里每周分享優(yōu)質(zhì)的 Python、AI 及通用技術(shù)內(nèi)容,大部分為英文。本周刊開源,歡迎投稿[1]。另有電報頻道[2]作為副刊,補(bǔ)充發(fā)布更加豐富的資訊。
??品牌贊助
本周刊由“Python貓”出品,這是一個以 Python 技術(shù)科普和分享為主的科技自媒體,歡迎關(guān)注同名公眾號。品牌合作請私信聯(lián)系。
??文章&教程
1、Kenneth Reitz:遲來的道歉,以及 requests 3 的進(jìn)展[3]
2019 年時 requests 3 的籌款鬧出了不小的風(fēng)波,后來似乎沒什么消息。現(xiàn)在作者發(fā)了一篇道歉文,看來項(xiàng)目是要重啟了!文中列舉了目前已經(jīng)完成的一些事情,包括給所有公開接口加上了類型提示、重構(gòu)所有命名空間和調(diào)整成兼容異步編程等。(附:籌款風(fēng)波之《Why I'm not collaborating with Kenneth Reitz[4]》)
2、grequests:異步的 HTTP 請求[5]
grequests 構(gòu)建在 gevent 庫之上,可以并發(fā)多個請求,有效利用異步編程的強(qiáng)大功能。這篇基礎(chǔ)教程介紹了它的基本使用方法,以及一個提升性能的建議。
3、開發(fā)一個 Python 編譯器和解釋器[6]
這是一系列博文,目前已更新 6 篇,目標(biāo)是探索和研究實(shí)現(xiàn) Python 等編程語言所需的概念和算法,將會涉及分詞器、解析器、編譯器和解釋器。
4、使用 Python+ChatGPT 開發(fā)一個書籍摘要 AI[7]
一篇教程,用 Python、Langchain 和 OpenAI embedding 開發(fā)一個書籍摘要工具。另外,作者使用 Streamlit 發(fā)布了一個在線體驗(yàn)網(wǎng)站[8]。
5、數(shù)據(jù)庫生成的列 :Django & SQLite[9]
GeneratedField 是正在開發(fā)的 Django 5.0 的新功能,利用數(shù)據(jù)庫的能力自動計(jì)算數(shù)據(jù)列的值。作者是 Django 的貢獻(xiàn)者,測試了在 SQLite 中使用這個新功能的各種場景。(附:這篇文章還介紹了一些 Django 5.0 中的新東西[10])
6、你能用 Python 的 bisect 模塊做到這些事[11]
bisect 模塊只有兩個函數(shù),但可以做很多事,文章介紹了:二分搜索、前綴搜索、在列表中查找連續(xù)的相等值、查找字典中最接近的鍵、自定義對象的排序、按照字典 key 搜索。
7、為什么說在 Windows 上為 Python 3.12 構(gòu)建的 SciPy 是一個小奇跡?[12]
每當(dāng) Python 發(fā)布新版本時,三方庫的維護(hù)者們也要緊鑼密鼓開發(fā)兼容的對應(yīng)版本,這不是輕松的事。作者介紹了他們遇到的嚴(yán)峻挑戰(zhàn),其實(shí)就是 Python 社區(qū)老大難的打包問題。好在維護(hù)者們已經(jīng)找到了適用的解決方案。
8、使用 AI 進(jìn)行網(wǎng)頁抓取實(shí)驗(yàn)(使用 GPT-4 解析 HTML)[13]
OpenAI 發(fā)布了新的模型,它的能力到底如何呢?使用 GPT-4 作網(wǎng)頁抓取,具有哪些優(yōu)點(diǎn)和缺點(diǎn)呢?文章分別實(shí)驗(yàn)了抓取結(jié)構(gòu)良好的網(wǎng)站、抓取 Google 自然搜索結(jié)果、抓取 Google SERP、以及抓取 Google MAPS 結(jié)果。
9、Django vs Flask:哪個是最好的 Python Web 框架?[14]
Python 圈最為流行的兩大 Web 框架,到底應(yīng)該如何取舍呢?這是一篇細(xì)致的長文,詳細(xì)對比了它們在模板系統(tǒng)、URL 調(diào)度器、數(shù)據(jù)庫支持、身份驗(yàn)證及授權(quán)、測試、軟件架構(gòu)、學(xué)習(xí)曲線等方面的差異。沒有更好的,只有是否適合你的。
10、在 Mac 上安裝 Python 的正確方法[15]
如何在新的 M2 MacBook 上安裝 Python 呢?這篇手把手的指導(dǎo)教程中,作者給出的建議是 Pyenv + pyenv-virtualenv 。
11、用 Python 開發(fā)簡單的 Android 數(shù)據(jù)分析應(yīng)用[16]
這篇教程指導(dǎo)你開發(fā)一個 Android 數(shù)據(jù)分析應(yīng)用,其作用是記錄和顯示你全天在屏幕上花費(fèi)的時間。使用的 GUI 框架是kivy ,數(shù)據(jù)分析使用了Pandas 。
12、改進(jìn) Numpy 的 Python API,為 2.0 版本準(zhǔn)備[17]
NEP-52 是 Numpy 的一則增強(qiáng)提案,旨在識別 Numpy 中過時、重復(fù)和棄用的 Python API,并作重構(gòu)優(yōu)化。這項(xiàng)工作是為了順利遷移到 Numpy 2.0 而做的準(zhǔn)備。作者介紹了他在其中遇到的挑戰(zhàn)和取得的部分成就。
??Python開發(fā)者調(diào)查??官方第七次開發(fā)者調(diào)查,旨在了解 Python 開發(fā)社區(qū)的現(xiàn)狀,鼓勵你花費(fèi)幾分鐘來填寫:填寫地址[18]
???項(xiàng)目&資源
1、pyvideotrans:視頻的語言翻譯,并添加配音[19]
一個視頻翻譯工具,可將一種語言的視頻翻譯為另一種語言和配音的視頻。(star 1.4K)
2、pyink:Google 內(nèi)部修改 Black 而成的代碼格式化工具[20]
由 Black 派生而成,用于解決 Google 數(shù)千名工程師在 monorepo 上工作產(chǎn)生的問題。
3、sqlmodel:Python 中的 SQL 數(shù)據(jù)庫[21]
由 FastAPI 作者開源的 SQL 數(shù)據(jù)庫,結(jié)合了 SQLAlchemy 和 Pydantic,旨在實(shí)現(xiàn)簡單性、兼容性和穩(wěn)健性。(star 11.2K)
4、wagtail:一個 Django 內(nèi)容管理系統(tǒng)[22]
一個專注于用戶體驗(yàn)的后臺管理系統(tǒng),上期分享了關(guān)于“Django Admin 丑陋[23]”的文章,wagtail 是可提供給終端用戶使用的最佳推薦。(star 16.2K)
5、NBA-Machine-Learning-Sports-Betting:使用機(jī)器學(xué)習(xí)的 NBA 比賽預(yù)測[24]
一個機(jī)器學(xué)習(xí) AI,用于預(yù)測 NBA 比賽勝負(fù)。包含 2007-08 賽季到本賽季的所有球隊(duì)數(shù)據(jù)。
6、Python_EBook_Free:Python 電子書和資源[25]
這個倉庫歸檔了一些 Python 電子書和學(xué)習(xí)資源,都是 PDF 格式。
7、pathway:高吞吐量和低延遲實(shí)時數(shù)據(jù)處理框架[26]
一個數(shù)據(jù)處理框架,結(jié)合了 LLM 程序的批處理、流式處理和實(shí)時 API,可與各種數(shù)據(jù)源交互(如 Kafka、CSV 文件、SQL/noSQL 數(shù)據(jù)庫和 REST API)。
8、prefect:一個工作流編排工具,構(gòu)建數(shù)據(jù)管道[27]
它是數(shù)據(jù)密集型工作流的編排器,可將 Python 函數(shù)轉(zhuǎn)換為可觀察和編排的工作單元。支持自動重試、分布式執(zhí)行、調(diào)度、緩存等功能,擁有強(qiáng)大的儀表板進(jìn)行監(jiān)控。(star 13.2K)
9、VideoCrafter:生成高質(zhì)量視頻模型[28]
一個支持高清晰度的視頻生成和編輯工具,目前包括文字生成視頻及圖片生成視頻兩種模型。(star 3K)
10、程序員值得看的 42 個學(xué)習(xí)資源[29]
這篇文章收集了一系列基礎(chǔ)資源、課程和教程、編碼游戲、書籍、播客、YouTube 頻道、最佳實(shí)踐等等。
11、networkx:Python 的網(wǎng)絡(luò)分析庫[30]
用于創(chuàng)建、操作和研究復(fù)雜網(wǎng)絡(luò)的結(jié)構(gòu)、動力學(xué)和功能,適用于復(fù)雜網(wǎng)絡(luò)的分析。(star 13.4K)
12、PythonFrameworks:Python 的各種框架匯總[31]
這個項(xiàng)目收錄了 Python 中的各種框架,有 Web 框架、API 框架、CMS、ML&DL&AI、任務(wù)/消息隊(duì)列、并行&分布式計(jì)算、工作流&管道、DevOps、爬蟲、GUI&TUI,等等。提供有一個在線網(wǎng)站[32]。
??播客&視頻
1、core.py:一檔新的 Python 播客[33]
由 Python 核心開發(fā)者 Pablo Galindo 和 ?ukasz Langa 主理的播客,已推出兩期節(jié)目:核心開發(fā)者 Sprint 及 Python 3.13.0 alpha 1[34]、PEP-703:移除 GIL[35]
2、為什么靜態(tài)類型又流行起來了?[36]
上世紀(jì) 90 年代誕生的 Python、Ruby、PHP 和 JavaScript 這些動態(tài)編程語言都在擁抱靜態(tài)類型(mypy、Sorbet、Hack 和 TypeScript),誕生不算久的 Go、Kotlin、Dart 和 Rust 等都是靜態(tài)類型。為什么靜態(tài)類型卷土重來?這對未來意味著什么?
3、《Boost your Git DX》作者的兩期播客
Adam Johnson[37] 新書《提升你的 Git 開發(fā)者體驗(yàn)》上市后,分別參加了Real Python Podcast #179[38] 和 Pybites #139[39] 兩期播客節(jié)目。
??歡迎訂閱
-
微信公眾號[40]:除更新周刊外,還發(fā)布其它原創(chuàng)作品,并轉(zhuǎn)載一些優(yōu)質(zhì)文章。(可加好友,可加讀者交流群) -
博客[41] 及 RSS[42]:我的獨(dú)立博客,上面有歷年原創(chuàng)/翻譯的技術(shù)文章,以及從 2009 年以來的一些隨筆。 -
Github[43]:你可以獲取本周刊的 Markdown 源文件,做任何想做的事! -
郵件[44]:在 Substack 上開通的頻道,滿足你通過郵件閱讀時事通訊的訴求。 -
Telegram[45]:除了發(fā)布周刊的通知外,我將它視為一個“副刊”,補(bǔ)充發(fā)布更加豐富的資訊。 -
Twitter[46]:我的關(guān)注列表里有大量 Python 相關(guān)的開發(fā)者與組織的賬號。
參考資料
投稿: https://github.com/chinesehuazhou/python-weekly
[2]電報頻道: https://t.me/pythontrendingweekly
[3]Kenneth Reitz:遲來的道歉,以及 requests 3 的進(jìn)展: https://kennethreitz.org/essays/why-im-not-collaborating-with-kenneth-reitz
[4]Why I'm not collaborating with Kenneth Reitz: https://vorpus.org/blog/why-im-not-collaborating-with-kenneth-reitz/
[5]grequests:異步的 HTTP 請求: https://coderslegacy.com/python-grequests-making-asynchronous-http-requests/
[6]開發(fā)一個 Python 編譯器和解釋器: https://mathspp.com/blog/tag:bpci
[7]使用 Python+ChatGPT 開發(fā)一個書籍摘要 AI: https://levelup.gitconnected.com/build-an-ai-tool-to-summarize-books-instantly-828680c1ceb4
[8]在線體驗(yàn)網(wǎng)站: https://gptsummarizer.streamlit.app/
[9]數(shù)據(jù)庫生成的列 :Django & SQLite: https://www.paulox.net/2023/11/07/database-generated-columns-part-1-django-and-sqlite/
[10]Django 5.0 中的新東西: https://fly.io/django-beats/new-goodies-in-django-50/
[11]你能用 Python 的 bisect 模塊做到這些事: https://martinheinz.dev/blog/106
[12]為什么說在 Windows 上為 Python 3.12 構(gòu)建的 SciPy 是一個小奇跡?: https://labs.quansight.org/blog/building-scipy-with-flang
[13]使用 AI 進(jìn)行網(wǎng)頁抓取實(shí)驗(yàn)(使用 GPT-4 解析 HTML): https://serpapi.com/blog/web-scraping-and-parsing-experiment-with-ai-openai/
[14]Django vs Flask:哪個是最好的 Python Web 框架?: https://blog.jetbrains.com/pycharm/2023/11/django-vs-flask-which-is-the-best-python-web-framework/
[15]在 Mac 上安裝 Python 的正確方法: https://marvelousmlops.substack.com/p/the-right-way-to-install-python-on
[16]用 Python 開發(fā)簡單的 Android 數(shù)據(jù)分析應(yīng)用: https://www.techbeamers.com/simple-android-data-analytics-app-in-python/
[17]改進(jìn) Numpy 的 Python API,為 2.0 版本準(zhǔn)備: https://labs.quansight.org/blog/numpy-python-api-cleanup
[18]填寫地址: https://survey.alchemer.com/s3/7554174/python-developers-survey-2023
[19]pyvideotrans:視頻的語言翻譯,并添加配音: https://github.com/jianchang512/pyvideotrans
[20]pyink:Google 內(nèi)部修改 Black 而成的代碼格式化工具: https://github.com/google/pyink
[21]sqlmodel:Python 中的 SQL 數(shù)據(jù)庫: https://github.com/tiangolo/sqlmodel
[22]wagtail:一個 Django 內(nèi)容管理系統(tǒng): https://github.com/wagtail/wagtail
[23]Django Admin 丑陋: https://www.coderedcorp.com/blog/why-is-the-django-admin-ugly/
[24]NBA-Machine-Learning-Sports-Betting:使用機(jī)器學(xué)習(xí)的 NBA 比賽預(yù)測: https://github.com/kyleskom/NBA-Machine-Learning-Sports-Betting
[25]Python_EBook_Free:Python 電子書和資源: https://github.com/FarhaKousar1601/Python_EBook_Free
[26]pathway:高吞吐量和低延遲實(shí)時數(shù)據(jù)處理框架: https://github.com/pathwaycom/pathway
[27]prefect:一個工作流編排工具,構(gòu)建數(shù)據(jù)管道: https://github.com/PrefectHQ/prefect
[28]VideoCrafter:生成高質(zhì)量視頻模型: https://github.com/AILab-CVC/VideoCrafter
[29]程序員值得看的 42 個學(xué)習(xí)資源: https://madza.hashnode.dev/42-developer-resources-to-kickstart-your-coding-journey
[30]networkx:Python 的網(wǎng)絡(luò)分析庫: https://github.com/networkx/networkx
[31]PythonFrameworks:Python 的各種框架匯總: https://github.com/jgu-bytes/PythonFrameworks
[32]在線網(wǎng)站: https://pythonframeworks.com/
[33]core.py:一檔新的 Python 播客: https://podcasters.spotify.com/pod/show/corepy
[34]核心開發(fā)者 Sprint 及 Python 3.13.0 alpha 1: https://podcasters.spotify.com/pod/show/corepy/episodes/Episode-1---Core-Sprint-in-Brno--Python-3-13-0-alpha-1-e2apebk
[35]PEP-703:移除 GIL: https://podcasters.spotify.com/pod/show/corepy/episodes/Episode-2---PEP-703-Removing-the-GIL-e2b8egi
[36]為什么靜態(tài)類型又流行起來了?: https://www.youtube.com/watch?v=Tml94je2edk
[37]Adam Johnson: https://twitter.com/AdamChainz
[38]Real Python Podcast #179: https://realpython.com/podcasts/rpp/179/
[39]Pybites #139: https://pybit.es/articles/maximizing-your-dx-with-adam-johnson/
[40]微信公眾號: https://img.pythoncat.top/python_cat.jpg
[41]博客: https://pythoncat.top
[42]RSS: https://pythoncat.top/rss.xml
[43]Github: https://github.com/chinesehuazhou/python-weekly
[44]郵件: https://pythoncat.substack.com
[45]Telegram: https://t.me/pythontrendingweekly
[46]Twitter: https://twitter.com/chinesehuazhou
