Package _setup :: Package dev :: Module apidoc
[hide private]
[frames] | no frames]

Source Code for Module _setup.dev.apidoc

 1  # -*- coding: ascii -*- 
 2  # 
 3  # Copyright 2007, 2008, 2009, 2010 
 4  # Andr\xe9 Malo or his licensors, as applicable 
 5  # 
 6  # Licensed under the Apache License, Version 2.0 (the "License"); 
 7  # you may not use this file except in compliance with the License. 
 8  # You may obtain a copy of the License at 
 9  # 
10  #     http://www.apache.org/licenses/LICENSE-2.0 
11  # 
12  # Unless required by applicable law or agreed to in writing, software 
13  # distributed under the License is distributed on an "AS IS" BASIS, 
14  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
15  # See the License for the specific language governing permissions and 
16  # limitations under the License. 
17  """ 
18  ================== 
19   API doc builders 
20  ================== 
21   
22  API doc builders. 
23  """ 
24  __author__ = u"Andr\xe9 Malo" 
25  __docformat__ = "restructuredtext en" 
26   
27  import os as _os 
28  import re as _re 
29   
30  from _setup import shell as _shell 
31  from _setup import term as _term 
32   
33   
34  _VERSION_SEARCH = _re.compile( 
35      r'\bversion\s+(?P<major>\d+)\.(?P<minor>\d+)' 
36  ).search 
37 -def epydoc(**kwargs):
38 """ Run epydoc """ 39 # pylint: disable = R0912 40 prog = kwargs.get('epydoc') or 'epydoc' 41 if not _os.path.dirname(_os.path.normpath(prog)): 42 prog = _shell.frompath(prog) 43 if not prog: 44 _term.red("%(epydoc)s not found", 45 epydoc=kwargs.get('epydoc') or 'epydoc', 46 ) 47 return False 48 49 version = _VERSION_SEARCH(_shell.spawn(prog, "--version", stdout=True)) 50 if version is not None: 51 try: 52 version = tuple(map(int, version.group('major', 'minor'))) 53 except (TypeError, ValueError): 54 version = None 55 if version is None: 56 _term.red("%(prog)s version not recognized" % locals()) 57 return False 58 59 if version < (3, 0): 60 _term.red("%(prog)s is too old %(version)r < (3, 0)" % locals()) 61 return False 62 63 env = dict(_os.environ) 64 65 prepend = kwargs.get('prepend') 66 if prepend: 67 toprepend = _os.pathsep.join(map(str, prepend)) 68 if 'PYTHONPATH' in env: 69 env['PYTHONPATH'] = _os.pathsep.join(toprepend, env['PYTHONPATH']) 70 else: 71 env['PYTHONPATH'] = toprepend 72 73 append = kwargs.get('append') 74 if append: 75 toappend = _os.pathsep.join(map(str, append)) 76 if 'PYTHONPATH' in env: 77 env['PYTHONPATH'] = _os.pathsep.join(env['PYTHONPATH'], toappend) 78 else: 79 env['PYTHONPATH'] = toappend 80 81 moreenv = kwargs.get('env') 82 if moreenv: 83 env.update(moreenv) 84 85 config = kwargs.get('config') or _shell.native('docs/epydoc.conf') 86 87 argv = [prog, '--config', config] 88 return not _shell.spawn(*argv, **{'env': env})
89