import os
import sys

source_dir = os.path.abspath('.')
if source_dir not in sys.path:
    sys.path.insert(0, source_dir)
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode']
exclude_patterns = ['_build']


if 'test_linkcode' in tags:
    extensions.remove('sphinx.ext.viewcode')
    extensions.append('sphinx.ext.linkcode')

    def linkcode_resolve(domain, info):
        if domain == 'py':
            fn = info['module'].replace('.', '/')
            return "https://foobar/source/%s.py" % fn
        elif domain == "js":
            return "https://foobar/js/" + info['fullname']
        elif domain in ("c", "cpp"):
            return f"https://foobar/{domain}/{''.join(info['names'])}"
        else:
            raise AssertionError()
