|
- #!/usr/bin/env python
- import codecs
- import os
- import sys
-
- os.environ['TENSORLAYER_PACKAGE_BUILDING'] = 'True'
-
- try:
- from setuptools import find_packages, setup, Extension
- from setuptools.command.build_ext import build_ext
-
- except ImportError:
- from distutils.core import (setup, find_packages)
-
- from tensorlayer import (
- __contact_emails__, __contact_names__, __description__, __download_url__, __homepage__, __keywords__, __license__,
- __package_name__, __repository_url__, __version__
- )
-
- # =================== Reading Readme file as TXT files ===================
-
- if os.path.exists('README.rst'):
- # codec is used for consistent encoding
- long_description = codecs.open(
- os.path.join(os.path.abspath(os.path.dirname(__file__)), 'README.rst'), 'r', 'utf-8'
- ).read()
-
- else:
- long_description = 'See ' + __homepage__
-
- # ======================= Reading Requirements files as TXT files =======================
-
-
- def req_file(filename, folder="requirements"):
- with open(os.path.join(folder, filename)) as f:
- content = f.readlines()
- # you may also want to remove whitespace characters
- # Example: `\n` at the end of each line
- return [x.strip() for x in content]
-
-
- # ======================= Defining the requirements var =======================
-
- install_requires = req_file("requirements.txt")
-
- extras_require = {
- # User packages
- 'tf_cpu': req_file("requirements_tf_cpu.txt"),
- 'tf_gpu': req_file("requirements_tf_gpu.txt"),
- 'extra': req_file("requirements_extra.txt"),
-
- # Contrib Packages
- 'contrib_loggers': req_file("requirements_contrib_loggers.txt"),
-
- # Dev Packages
- 'test': req_file("requirements_test.txt"),
- 'dev': req_file("requirements_dev.txt"),
- 'doc': req_file("requirements_doc.txt"),
- 'db': req_file("requirements_db.txt"),
- }
-
- extras_require['all'] = sum([extras_require.get(key) for key in ['extra', 'contrib_loggers']], list())
-
- extras_require['all_cpu'] = sum([extras_require.get(key) for key in ['all', 'tf_cpu']], list())
- extras_require['all_gpu'] = sum([extras_require.get(key) for key in ['all', 'tf_gpu']], list())
-
- extras_require['all_dev'] = sum([extras_require.get(key) for key in ['all', 'db', 'dev', 'doc', 'test']], list())
- extras_require['all_cpu_dev'] = sum([extras_require.get(key) for key in ['all_dev', 'tf_cpu']], list())
- extras_require['all_gpu_dev'] = sum([extras_require.get(key) for key in ['all_dev', 'tf_gpu']], list())
-
- cmdclass = dict()
- ext_modules = []
-
- # Readthedocs requires TF 1.5.0 to build properly
- if 'READTHEDOCS' in os.environ:
- ext_modules = [
- Extension('install_requirements_for_rtd', []),
- ]
-
- class custom_build_ext(build_ext):
-
- def build_extensions(self):
- os.system('./scripts/install-requirements-for-rtd.sh %s' % os.path.dirname(sys.executable))
-
- cmdclass = {'build_ext': custom_build_ext}
-
- # ======================= Define the package setup =======================
-
- setup(
- name=__package_name__,
-
- # Versions should comply with PEP440. For a discussion on single-sourcing
- # the version across setup.py and the project code, see
- # https://packaging.python.org/en/latest/single_source_version.html
- version=__version__,
- description=__description__,
- long_description=long_description,
-
- # The project's main homepage.
- url=__repository_url__,
- download_url=__download_url__,
-
- # Author details
- author=__contact_names__,
- author_email=__contact_emails__,
-
- # maintainer Details
- maintainer=__contact_names__,
- maintainer_email=__contact_emails__,
-
- # The licence under which the project is released
- license=__license__,
- classifiers=[
- # How mature is this project? Common values are
- # 1 - Planning
- # 2 - Pre-Alpha
- # 3 - Alpha
- # 4 - Beta
- # 5 - Production/Stable
- # 6 - Mature
- # 7 - Inactive
- 'Development Status :: 5 - Production/Stable',
-
- # Indicate who your project is intended for
- 'Intended Audience :: Developers',
- 'Intended Audience :: Science/Research',
- 'Intended Audience :: Information Technology',
-
- # Indicate what your project relates to
- 'Topic :: Scientific/Engineering',
- 'Topic :: Scientific/Engineering :: Image Recognition',
- 'Topic :: Scientific/Engineering :: Artificial Intelligence',
- 'Topic :: Software Development :: Libraries',
- 'Topic :: Utilities',
-
- # Pick your license as you wish (should match "license" above)
- 'License :: OSI Approved :: Apache Software License',
-
- # Specify the Python versions you support here. In particular, ensure
- # that you indicate whether you support Python 2, Python 3 or both.
- 'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.5',
- 'Programming Language :: Python :: 3.6',
-
- # Additionnal Settings
- 'Environment :: Console',
- 'Natural Language :: English',
- 'Operating System :: OS Independent',
- ],
- keywords=__keywords__,
- packages=find_packages(),
-
- # List run-time dependencies here. These will be installed by pip when
- # your project is installed. For an analysis of "install_requires" vs pip's
- # requirements files see:
- # https://packaging.python.org/en/latest/requirements.html
- install_requires=install_requires,
- cmdclass=cmdclass,
-
- # List additional groups of dependencies here (e.g. development
- # dependencies). You can install these using the following syntax,
- # $ pip install -e .[test]
- extras_require=extras_require,
- ext_modules=ext_modules,
- scripts=[
- 'tl',
- ],
- )
|