# coding: utf8
from __future__ import unicode_literals

import io
import os
import pip
import site
from pathlib import Path
from .. import util


def link(origin, link_name, force=False):
    if is_package(origin):
        link_package(origin, link_name, force)
    else:
        symlink(origin, link_name, force)


def link_package(origin, link_name, force=False):
    package_path = site.getsitepackages()[0]
    meta = get_meta(package_path, origin)
    data_dir = origin + '-' + meta['version']
    model_path = Path(package_path) / origin / data_dir
    symlink(model_path, link_name, force)


def symlink(model_path, link_name, force):
    if not Path(model_path).exists():
        util.sys_exit(
            "The data should be located in {p}".format(p=model_path),
            title="Can't locate model data")

    data_path = str(util.get_data_path())
    link_path = Path(__file__).parent.parent / data_path / link_name

    if Path(link_path).exists():
        if force:
            os.unlink(str(link_path))
        else:
            util.sys_exit(
                "To overwrite an existing link, use the --force flag.",
                title="Link {l} already exists".format(l=link_name))

    os.symlink(str(model_path), str(link_path))
    util.print_msg(
        "{a} --> {b}".format(a=str(model_path), b=str(link_path)),
        "You can now load the model via spacy.load('{l}').".format(l=link_name),
        title="Linking successful")


def get_meta(package_path, package):
    meta = util.parse_package_meta(package_path, package)
    return meta


def is_package(origin):
    packages = pip.get_installed_distributions()
    for package in packages:
        if package.project_name.replace('-', '_') == origin:
            return True
    return False

@@ -84,44 +84,79 @@
 pip%0A
+from pathlib 
 import 
-site
+Path
 %0Afrom 
-pathlib import Path
+distutils.sysconfig import get_python_lib
 %0Afro
@@ -417,33 +417,24 @@
 h = 
-site.getsitepackages()%5B0%5D
+get_python_lib()
 %0A   

Use distutils.sysconfig.get_python_lib