|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import os |
|
|
import os.path as osp |
|
|
import glob |
|
|
import shutil |
|
|
import subprocess |
|
|
from setuptools import find_packages, setup |
|
|
|
|
|
|
|
|
|
|
|
PPDET_VERSION = "2.6.0" |
|
|
|
|
|
|
|
|
def parse_version(): |
|
|
return PPDET_VERSION.replace('-', '') |
|
|
|
|
|
|
|
|
def git_commit(): |
|
|
try: |
|
|
cmd = ['git', 'rev-parse', 'HEAD'] |
|
|
git_commit = subprocess.Popen( |
|
|
cmd, |
|
|
stdout=subprocess.PIPE, ).communicate()[0].strip() |
|
|
git_commit = git_commit.decode() |
|
|
except: |
|
|
git_commit = 'Unknown' |
|
|
|
|
|
return str(git_commit) |
|
|
|
|
|
|
|
|
def write_version_py(filename='ppdet/version.py'): |
|
|
ver_str = """# THIS FILE IS GENERATED FROM PADDLEPADDLE SETUP.PY |
|
|
# |
|
|
full_version = '%(version)s' |
|
|
commit = '%(commit)s' |
|
|
""" |
|
|
|
|
|
_git_commit = git_commit() |
|
|
with open(filename, 'w') as f: |
|
|
f.write(ver_str % {'version': PPDET_VERSION, 'commit': _git_commit}) |
|
|
|
|
|
|
|
|
write_version_py() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def readme(): |
|
|
with open('README.md', encoding='utf-8') as f: |
|
|
content = f.read() |
|
|
return content |
|
|
|
|
|
|
|
|
def parse_requirements(fname): |
|
|
with open(fname, encoding="utf-8-sig") as f: |
|
|
requirements = f.readlines() |
|
|
return requirements |
|
|
|
|
|
|
|
|
def package_model_zoo(): |
|
|
cur_dir = osp.dirname(osp.realpath(__file__)) |
|
|
cfg_dir = osp.join(cur_dir, "configs") |
|
|
cfgs = glob.glob(osp.join(cfg_dir, '*/*.yml')) |
|
|
|
|
|
valid_cfgs = [] |
|
|
for cfg in cfgs: |
|
|
|
|
|
if osp.split(osp.split(cfg)[0])[1] not in ['datasets']: |
|
|
valid_cfgs.append(cfg) |
|
|
model_names = [ |
|
|
osp.relpath(cfg, cfg_dir).replace(".yml", "") for cfg in valid_cfgs |
|
|
] |
|
|
|
|
|
model_zoo_file = osp.join(cur_dir, 'ppdet', 'model_zoo', 'MODEL_ZOO') |
|
|
with open(model_zoo_file, 'w') as wf: |
|
|
for model_name in model_names: |
|
|
wf.write("{}\n".format(model_name)) |
|
|
|
|
|
return [model_zoo_file] |
|
|
|
|
|
|
|
|
packages = [ |
|
|
'ppdet', |
|
|
'ppdet.core', |
|
|
'ppdet.data', |
|
|
'ppdet.engine', |
|
|
'ppdet.metrics', |
|
|
'ppdet.modeling', |
|
|
'ppdet.model_zoo', |
|
|
'ppdet.slim', |
|
|
'ppdet.utils', |
|
|
] |
|
|
|
|
|
if __name__ == "__main__": |
|
|
setup( |
|
|
name='paddledet', |
|
|
packages=find_packages(exclude=("configs", "tools", "deploy")), |
|
|
package_data={'ppdet.model_zoo': package_model_zoo()}, |
|
|
author='PaddlePaddle', |
|
|
version=parse_version(), |
|
|
install_requires=parse_requirements('./requirements.txt'), |
|
|
description='Object detection and instance segmentation toolkit based on PaddlePaddle', |
|
|
long_description=readme(), |
|
|
long_description_content_type='text/markdown', |
|
|
url='https://github.com/PaddlePaddle/PaddleDetection', |
|
|
download_url='https://github.com/PaddlePaddle/PaddleDetection.git', |
|
|
keywords=['ppdet paddle ppyolo'], |
|
|
classifiers=[ |
|
|
'Intended Audience :: Developers', |
|
|
'License :: OSI Approved :: Apache Software License', |
|
|
'Operating System :: OS Independent', |
|
|
'Natural Language :: Chinese (Simplified)', |
|
|
'Programming Language :: Python :: 3', |
|
|
'Programming Language :: Python :: 3.5', |
|
|
'Programming Language :: Python :: 3.6', |
|
|
'Programming Language :: Python :: 3.7', |
|
|
'Programming Language :: Python :: 3.8', 'Topic :: Utilities' |
|
|
], |
|
|
license='Apache License 2.0', |
|
|
ext_modules=[]) |
|
|
|