2016-08-13 17:12:42 +03:00
# -*- coding: utf-8; mode: python -*-
# pylint: disable=R0903, C0330, R0914, R0912, E0401
import os
import sys
from sphinx . util . pycompat import execfile_
# ------------------------------------------------------------------------------
def loadConfig ( namespace ) :
# ------------------------------------------------------------------------------
u """ Load an additional configuration file into *namespace*.
The name of the configuration file is taken from the environment
` ` SPHINX_CONF ` ` . The external configuration file extends ( or overwrites ) the
configuration values from the origin ` ` conf . py ` ` . With this you are able to
maintain * build themes * . """
config_file = os . environ . get ( " SPHINX_CONF " , None )
if ( config_file is not None
and os . path . normpath ( namespace [ " __file__ " ] ) != os . path . normpath ( config_file ) ) :
config_file = os . path . abspath ( config_file )
2019-07-14 17:18:13 +03:00
# Let's avoid one conf.py file just due to latex_documents
start = config_file . find ( ' Documentation/ ' )
if start > = 0 :
start = config_file . find ( ' / ' , start + 1 )
end = config_file . rfind ( ' / ' )
if start > = 0 and end > 0 :
dir = config_file [ start + 1 : end ]
print ( " source directory: %s " % dir )
new_latex_docs = [ ]
latex_documents = namespace [ ' latex_documents ' ]
for l in latex_documents :
2019-07-18 22:13:48 +03:00
if l [ 0 ] . find ( dir + ' / ' ) == 0 :
2019-07-14 17:18:13 +03:00
has = True
fn = l [ 0 ] [ len ( dir ) + 1 : ]
new_latex_docs . append ( ( fn , l [ 1 ] , l [ 2 ] , l [ 3 ] , l [ 4 ] ) )
break
namespace [ ' latex_documents ' ] = new_latex_docs
# If there is an extra conf.py file, load it
2016-08-13 17:12:42 +03:00
if os . path . isfile ( config_file ) :
sys . stdout . write ( " load additional sphinx-config: %s \n " % config_file )
config = namespace . copy ( )
config [ ' __file__ ' ] = config_file
execfile_ ( config_file , config )
del config [ ' __file__ ' ]
namespace . update ( config )
else :
2019-07-14 17:18:13 +03:00
config = namespace . copy ( )
config [ ' tags ' ] . add ( " subproject " )
namespace . update ( config )