如何创建运行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 MSVSProject构建器函数的文件列表?
- 2. Scons,仅从静态库构建C++可执行文件
- 3. scons阶层构建:传播构建器
- 4. 使用scons构建自定义文件
- 5. git-lint pylint没有运行pylintrc文件
- 6. 从Ant构建文件运行Jbehave
- 7. 从SCONS运行ANT脚本
- 8. Scons无法从Cygwin运行
- 9. 无法使用scons运行cpp文件
- 10. 将scons构建器输出重定向到文件
- 11. 如何在使用MsBuild构建.pyproj时运行PyLint?
- 12. 如何在每次构建scons后运行一些代码?
- 13. 获取哪些文件已被修改文件SCons构建器动作
- 14. 如何从.scala文件创建(或运行).jar文件?
- 15. 如何运行win7的epydoc gui?
- 16. 针对jenkins仅对更改的行/文件运行pylint
- 17. 用scons构建源代码?
- 18. 使用scons构建Swiften
- 19. SCons手动构建步骤
- 20. 构建失败,而运行Ant文件
- 21. XCode构建和运行
- 22. 在运行期间从输出获取epydoc输出?
- 23. 排除使用SCons构建不推荐使用的文件
- 24. scons:覆盖一个文件的构建选项
- 25. 如何设置scons来构建生成源文件的项目?
- 26. 如何使scons的更新文件的构建
- 27. 运行scons的问题
- 28. 使用SCons创建分层构建
- 29. 如何从可运行jar文件这是在构建路径
- 30. 从Ant构建文件运行Java程序
为什么你有target ='dummy'?如果你没有使用真正的目标,那么SCons会每次运行epydoc,即使它不需要,也可能会有问题。您应该能够将目标指定为由epydoc生成的实际文件,然后SCons只会在需要时执行它。 – Brady 2012-08-03 10:41:36
@Brady:的确如此。这是次优。我最终使用了完全不同的东西。 – Sardathrion 2012-08-03 12:54:37