如何創建運行epydoc或/和pylint的構建器?scons構建?從scons文件運行epydoc和/或pylint構建器
0
A
回答
0
這是另一種方法,可能更適合大型項目。
首先,定義在site_scons/site_tools
epydoc.py
(或任何你有這些)是:
# -*- coding: utf-8 -*-
import SCons.Builder
import SCons.Action
def complain_epydoc(target, source, env):
print 'INFORMATION: epydoc binary was not found (see above). Documentation has not been built.'
def generate(env):
env['EPYDOC'] = find_epydoc(env)
if env['EPYDOC'] != None:
opts = '--quiet --html --inheritance listed --graph all --css white --parse-only '
env['EPYDOCCOM'] = '$EPYDOC ' + opts + '-o $TARGET $SOURCES'
env['BUILDERS']['epydoc'] = SCons.Builder.Builder(action=env['EPYDOCCOM'])
else:
env['BUILDERS']['epydoc'] = SCons.Builder.Builder(action=env.Action(complain_epydoc))
def find_epydoc(env):
b=env.WhereIs('epydoc')
if b == None:
print 'Searching for epydoc: not found. Documentation will not be built'
else:
print 'Searching for epydoc: ', b
return b
def exists(env):
if find_epydoc(env) == None:
return 0
return 1
在主SConstruct
文件,添加:
import epdoc
env.Tool("epydoc")
然後,在你的SConstruct
文件或SConscript
文件,你可以建立像這樣的文檔:
Alias('epydoc', env.epydoc(source=python_code_files, target=Dir('docs')))
注意:你可以對ctags和pylint做同樣的事情,僅舉幾例。
1
您可以使用Command() builder而不是創建自己的構建器。
例如,可以按如下方式執行epydoc的:
# SCons will substitute $SOURCE and $TARGET accordingly
# add any extra cmd line args you need to the cmd string
cmd = 'epydoc $SOURCE $TARGET'
env.Command(target = yourTarget, source = yourSourceFile_s, action = cmd)
0
## Create epydoc!
import os.path
if os.path.isfile('/usr/bin/epydoc'):
sources = Split("__init__.py ook/ eek/ fubar/")
cmd = "epydoc -q --name 'Isotek Python Module collection' " + \
"--html --inheritance listed --graph all -o docs --css white " + \
"--parse-only --debug $SOURCES"
env.Command(target = Dir('docs'), source = sources, action = cmd)
else:
print "WARNING -- Cannot run epydoc so documentation will not be generated."
print "WARNING -- To install epydoc run 'sudo yum -y install epydoc'."
請注意,我在Fedora上運行,並不需要擔心的代碼運行在別處因此我可以假設的路徑以及如何安裝epydoc的。更普遍的編輯是受歡迎的。
相關問題
- 1. 在SCons中首先運行構建
- 2. 如何構建scons MSVSProject構建器函數的文件列表?
- 3. Scons,僅從靜態庫構建C++可執行文件
- 4. scons階層構建:傳播構建器
- 5. 使用scons構建自定義文件
- 6. Scons Hierachical構建
- 7. git-lint pylint沒有運行pylintrc文件
- 8. 從Ant構建文件運行Jbehave
- 9. 從SCONS運行ANT腳本
- 10. Scons無法從Cygwin運行
- 11. 無法使用scons運行cpp文件
- 12. 將scons構建器輸出重定向到文件
- 13. 如何在使用MsBuild構建.pyproj時運行PyLint?
- 14. 如何在qemu模擬器中構建和運行.img文件?
- 15. SCons:修改中間構建器調用
- 16. 如何在每次構建scons後運行一些代碼?
- 17. 如何運行pylint的從螞蟻
- 18. 獲取哪些文件已被修改文件SCons構建器動作
- 19. 如何運行win7的epydoc gui?
- 20. 如何從.scala文件創建(或運行).jar文件?
- 21. 使用scons構建Swiften
- 22. 用scons構建源代碼?
- 23. SCons手動構建步驟
- 24. 針對jenkins僅對更改的行/文件運行pylint
- 25. 錯誤而運行Ant構建文件
- 26. 構建失敗,而運行Ant文件
- 27. 自動運行構建文件更改
- 28. XCode構建和運行
- 29. 在運行期間從輸出獲取epydoc輸出?
- 30. 如何設置scons來構建生成源文件的項目?
爲什麼你有target ='dummy'?如果你沒有使用真正的目標,那麼SCons會每次運行epydoc,即使它不需要,也可能會有問題。您應該能夠將目標指定爲由epydoc生成的實際文件,然後SCons只會在需要時執行它。 – Brady 2012-08-03 10:41:36
@Brady:的確如此。這是次優。我最終使用了完全不同的東西。 – Sardathrion 2012-08-03 12:54:37