2011-10-14 67 views
1

我想爲我們的內部軟件開發過程實現一個python構建包和功能測試包。我的主要目標是實現一個全局/標準記錄器(類似於參考文獻here)和argparser,所有模塊都將在他們的角度包內使用(即構建記錄器和解析器將與測試套件記錄器和解析器不同)。如何實現一個包的標準記錄器和argparser

這是否應該在包的__init__.py中完成?還有其他方法可以實現嗎?我還沒有看到__init__.py的真實需求是什麼?也許,這回答了我自己的問題?我寫了很多python模塊和其他應用程序,但從來沒有包/庫。這個概念似乎爲我帶來了新的可能性,比如標準化這些流程。

基本上,總結,我對這些包的目標是:

1)爲消除的參數和/或訪問系統環境一長串的冗餘通過/分析的需要。

2.)通過不同的測試和構建腳本,消除我們過去看到的無數輸出。

3.)提供一個易於使用的自我記錄軟件包。包裝文件的任何建議也會非常有用。 :)

這將使這些包的用戶:

1)輕鬆訪問一組標準的爭論。例如,程序包中的每個模塊(按優先順序)將用標準標誌解析命令行參數,加載配置文件或使用默認值。 2)以標準方式輕鬆記錄錯誤,警告和調試語句。 3)當這些測試/構建模塊被傳遞時,這將最終使得「用戶」(即,沒有編寫模塊的人)能夠以通用的方式運行該測試/構建模塊。

我想我正在尋找一些真正的「Pythonic」實施建議,因爲各種各樣的選項和可能性似乎是壓倒性的。提前致謝。

回答

0

對於日誌記錄查看沒有比python logging documentation更進一步。實現非常靈活的日誌系統非常簡單。

對於您關於__init__.py的問題,如果您來自其他編程語言,請將其視爲構造函數。如果您想要在負載上分配一些默認值,則應該進入__init__.py

我對​​不是很熟悉,所以別人可能會對此有所瞭解。

+0

謝謝。實際上,我現在已經在單獨的選項卡中打開了記錄文檔的確切鏈接。我想我的問題更多地針對包級別的實施建議。我會創建並實例化我的logging.Logger()作爲一個全局的,說'foo = logging.Logger()'?然後,所有導入我的包的模塊都可以通過'import build','foo.info(「使用build logger」)來訪問它? – kevinmm

+0

此外,這將被認爲是'__init __。py'的可接受實踐嗎? – kevinmm

相關問題