Skip to content

Commit 49c7d66

Browse files
authored
[Fix] Update setup.py and MANIFEST.in (#45)
* update MANIFEST.in * update setup.py * add pip install xtuner[deepspeed]
1 parent dcf2491 commit 49c7d66

File tree

5 files changed

+31
-83
lines changed

5 files changed

+31
-83
lines changed

MANIFEST.in

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
1-
include requirements/*.txt
2-
include xtuner/.mim/model-index.yml
3-
include xtuner/.mim/demo/*/*
4-
recursive-include xtuner/.mim/configs *.py *.yml
5-
recursive-include xtuner/.mim/tools *.sh *.py
1+
recursive-include xtuner/configs *.py *.yml *.json
2+
recursive-include xtuner/tools *.sh *.py

requirements.txt

+2-12
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,2 @@
1-
bitsandbytes>=0.40.0
2-
datasets
3-
einops
4-
lagent
5-
mmengine>=0.8.4
6-
peft>=0.4.0
7-
scipy
8-
SentencePiece
9-
tiktoken
10-
torch
11-
transformers>=4.31.0
12-
transformers_stream_generator
1+
-r requirements/runtime.txt
2+
-r requirements/deepspeed.txt

requirements/deepspeed.txt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
deepspeed
2+
mpi4py-mpich

requirements/runtime.txt

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
bitsandbytes>=0.40.0
2+
datasets
3+
einops
4+
lagent
5+
mmengine>=0.8.4
6+
peft>=0.4.0
7+
scipy
8+
SentencePiece
9+
tiktoken
10+
torch
11+
transformers>=4.31.0
12+
transformers_stream_generator

setup.py

+13-66
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
#!/usr/bin/env python
22
# Copyright (c) OpenMMLab. All rights reserved.
3-
import os
4-
import os.path as osp
5-
import platform
6-
import shutil
7-
import sys
8-
import warnings
93
from setuptools import find_packages, setup
104

115

@@ -101,85 +95,38 @@ def gen_packages_items():
10195
return packages
10296

10397

104-
def add_mim_extension():
105-
"""Add extra files that are required to support MIM into the package.
106-
107-
These files will be added by creating a symlink to the originals if the
108-
package is installed in `editable` mode (e.g. pip install -e .), or by
109-
copying from the originals otherwise.
110-
"""
111-
112-
# parse installment mode
113-
if 'develop' in sys.argv:
114-
# installed by `pip install -e .`
115-
if platform.system() == 'Windows':
116-
# set `copy` mode here since symlink fails on Windows.
117-
mode = 'copy'
118-
else:
119-
mode = 'symlink'
120-
elif 'sdist' in sys.argv or 'bdist_wheel' in sys.argv:
121-
# installed by `pip install .`
122-
# or create source distribution by `python setup.py sdist`
123-
mode = 'copy'
124-
else:
125-
return
126-
127-
filenames = ['tools', 'configs', 'demo', 'model-index.yml']
128-
repo_path = osp.dirname(__file__)
129-
mim_path = osp.join(repo_path, 'xtuner', '.mim')
130-
os.makedirs(mim_path, exist_ok=True)
131-
132-
for filename in filenames:
133-
if osp.exists(filename):
134-
src_path = osp.join(repo_path, filename)
135-
tar_path = osp.join(mim_path, filename)
136-
137-
if osp.isfile(tar_path) or osp.islink(tar_path):
138-
os.remove(tar_path)
139-
elif osp.isdir(tar_path):
140-
shutil.rmtree(tar_path)
141-
142-
if mode == 'symlink':
143-
src_relpath = osp.relpath(src_path, osp.dirname(tar_path))
144-
os.symlink(src_relpath, tar_path)
145-
elif mode == 'copy':
146-
if osp.isfile(src_path):
147-
shutil.copyfile(src_path, tar_path)
148-
elif osp.isdir(src_path):
149-
shutil.copytree(src_path, tar_path)
150-
else:
151-
warnings.warn(f'Cannot copy file {src_path}.')
152-
else:
153-
raise ValueError(f'Invalid mode {mode}')
154-
155-
15698
if __name__ == '__main__':
157-
add_mim_extension()
15899
setup(
159100
name='xtuner',
160101
version=get_version(),
161-
description='xTuner',
102+
description='A toolkit for efficiently fine-tuning LLM',
162103
long_description=readme(),
163104
long_description_content_type='text/markdown',
164105
author='{author name}',
165106
author_email='{your email}',
166-
keywords='xtuner, template',
167-
url='https://github.com/user_name/xtuner',
168-
packages=find_packages(exclude=('configs', 'tools', 'demo')),
107+
keywords='large language model, parameter-efficient fine-tuning',
108+
url='https://github.com/InternLM/xtuner',
109+
packages=find_packages(),
169110
include_package_data=True,
170111
classifiers=[
171112
'Development Status :: 4 - Beta',
172113
'License :: OSI Approved :: Apache Software License',
173114
'Operating System :: OS Independent',
174115
'Programming Language :: Python :: 3',
175-
'Programming Language :: Python :: 3.7',
176116
'Programming Language :: Python :: 3.8',
177117
'Programming Language :: Python :: 3.9',
178118
'Programming Language :: Python :: 3.10',
179119
'Topic :: Utilities',
180120
],
181-
python_requires='>=3.7',
121+
python_requires='>=3.8',
182122
license='Apache License 2.0',
183-
install_requires=parse_requirements('requirements.txt'),
123+
install_requires=parse_requirements('requirements/runtime.txt'),
124+
extras_require={
125+
'all':
126+
parse_requirements('requirements.txt'),
127+
'deepspeed':
128+
parse_requirements('requirements/runtime.txt') +
129+
parse_requirements('requirements/deepspeed.txt')
130+
},
184131
zip_safe=False,
185132
entry_points={'console_scripts': ['xtuner = xtuner:cli']})

0 commit comments

Comments
 (0)