#Python

Overview of python dependency management tools.

Overview of python dependency management tools

簡介 Python 的各路套件管理器與虛擬環境工具,以及它們各自適用的情況,在 Pipenv 停滯後最令人期待的應該是 Poetry


Bringing Old Photos Back to Life.

Bringing Old Photos Back to Life

Bringing Old Photos Back to Life

微軟的學術研究專案,利用 PyTorch 把老照片修復,包括去除刮痕、泛黃、美肌等效果。


Streamlit.

Streamlit

Streamlit

專門給資料科學專案使用的前端框架,可以直接吃 Pandas 的 DataFrame,並產出圖表或前端控件。

使用教學可以看這篇文章〈Building a Simple UI with Python〉。


pygal.

pygal

pygal

Python 的圖表套件,可以輸出成具互動性的 SVG 格式。

它的 SVG 的互動性,例如懸浮時顯示數值等這樣的能力是透過把 JavaScript 嵌入 SVG 內達成的。


GraalVM.

GraalVM

GraalVM

GraalVM 是由甲骨文開發的多語言編譯器,GraalVM 具有支援多語言編譯的能力。

GraalVM 主要支援 Java 系的語言,包括 Java、Kotlin、Scala,以及 LLVM 所支援的語言,包括 Rust、C++、C,後來支援更多的語言,包括 JavaScript、Python、Ruby、R 等,都可以被 GraalVM 的多語言架構支援,除了多語言編譯的特性外,GraalVM 宣稱具有高效能的特性。由 GraalVM 編譯後的二進位檔,配合 GraalVM 本身的 runtime 可以把整個 GraalVM 的專案整合進其他專案內,支援的發布對象包括 Java、Node.js、Oracel 自己的資料庫平台,當然編譯後的 GraalVM 專案加 runtime 也可以獨立運作。

GraalVM 本身的目標和微軟的 .NET 和 CLR 相當類似,查看 GraalVM 的 Release Notes 可以看到一直有在發布新的進度,但開發者社群的經營與聲量卻非常小,感覺 Oracle 真的非常不擅長經營開源的「生意」。


pluggy - A minimalist production ready plugin system.

pluggy

pluggy - A minimalist production ready plugin system

幫自己的 Python 專案增加外掛機制的套件,源自 PyTest

pluggy 可以幫現有的 Python 專案增添 hook 的機制,讓這個 Python 專案變成可擴展的架構,原本是 PyTest 這個測試框架內的外掛系統,後來釋出成更為通用的外掛套件,入門的教學可以參考下面的文件:


pipx.

pipx

pipx

Python 的套件管理器 pip 一般都是系統全域安裝,但對一些可以獨立使用的 CLI 工具(如 MyCLI)來說,為了維持全域套件的單純性,比較好的作法是讓那些獨立使用的 CLI 工具也只存在自己的環境,不要污染到全域環境,pipx 就是這樣的工具,它把指定的套件安裝到套件自己的虛擬環境內,並且把套件的主程式加入 PATH 讓我們可以方便使用,就和 npx 類似。


Nuitka.

Nuitka

Nuitka

一個 Python 的編譯器,把 Python 腳本編譯成可獨立執行的執行檔,目標是透過型別提示與猜測的技術,在編譯時確定變數型態,讓編譯出的執行檔有接近靜態型別的高效能。