~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/sphinx/load_config.py

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 # -*- coding: utf-8; mode: python -*-
  2 # pylint: disable=R0903, C0330, R0914, R0912, E0401
  3 
  4 import os
  5 import sys
  6 from sphinx.util.osutil import fs_encoding
  7 
  8 # ------------------------------------------------------------------------------
  9 def loadConfig(namespace):
 10 # ------------------------------------------------------------------------------
 11 
 12     u"""Load an additional configuration file into *namespace*.
 13 
 14     The name of the configuration file is taken from the environment
 15     ``SPHINX_CONF``. The external configuration file extends (or overwrites) the
 16     configuration values from the origin ``conf.py``.  With this you are able to
 17     maintain *build themes*.  """
 18 
 19     config_file = os.environ.get("SPHINX_CONF", None)
 20     if (config_file is not None
 21         and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ):
 22         config_file = os.path.abspath(config_file)
 23 
 24         # Let's avoid one conf.py file just due to latex_documents
 25         start = config_file.find('Documentation/')
 26         if start >= 0:
 27             start = config_file.find('/', start + 1)
 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_documents']
 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, l[1], l[2], l[3], l[4]))
 42                     break
 43 
 44             namespace['latex_documents'] = new_latex_docs
 45 
 46         # If there is an extra conf.py file, load it
 47         if os.path.isfile(config_file):
 48             sys.stdout.write("load additional sphinx-config: %s\n" % config_file)
 49             config = namespace.copy()
 50             config['__file__'] = config_file
 51             with open(config_file, 'rb') as f:
 52                 code = compile(f.read(), fs_encoding, 'exec')
 53                 exec(code, config)
 54             del config['__file__']
 55             namespace.update(config)
 56         else:
 57             config = namespace.copy()
 58             config['tags'].add("subproject")
 59             namespace.update(config)

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php