2010-09-20 86 views
0

簡而言之,我已經編寫了一個應用程序,它可以解析來自不同電子郵件源的指定格式的文本文件。目前,用戶爲了正確上傳信息有兩種格式。我還包括一個簡單的YAML文件,它允許非編程背景的人(例如系統管理員)爲每個不同的電子郵件源定義基本解析參數,例如分隔符。從YAML文件中分配類方法

事實證明,用戶將需要比我定義的更多的格式。如完全不同的分析算法格式。

因爲這將是很難有人不熟悉的源不斷地添加/更新的解析方法,我的想法是讓管理員在YAML文件中定義,像這樣的自定義方法:

parser: !!python/name:modules.custom.parser 

那方式管理員可以定義他們自己的解析方法,例如modules.custom.parser,而無需通過源代碼進行挖掘。

我玩火是否允許管理員動態上傳自己的自定義方法?

+1

對我來說,這似乎不能按照你的意圖工作。我猜你在分析你的yaml文檔時modules.custom.parser需要在sys.path中。這也是你看到的嗎?在這種情況下,實際的代碼不會包含在yaml文檔中,需要通過其他方式提供。 – Arlaharen 2010-09-21 07:01:00

+0

我使用PyYAML,並且它像正常的python腳本一樣導入類/函數。我只是將模塊目錄保存在python腳本所在的目錄中。 – krs1 2010-09-21 13:37:54

回答

1

我不認爲擁有「可執行配置文件」的想法很糟糕,但我認爲混合使用YAML和Python代碼可能會讓人困惑。也許相反,你可以走Xen,SCons,Hellanzb等路線,讓你的「配置文件」只是一個Python腳本?