diff --git a/.github/workflows/formatting.yml b/.github/workflows/formatting.yml index 9705869a..611790d1 100644 --- a/.github/workflows/formatting.yml +++ b/.github/workflows/formatting.yml @@ -28,7 +28,7 @@ jobs: - name: Install dependencies run: | - grep -E "clang-format|pre-commit" requirements/requirements-dev.txt | xargs pip install + grep -E "clang-format|pre-commit" pyproject.toml | xargs pip install - name: Formatting checks run: | diff --git a/.github/workflows/nv-v100-legacy.yml b/.github/workflows/nv-v100-legacy.yml index 283702bd..e3e0cb33 100644 --- a/.github/workflows/nv-v100-legacy.yml +++ b/.github/workflows/nv-v100-legacy.yml @@ -10,7 +10,7 @@ on: - 'mii/legacy/**' - 'tests/legacy/**' - '.github/workflows/nv-v100-legacy.yml' - - 'requirements/**' + - 'pyproject.toml' - 'setup.py' concurrency: diff --git a/pyproject.toml b/pyproject.toml index d7ac0a3f..d1581a25 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,5 +4,66 @@ requires = [ "setuptools>=64", "wheel" ] -# Use legacy backend to import local packages in setup.py -build-backend = "setuptools.build_meta:__legacy__" +build-backend = "setuptools.build_meta" + +[project] +name = "deepspeed-mii" +dynamic = ["version"] +description = "deepspeed mii" +authors = [{name = "DeepSpeed Team", email = "deepspeed-mii@microsoft.com"}] +dependencies = [ + "accelerate", + "asyncio", + "deepspeed>=0.15.0", + "deepspeed-kernels", + "fastapi", + "fastchat", + "Flask-RESTful", + "grpcio", + "grpcio-tools", + "Pillow", + "pydantic>=2.0.0", + "pyzmq", + "safetensors", + "shortuuid", + "torch", + "transformers", + "ujson", + "Werkzeug" +] + +[project.optional-dependencies] +dev = [ + "clang-format==18.1.3", + "einops", + "pre-commit>=2.20.0", + "pytest", + "pytest-forked", + "sentencepiece", + "tiktoken", + "transformers-stream-generator" +] + +[project.urls] +Documentation = "https://github.com/deepspeedai/DeepSpeed-MII" +Source = "https://github.com/deepspeedai/DeepSpeed-MII" + +[tool.setuptools.dynamic] +version = {file = ["version.txt"]} + +[tool.setuptools] +classifiers = [ + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", +] + +[tool.setuptools.package-data] +long_description = ["README.md"] +long_description_content_type = ["text/markdown"] + +[tool.setuptools.packages.find] +where = ["."] +exclude = ["tests"] diff --git a/requirements/requirements-dev.txt b/requirements/requirements-dev.txt deleted file mode 100644 index 88d0d08e..00000000 --- a/requirements/requirements-dev.txt +++ /dev/null @@ -1,8 +0,0 @@ -clang-format==18.1.3 -einops -pre-commit>=2.20.0 -pytest -pytest-forked -sentencepiece -tiktoken -transformers-stream-generator diff --git a/requirements/requirements.txt b/requirements/requirements.txt deleted file mode 100644 index 8ca8791c..00000000 --- a/requirements/requirements.txt +++ /dev/null @@ -1,18 +0,0 @@ -accelerate -asyncio -deepspeed>=0.15.0 -deepspeed-kernels -fastapi -fastchat -Flask-RESTful -grpcio -grpcio-tools -Pillow -pydantic>=2.0.0 -pyzmq -safetensors -shortuuid -torch -transformers -ujson -Werkzeug diff --git a/setup.py b/setup.py index 89b828ba..53f73359 100644 --- a/setup.py +++ b/setup.py @@ -8,16 +8,6 @@ from setuptools import setup, find_packages -def fetch_requirements(path): - with open(path, 'r') as fd: - return [r.strip() for r in fd.readlines()] - - -install_requires = fetch_requirements('requirements/requirements.txt') - -extras_require = {"dev": fetch_requirements('requirements/requirements-dev.txt')} - - def command_exists(cmd): if sys.platform == "win32": result = subprocess.Popen(f'{cmd}', stdout=subprocess.PIPE, shell=True) @@ -71,31 +61,7 @@ def command_exists(cmd): with open("mii/version.py", 'w') as fd: fd.write(f"__version__ = '{version_str}'\n") -# Parse README.md to make long_description for PyPI page. -thisdir = os.path.abspath(os.path.dirname(__file__)) -with open(os.path.join(thisdir, 'README.md'), encoding='utf-8') as fin: - readme_text = fin.read() print("PACKAGES", find_packages()) setup(name="deepspeed-mii", version=version_str, - long_description=readme_text, - long_description_content_type='text/markdown', - description='deepspeed mii', - author='DeepSpeed Team', - author_email='deepspeed-mii@microsoft.com', - url='http://deepspeed.ai', - project_urls={ - 'Documentation': 'https://github.com/deepspeedai/DeepSpeed-MII', - 'Source': 'https://github.com/deepspeedai/DeepSpeed-MII', - }, - install_requires=install_requires, - extras_require=extras_require, - packages=find_packages(exclude=("tests", - )), - classifiers=[ - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12' - ]) +)