Spaces:
Runtime error
Runtime error
#!/usr/bin/env python | |
# Copyright (c) Megvii, Inc. and its affiliates. All Rights Reserved | |
import re | |
import setuptools | |
import sys | |
TORCH_AVAILABLE = True | |
try: | |
import torch | |
from torch.utils import cpp_extension | |
except ImportError: | |
TORCH_AVAILABLE = False | |
print("[WARNING] Unable to import torch, pre-compiling ops will be disabled.") | |
def get_package_dir(): | |
pkg_dir = { | |
"yolox.tools": "tools", | |
"yolox.exp.default": "exps/default", | |
} | |
return pkg_dir | |
def get_install_requirements(): | |
with open("requirements.txt", "r", encoding="utf-8") as f: | |
reqs = [x.strip() for x in f.read().splitlines()] | |
reqs = [x for x in reqs if not x.startswith("#")] | |
return reqs | |
def get_yolox_version(): | |
with open("yolox/__init__.py", "r") as f: | |
version = re.search( | |
r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]', | |
f.read(), re.MULTILINE | |
).group(1) | |
return version | |
def get_long_description(): | |
with open("README.md", "r", encoding="utf-8") as f: | |
long_description = f.read() | |
return long_description | |
def get_ext_modules(): | |
ext_module = [] | |
if sys.platform != "win32": # pre-compile ops on linux | |
assert TORCH_AVAILABLE, "torch is required for pre-compiling ops, please install it first." | |
# if any other op is added, please also add it here | |
from yolox.layers import FastCOCOEvalOp | |
ext_module.append(FastCOCOEvalOp().build_op()) | |
return ext_module | |
def get_cmd_class(): | |
cmdclass = {} | |
if TORCH_AVAILABLE: | |
cmdclass["build_ext"] = cpp_extension.BuildExtension | |
return cmdclass | |
setuptools.setup( | |
name="yolox", | |
version=get_yolox_version(), | |
author="megvii basedet team", | |
url="https://github.com/Megvii-BaseDetection/YOLOX", | |
package_dir=get_package_dir(), | |
packages=setuptools.find_packages(exclude=("tests", "tools")) + list(get_package_dir().keys()), | |
python_requires=">=3.6", | |
install_requires=get_install_requirements(), | |
setup_requires=["wheel"], # avoid building error when pip is not updated | |
long_description=get_long_description(), | |
long_description_content_type="text/markdown", | |
include_package_data=True, # include files in MANIFEST.in | |
ext_modules=get_ext_modules(), | |
cmdclass=get_cmd_class(), | |
classifiers=[ | |
"Programming Language :: Python :: 3", "Operating System :: OS Independent", | |
"License :: OSI Approved :: Apache Software License", | |
], | |
project_urls={ | |
"Documentation": "https://yolox.readthedocs.io", | |
"Source": "https://github.com/Megvii-BaseDetection/YOLOX", | |
"Tracker": "https://github.com/Megvii-BaseDetection/YOLOX/issues", | |
}, | |
) | |