123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- # Copyright (c) <2015-Present> Tzutalin
- # Copyright (C) 2013 MIT, Computer Science and Artificial Intelligence Laboratory. Bryan Russell, Antonio Torralba,
- # William T. Freeman. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
- # associated documentation files (the "Software"), to deal in the Software without restriction, including without
- # limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
- # Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
- # The above copyright notice and this permission notice shall be included in all copies or substantial portions of
- # the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
- # NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
- # SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- # CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- # THE SOFTWARE.
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- from setuptools import setup, find_packages, Command
- from sys import platform as _platform
- from shutil import rmtree
- import sys
- import os
- here = os.path.abspath(os.path.dirname(__file__))
- NAME = 'labelImg'
- REQUIRES_PYTHON = '>=3.0.0'
- REQUIRED_DEP = ['pyqt5', 'lxml']
- about = {}
- with open(os.path.join(here, 'libs', '__init__.py')) as f:
- exec(f.read(), about)
- with open('README.rst') as readme_file:
- readme = readme_file.read()
- with open('HISTORY.rst') as history_file:
- history = history_file.read()
- # OS specific settings
- SET_REQUIRES = []
- if _platform == "linux" or _platform == "linux2":
- # linux
- print('linux')
- elif _platform == "darwin":
- # MAC OS X
- SET_REQUIRES.append('py2app')
- required_packages = find_packages()
- required_packages.append('labelImg')
- APP = [NAME + '.py']
- OPTIONS = {
- 'argv_emulation': True,
- 'iconfile': 'resources/icons/app.icns'
- }
- class UploadCommand(Command):
- """Support setup.py upload."""
- description=readme + '\n\n' + history,
- user_options = []
- @staticmethod
- def status(s):
- """Prints things in bold."""
- print('\033[1m{0}\033[0m'.format(s))
- def initialize_options(self):
- pass
- def finalize_options(self):
- pass
- def run(self):
- try:
- self.status('Removing previous builds…')
- rmtree(os.path.join(here, 'dist'))
- except OSError:
- self.status('Fail to remove previous builds..')
- pass
- self.status('Building Source and Wheel (universal) distribution…')
- os.system(
- '{0} setup.py sdist bdist_wheel --universal'.format(sys.executable))
- self.status('Uploading the package to PyPI via Twine…')
- os.system('twine upload dist/*')
- self.status('Pushing git tags…')
- os.system('git tag -d v{0}'.format(about['__version__']))
- os.system('git tag v{0}'.format(about['__version__']))
- # os.system('git push --tags')
- sys.exit()
- setup(
- app=APP,
- name=NAME,
- version=about['__version__'],
- description="LabelImg is a graphical image annotation tool and label object bounding boxes in images",
- long_description=readme + '\n\n' + history,
- author="TzuTa Lin",
- author_email='tzu.ta.lin@gmail.com',
- url='https://github.com/tzutalin/labelImg',
- python_requires=REQUIRES_PYTHON,
- package_dir={'labelImg': '.'},
- packages=required_packages,
- entry_points={
- 'console_scripts': [
- 'labelImg=labelImg.labelImg:main'
- ]
- },
- include_package_data=True,
- install_requires=REQUIRED_DEP,
- license="MIT license",
- zip_safe=False,
- keywords='labelImg labelTool development annotation deeplearning',
- classifiers=[
- 'Development Status :: 5 - Production/Stable',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: MIT License',
- 'Natural Language :: English',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.3',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5',
- 'Programming Language :: Python :: 3.6',
- 'Programming Language :: Python :: 3.7',
- ],
- package_data={'data/predefined_classes.txt': ['data/predefined_classes.txt']},
- options={'py2app': OPTIONS},
- setup_requires=SET_REQUIRES,
- # $ setup.py publish support.
- cmdclass={
- 'upload': UploadCommand,
- }
- )
|