1 # -*- coding: utf-8; mode: python -*- 1 # -*- coding: utf-8; mode: python -*- 2 # pylint: disable=R0903, C0330, R0914, R0912, 2 # pylint: disable=R0903, C0330, R0914, R0912, E0401 3 3 4 import os 4 import os 5 import sys 5 import sys 6 from sphinx.util.osutil import fs_encoding !! 6 from sphinx.util.pycompat import execfile_ 7 7 8 # -------------------------------------------- 8 # ------------------------------------------------------------------------------ 9 def loadConfig(namespace): 9 def loadConfig(namespace): 10 # -------------------------------------------- 10 # ------------------------------------------------------------------------------ 11 11 12 u"""Load an additional configuration file 12 u"""Load an additional configuration file into *namespace*. 13 13 14 The name of the configuration file is take 14 The name of the configuration file is taken from the environment 15 ``SPHINX_CONF``. The external configuratio 15 ``SPHINX_CONF``. The external configuration file extends (or overwrites) the 16 configuration values from the origin ``con 16 configuration values from the origin ``conf.py``. With this you are able to 17 maintain *build themes*. """ 17 maintain *build themes*. """ 18 18 19 config_file = os.environ.get("SPHINX_CONF" 19 config_file = os.environ.get("SPHINX_CONF", None) 20 if (config_file is not None 20 if (config_file is not None 21 and os.path.normpath(namespace["__file 21 and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ): 22 config_file = os.path.abspath(config_f 22 config_file = os.path.abspath(config_file) 23 23 24 # Let's avoid one conf.py file just du << 25 start = config_file.find('Documentatio << 26 if start >= 0: << 27 start = config_file.find('/', star << 28 << 29 end = config_file.rfind('/') << 30 if start >= 0 and end > 0: << 31 dir = config_file[start + 1:end] << 32 << 33 print("source directory: %s" % dir << 34 new_latex_docs = [] << 35 latex_documents = namespace['latex << 36 << 37 for l in latex_documents: << 38 if l[0].find(dir + '/') == 0: << 39 has = True << 40 fn = l[0][len(dir) + 1:] << 41 new_latex_docs.append((fn, << 42 break << 43 << 44 namespace['latex_documents'] = new << 45 << 46 # If there is an extra conf.py file, l << 47 if os.path.isfile(config_file): 24 if os.path.isfile(config_file): 48 sys.stdout.write("load additional 25 sys.stdout.write("load additional sphinx-config: %s\n" % config_file) 49 config = namespace.copy() 26 config = namespace.copy() 50 config['__file__'] = config_file 27 config['__file__'] = config_file 51 with open(config_file, 'rb') as f: !! 28 execfile_(config_file, config) 52 code = compile(f.read(), fs_en << 53 exec(code, config) << 54 del config['__file__'] 29 del config['__file__'] 55 namespace.update(config) 30 namespace.update(config) 56 else: 31 else: 57 config = namespace.copy() !! 32 sys.stderr.write("WARNING: additional sphinx-config not found: %s\n" % config_file) 58 config['tags'].add("subproject") << 59 namespace.update(config) <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.