Facebook 出品:針對複雜 Python 應用的參數配置框架

Facebook 出品:針對複雜 Python 應用的參數配置框架

之前分享過 Google 開源簡潔、優雅的命令行程序生成工具:

Fire

,可以很方便的把任意的 Python 代碼轉化為通過命令行執行的程序。但是對於比較複雜的應用參數需要配置,如果都通過命令行參數配置的話,參數會比較多不方便管理。今天要推薦的是 Facebook 開源的優雅配置框架:

hydra

,可以通過命令行參數,同時也可以通過配置文件(比如 YAML)配置。

安裝和使用方法

安裝方法:pip install --upgrade hydra-core

Python file: my_app.py,命令行參數配置方式:

import hydra
@hydra.main()
def my_app(cfg):
print(cfg.pretty())
if __name__ == "__main__":
my_app()

使用方法:

$ python my_app.py db.driver=mysql db.user=omry db.pass=secret
db:
driver: mysql
pass: secret
user: omry

Python file: my_app.py,YAML 配置文件配置:

@hydra.main(config_path='config.yaml')
def my_app(cfg):
print(cfg.pretty())

使用方法:

$ python my_app.py
db:
driver: mysql
pass: secret
user: omry

通過上述 Google 和 Facebook 開源的兩個工具,雖然是不同的兩種方式來解決應用參數配置的問題,但是都是通過 Python 裝飾器的語法來封裝整個庫,可以看出 Python 中裝飾器的重要性,而且看出來了沒有,裝飾器用好了,可以讓使用方很優雅的使用,同時代碼也很簡潔。如果你會使用 Python,但是都沒用過裝飾器,甚至一點不懂,趕緊開始學習吧,這個都不懂就出去面試很容易被懟的。

項目地址:

https://github.com/facebookresearch/hydra

今天的推薦不知道大家喜歡嗎?如果你喜歡,請在文章底部留言和點贊,以表示對我的支持,你們的留言、點贊和轉發關注是我持續更新的動力哦!

歡迎大家關注我的 WX 公眾號:非著名程序員。


分享到:


相關文章: