Unverified Commit acb75f3b authored by Jiacheng Huang's avatar Jiacheng Huang Committed by GitHub
Browse files

Merge pull request #499 from InfiniTensor/issue/498

加入 `infinicore` Python 包的 editable 安装支持
parents 511aeb88 1ac33886
# Xmake cache # Xmake cache
.xmake/ .xmake/
build/ build/
python/infinicore/lib/*.so
# MacOS Cache # MacOS Cache
.DS_Store .DS_Store
......
from . import _infinicore from infinicore.lib import _infinicore
class device: class device:
......
from . import _infinicore from infinicore.lib import _infinicore
class dtype: class dtype:
......
from infinicore.lib import _infinicore
from infinicore.tensor import Tensor from infinicore.tensor import Tensor
from .. import _infinicore
def matmul(input, other, *, out=None): def matmul(input, other, *, out=None):
if out is None: if out is None:
......
from infinicore.lib import _infinicore
from infinicore.tensor import Tensor from infinicore.tensor import Tensor
from .. import _infinicore
def rearrange(input, other, *, out=None): def rearrange(input, other, *, out=None):
if out is None: if out is None:
......
import infinicore.device import infinicore.device
import infinicore.dtype import infinicore.dtype
from infinicore.lib import _infinicore
from . import _infinicore
class Tensor: class Tensor:
......
import glob
import os
import shutil
import subprocess import subprocess
from pathlib import Path
from setuptools import setup from setuptools import setup
from setuptools.command.build import build from setuptools.command.build import build
...@@ -15,12 +11,5 @@ class Build(build): ...@@ -15,12 +11,5 @@ class Build(build):
subprocess.run(["xmake", "build", "-y", "_infinicore"]) subprocess.run(["xmake", "build", "-y", "_infinicore"])
subprocess.run(["xmake", "install", "_infinicore"]) subprocess.run(["xmake", "install", "_infinicore"])
installation_dir = os.getenv("INFINI_ROOT", str(Path.home() / ".infini"))
lib_dir = os.path.join(installation_dir, "lib")
lib_path = glob.glob(os.path.join(lib_dir, "_infinicore.*"))[0]
package_dir = os.path.join(self.build_lib, "infinicore")
os.makedirs(package_dir, exist_ok=True)
shutil.move(lib_path, package_dir)
setup(package_dir={"": "python"}, cmdclass={"build": Build}) setup(package_dir={"": "python"}, cmdclass={"build": Build})
...@@ -347,7 +347,31 @@ target("_infinicore") ...@@ -347,7 +347,31 @@ target("_infinicore")
add_files("src/infinicore/op/*/*.cc") add_files("src/infinicore/op/*/*.cc")
add_files("src/infinicore/pybind11/**.cc") add_files("src/infinicore/pybind11/**.cc")
set_installdir(os.getenv("INFINI_ROOT") or (os.getenv(is_host("windows") and "HOMEPATH" or "HOME") .. "/.infini")) set_installdir("python/infinicore")
target_end()
option("editable")
set_default(false)
set_showmenu(true)
set_description("Install the `infinicore` Python package in editable mode")
option_end()
target("infinicore")
set_kind("phony")
set_default(false)
add_deps("_infinicore")
on_install(function (target)
local pip_install_args = {}
if has_config("editable") then
table.insert(pip_install_args, "--editable")
end
os.execv("python", table.join({"-m", "pip", "install"}, pip_install_args, {"."}))
end)
target_end() target_end()
-- Tests -- Tests
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment