hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/Documentation/sphinx/load_config.py
....@@ -3,7 +3,7 @@
33
44 import os
55 import sys
6
-from sphinx.util.pycompat import execfile_
6
+from sphinx.util.osutil import fs_encoding
77
88 # ------------------------------------------------------------------------------
99 def loadConfig(namespace):
....@@ -21,12 +21,39 @@
2121 and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ):
2222 config_file = os.path.abspath(config_file)
2323
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
2447 if os.path.isfile(config_file):
2548 sys.stdout.write("load additional sphinx-config: %s\n" % config_file)
2649 config = namespace.copy()
2750 config['__file__'] = config_file
28
- execfile_(config_file, config)
51
+ with open(config_file, 'rb') as f:
52
+ code = compile(f.read(), fs_encoding, 'exec')
53
+ exec(code, config)
2954 del config['__file__']
3055 namespace.update(config)
3156 else:
32
- sys.stderr.write("WARNING: additional sphinx-config not found: %s\n" % config_file)
57
+ config = namespace.copy()
58
+ config['tags'].add("subproject")
59
+ namespace.update(config)