[Feature] Support mim (#376)
* Support mim extention * Fix lint. * Remove extra `demo` setting in mim related files.pull/370/head^2
parent
99e3d4e49e
commit
0f4cae4d3f
|
@ -112,6 +112,7 @@ data
|
||||||
*.pkl.json
|
*.pkl.json
|
||||||
*.log.json
|
*.log.json
|
||||||
work_dirs/
|
work_dirs/
|
||||||
|
mmcls/.mim
|
||||||
|
|
||||||
# Pytorch
|
# Pytorch
|
||||||
*.pth
|
*.pth
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
include mmcls/model-index.yml
|
include mmcls/.mim/model-index.yml
|
||||||
recursive-include mmcls/configs *.py *.yml
|
recursive-include mmcls/.mim/configs *.py *.yml
|
||||||
recursive-include mmcls/tools *.sh *.py
|
recursive-include mmcls/.mim/tools *.py *.sh
|
||||||
|
|
|
@ -85,6 +85,7 @@ We wish that the toolbox and benchmark could serve the growing research communit
|
||||||
## Projects in OpenMMLab
|
## Projects in OpenMMLab
|
||||||
|
|
||||||
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab foundational library for computer vision.
|
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab foundational library for computer vision.
|
||||||
|
- [MIM](https://github.com/open-mmlab/mim): MIM Installs OpenMMLab Packages.
|
||||||
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark.
|
- [MMClassification](https://github.com/open-mmlab/mmclassification): OpenMMLab image classification toolbox and benchmark.
|
||||||
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark.
|
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab detection toolbox and benchmark.
|
||||||
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection.
|
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab's next-generation platform for general 3D object detection.
|
||||||
|
|
|
@ -72,6 +72,7 @@ MMClassification 是一款由不同学校和公司共同贡献的开源项目。
|
||||||
## OpenMMLab 的其他项目
|
## OpenMMLab 的其他项目
|
||||||
|
|
||||||
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库
|
- [MMCV](https://github.com/open-mmlab/mmcv): OpenMMLab 计算机视觉基础库
|
||||||
|
- [MIM](https://github.com/open-mmlab/mim): MIM 是 OpenMMlab 项目、算法、模型的统一入口
|
||||||
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 检测工具箱与测试基准
|
- [MMDetection](https://github.com/open-mmlab/mmdetection): OpenMMLab 检测工具箱与测试基准
|
||||||
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
|
- [MMDetection3D](https://github.com/open-mmlab/mmdetection3d): OpenMMLab 新一代通用 3D 目标检测平台
|
||||||
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱与测试基准
|
- [MMSegmentation](https://github.com/open-mmlab/mmsegmentation): OpenMMLab 语义分割工具箱与测试基准
|
||||||
|
|
55
setup.py
55
setup.py
|
@ -1,3 +1,8 @@
|
||||||
|
import os
|
||||||
|
import os.path as osp
|
||||||
|
import shutil
|
||||||
|
import sys
|
||||||
|
import warnings
|
||||||
from setuptools import find_packages, setup
|
from setuptools import find_packages, setup
|
||||||
|
|
||||||
|
|
||||||
|
@ -90,6 +95,56 @@ def parse_requirements(fname='requirements.txt', with_version=True):
|
||||||
return packages
|
return packages
|
||||||
|
|
||||||
|
|
||||||
|
def add_mim_extention():
|
||||||
|
"""Add extra files that are required to support MIM into the package.
|
||||||
|
|
||||||
|
These files will be added by creating a symlink to the originals if the
|
||||||
|
package is installed in `editable` mode (e.g. pip install -e .), or by
|
||||||
|
copying from the originals otherwise.
|
||||||
|
"""
|
||||||
|
|
||||||
|
# parse installment mode
|
||||||
|
if 'develop' in sys.argv:
|
||||||
|
# installed by `pip install -e .`
|
||||||
|
mode = 'symlink'
|
||||||
|
elif 'sdist' in sys.argv or 'bdist_wheel' in sys.argv:
|
||||||
|
# installed by `pip install .`
|
||||||
|
# or create source distribution by `python setup.py sdist`
|
||||||
|
mode = 'copy'
|
||||||
|
else:
|
||||||
|
return
|
||||||
|
|
||||||
|
filenames = ['tools', 'configs', 'model-index.yml']
|
||||||
|
repo_path = osp.dirname(__file__)
|
||||||
|
mim_path = osp.join(repo_path, 'mmcls', '.mim')
|
||||||
|
os.makedirs(mim_path, exist_ok=True)
|
||||||
|
|
||||||
|
for filename in filenames:
|
||||||
|
if osp.exists(filename):
|
||||||
|
src_path = osp.join(repo_path, filename)
|
||||||
|
tar_path = osp.join(mim_path, filename)
|
||||||
|
|
||||||
|
if osp.isfile(tar_path) or osp.islink(tar_path):
|
||||||
|
os.remove(tar_path)
|
||||||
|
elif osp.isdir(tar_path):
|
||||||
|
shutil.rmtree(tar_path)
|
||||||
|
|
||||||
|
if mode == 'symlink':
|
||||||
|
src_relpath = osp.relpath(src_path, osp.dirname(tar_path))
|
||||||
|
os.symlink(src_relpath, tar_path)
|
||||||
|
elif mode == 'copy':
|
||||||
|
if osp.isfile(src_path):
|
||||||
|
shutil.copyfile(src_path, tar_path)
|
||||||
|
elif osp.isdir(src_path):
|
||||||
|
shutil.copytree(src_path, tar_path)
|
||||||
|
else:
|
||||||
|
warnings.warn(f'Cannot copy file {src_path}.')
|
||||||
|
else:
|
||||||
|
raise ValueError(f'Invalid mode {mode}')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
add_mim_extention()
|
||||||
setup(
|
setup(
|
||||||
name='mmcls',
|
name='mmcls',
|
||||||
version=get_version(),
|
version=get_version(),
|
||||||
|
|
Loading…
Reference in New Issue