Python Fire開源—用於自動生成命令列介面的內容庫

谷歌開發者_發表於2017-03-20

640?wx_fmt=gif


文 | Google Brain 軟體工程師 David Bieber


我們高興地宣佈 Python Fire 將開放原始碼。Python Fire 可根據任何 Python 程式碼生成命令列介面 (CLI)。只需在任何 Python 程式中呼叫 Fire 函式,便可自動將該程式轉變成 CLI。


這個內容庫可通過“pip install fire”從 pypi 獲得:

pypi.python.org/pypi/fire


其原始碼在 GitHub 上公開:

github.com/google/python-fire


Python Fire 可自動將您的程式碼轉變成 CLI,無需您做任何額外工作。您不必定義引數,設定幫助資訊,或者編寫定義程式碼執行方式的 main 函式。相反,您只需從 main 模組呼叫“Fire”函式,其餘工作全部交由 Python Fire 來完成。它利用檢查將您提供的任何 Python 物件(無論是類、物件、字典、函式甚至整個模組)轉變成一個 Tab 命令補全和文件齊備的命令列介面,並且這個 CLI 甚至能在程式碼發生變化時即時更新。


讓我們通過一個簡單的示例加以說明:

640?wx_fmt=png


執行 Fire 函式時將會執行我們的命令。現在我們只需呼叫 Fire,就可以將 Example 類當作命令列實用程式來使用。


640?wx_fmt=png


當然,您可以繼續像使用普通 Python 內容庫那樣使用此模組,從而能夠從 Bash 和 Python 使用完全相同的程式碼。如果您要編寫 Python 內容庫,則試用就不再需要更新 main 方法或客戶端;相反,您只需從命令列執行所試用的內容庫片段。即使內容庫發生變化,命令列工具也能即時更新。


在 Google,工程師們利用 Python Fire 根據 Python 內容庫生成命令列工具。我們的一個影象處理工具就是將 Fire 與 Python 成像內容庫 (PIL) 配合使用生成的。在 Google Brain 團隊,我們使用的試驗管理工具也是使用 Fire 生成的,通過它從 Python 或 Bash 管理試驗的效果同樣好。


每個 Fire CLI 都自帶互動模式。執行 CLI 時帶“--interactive”標誌可啟動一個 IPython REPL,其中包含命令的結果以及其他已經定義並可隨時使用的有用變數。請務必檢視 Python Fire 的文件,瞭解 Fire 提供的這項功能以及其他有用功能的更多資訊。


考慮到 Python Fire 簡單易用、通用性強並且功能強大,我們希望您能在自己的專案中發現它的用武之地。


640?wx_fmt=png


3.19 Google Doodle: 2017 父親節(玻利維亞、克羅埃西亞、宏都拉斯、義大利、葡萄牙、西班牙)

640?wx_fmt=gif

640?wx_fmt=gif

相關文章