1import os
2import sys
3
4source_dir = os.path.abspath('.')
5if source_dir not in sys.path:
6    sys.path.insert(0, source_dir)
7extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
8exclude_patterns = ['_build']
9
10
11if 'test_linkcode' in tags:  # NOQA
12    extensions.remove('sphinx.ext.viewcode')
13    extensions.append('sphinx.ext.linkcode')
14
15    def linkcode_resolve(domain, info):
16        if domain == 'py':
17            fn = info['module'].replace('.', '/')
18            return "http://foobar/source/%s.py" % fn
19        elif domain == "js":
20            return "http://foobar/js/" + info['fullname']
21        elif domain in ("c", "cpp"):
22            return "http://foobar/%s/%s" % (domain,  "".join(info['names']))
23        else:
24            raise AssertionError()
25