計劃對 Python 標準庫進行重大清理

Python 專案開發人員 發表 建議(PEP 594)對標準庫進行重大清理。 明顯過時且高度專業化的功能和元件存在架構問題且無法在所有平台上統一,都將從 Python 標準庫中刪除。

例如,建議從標準庫中排除諸如 crypt(Windows 不可用以及哈希演算法的可用性依賴於系統庫)、cgi(不是最佳架構,需要為每個請求啟動新進程)、imp 等模組。 (建議使用importlib)、pipes(建議使用subprocess模組)、nis(建議使用NSS、LDAP或Kerberos/GSSAPI)、spwd(不建議直接使用帳戶資料庫)。 binhex、uu、xdrlib 模組也被標記為刪除。
國際金融中心,
音訊操作,
區塊
伊姆赫德,
奧薩音頻德夫,
sndhdr,
蘇瑙
非同步聊天,
異步,
中國國際貿易資訊資料庫,
郵件發送
nntplib、macpath、
格式化程式、msilib 和解析器。

提議的計劃是在 Python 3.8 中棄用上述模組,在 Python 3.8 中發出警告,並在 Python 3.10 中從 CPython 存儲庫中刪除它們。
解析器模組計劃在 3.9 版本中刪除,因為它在 Python 2.5 版本中已被棄用,而 macpath 模組則在 3.8 分支中被刪除。 從主程式碼中刪除後,程式碼將被移至單獨的legacylib儲存庫,其命運將取決於社群成員的興趣。 Python 3.9 分支預計將支援到 2026 年,這將為專案遷移到外部替代方案提供充足的時間。

最初,也建議刪除 ftplib、optparse、getopt、colorsys、fileinput、lib2to3 和 wave 模組,但目前決定將它們保留為標準庫的一部分,因為儘管它們存在,但它們仍然廣泛且相關。更高級的替代方案或與作業系統特定功能的綁定。

回想一下,Python 專案最初採用了「自帶電池」的方法,在標準庫中為各種應用程式提供了豐富的函數集。 這種方法的優點之一是簡化了 Python 專案的維護和專案中使用的模組的安全性監控。 模組中的漏洞通常會成為使用它們的應用程式中的漏洞來源。 如果函數包含在標準庫中,則足以監視主項目的狀態。 在拆分標準庫時,開發者需要使用第三方模組,並且必須單獨監控每個模組的漏洞。 由於高度碎片化和大量依賴關係,存在透過損害模組開發人員的基礎設施而受到攻擊的威脅。

另一方面,標準庫中的每個附加模組都需要Python開發團隊的資源來維護。 庫中累積了大量重複、冗餘的功能,消除這些功能可以降低維護成本。 隨著目錄的發展 的PyPI 並簡化了安裝和下載附加軟體包的過程,外部模組的使用現在已經變得和內建功能一樣普遍。

越來越多的開發人員正在使用更多功能的外部替代標準模組,例如,使用 lxml 模組而不是 xml。 從標準庫中刪除廢棄的模組將增加社區積極開發的替代品的受歡迎程度。 此外,減少標準庫將導致基礎發行版大小的減少,這在儲存大小有限的嵌入式平台上使用Python時非常重要。

來源: opennet.ru

添加評論