diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 32e432f498..0000000000 --- a/MANIFEST.in +++ /dev/null @@ -1,6 +0,0 @@ - -include lmdeploy/lib/*.so -include lmdeploy/lib/*.so* -include lmdeploy/lib/*.dll -include lmdeploy/lib/*.pyd -include lmdeploy/bin/* diff --git a/pyproject.toml b/pyproject.toml index d16c624fbb..9be0438e1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,42 @@ +[project] +name = "lmdeploy" +description = "A toolset for compressing, deploying and serving LLM" +authors = [ + {name = "OpenMMLab", email = "openmmlab@gmail.com" }, +] +maintainers = [ + {name = "OpenMMLab", email = "openmmlab@gmail.com" }, +] +classifiers = [ + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Intended Audience :: Developers", + "Intended Audience :: Education", + "Intended Audience :: Science/Research", +] +requires-python = ">= 3.9" +license = "Apache-2.0" +license-files = ["LICENSE"] +dynamic = ["version", "readme", "dependencies", "optional-dependencies"] + +[tool.setuptools.dynamic] +version = {attr = "lmdeploy.version.__version__"} +readme = {file = ["README.md"], content-type = "text/markdown"} + +[tool.setuptools.packages.find] +namespaces = false +exclude = [] + +[project.scripts] +lmdeploy = "lmdeploy.cli:run" + [build-system] requires = [ "cmake_build_extension", + "pybind11 <= 2.13.1", + "setuptools >= 77.0.3", ] build-backend = "setuptools.build_meta" diff --git a/requirements/build.txt b/requirements/build.txt deleted file mode 100644 index 6db60d51af..0000000000 --- a/requirements/build.txt +++ /dev/null @@ -1,3 +0,0 @@ -cmake_build_extension -pybind11<=2.13.1 -setuptools diff --git a/requirements_ascend.txt b/requirements_ascend.txt index e844853ab4..d1fd0d0c3d 100644 --- a/requirements_ascend.txt +++ b/requirements_ascend.txt @@ -1,4 +1,3 @@ --r requirements/build.txt -r requirements/runtime_ascend.txt -r requirements/lite.txt -r requirements/serve.txt diff --git a/requirements_camb.txt b/requirements_camb.txt index 24b1f3e796..1d17b94a4e 100644 --- a/requirements_camb.txt +++ b/requirements_camb.txt @@ -1,4 +1,3 @@ --r requirements/build.txt -r requirements/runtime_camb.txt -r requirements/lite.txt -r requirements/serve.txt diff --git a/requirements_cuda.txt b/requirements_cuda.txt index 7c1d387dfb..c31f1bb865 100644 --- a/requirements_cuda.txt +++ b/requirements_cuda.txt @@ -1,4 +1,3 @@ --r requirements/build.txt -r requirements/runtime_cuda.txt -r requirements/lite.txt -r requirements/serve.txt diff --git a/requirements_maca.txt b/requirements_maca.txt index 075b132c8c..7c186f2b67 100644 --- a/requirements_maca.txt +++ b/requirements_maca.txt @@ -1,4 +1,3 @@ --r requirements/build.txt -r requirements/runtime_maca.txt -r requirements/lite.txt -r requirements/serve.txt diff --git a/setup.py b/setup.py index 048616830e..65258875ad 100644 --- a/setup.py +++ b/setup.py @@ -4,34 +4,13 @@ import sys from pathlib import Path -from setuptools import find_packages, setup - -pwd = os.path.dirname(__file__) -version_file = 'lmdeploy/version.py' +from setuptools import setup def get_target_device(): return os.getenv('LMDEPLOY_TARGET_DEVICE', 'cuda') -def readme(): - with open(os.path.join(pwd, 'README.md'), encoding='utf-8') as f: - content = f.read() - return content - - -def get_version(): - file_path = os.path.join(pwd, version_file) - pattern = re.compile(r"\s*__version__\s*=\s*'([0-9A-Za-z.-]+)'") - with open(file_path, 'r') as f: - for line in f: - m = pattern.match(line) - if m: - return m.group(1) - else: - assert False, f'No version found {file_path}' - - def get_turbomind_deps(): if os.name == 'nt': return [] @@ -154,16 +133,6 @@ def gen_packages_items(): if __name__ == '__main__': setup( - name='lmdeploy', - version=get_version(), - description='A toolset for compressing, deploying and serving LLM', - long_description=readme(), - long_description_content_type='text/markdown', - author='OpenMMLab', - author_email='openmmlab@gmail.com', - packages=find_packages(exclude=()), - include_package_data=True, - setup_requires=parse_requirements('requirements/build.txt'), tests_require=parse_requirements('requirements/test.txt'), install_requires=parse_requirements(f'requirements/runtime_{get_target_device()}.txt') + extra_deps, extras_require={ @@ -171,17 +140,6 @@ def gen_packages_items(): 'lite': parse_requirements('requirements/lite.txt'), 'serve': parse_requirements('requirements/serve.txt'), }, - classifiers=[ - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12', - 'Programming Language :: Python :: 3.13', - 'Intended Audience :: Developers', - 'Intended Audience :: Education', - 'Intended Audience :: Science/Research', - ], - entry_points={'console_scripts': ['lmdeploy = lmdeploy.cli:run']}, ext_modules=ext_modules, cmdclass=cmdclass, )