import sys
from pathlib import Path

source_dir = str(Path.cwd().resolve())
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:  # NoQA: F821 (tags is injected into conf.py)
    extensions.remove('sphinx.ext.viewcode')
    extensions.append('sphinx.ext.linkcode')

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