#!/usr/bin/env python
-from imp import load_source
from os.path import abspath, dirname, join
+from setuptools import setup
+import sys
-try:
- from setuptools import setup
- is_setuptools = True
-except ImportError:
- from distutils.core import setup
- is_setuptools = False
+if sys.version_info[:2] == (2, 7):
+ from imp import load_source
+
+elif sys.version_info >= (3, 4):
+ from importlib.machinery import SourceFileLoader
+ import types
+
+ def load_source(fullname, path):
+ loader = SourceFileLoader(fullname, path)
+ loaded = types.ModuleType(loader.name)
+ loader.exec_module(loaded)
+ return loaded
+
+else:
+ raise ImportError("{project} requires Python 2.7 or 3.4+")
versionpath = join(abspath(dirname(__file__)), '{project}', '__version__.py')
-load_source('{project}_version', versionpath)
-# Ignore: E402 module level import not at top of file
-from {project}_version import __version__ # noqa
+{project}_version = load_source('{project}_version', versionpath)
-setup(name='{project}',
- version=__version__,
- description='Broytman {project}',
- long_description=open('README.rst', 'rU').read(),
- author='Oleg Broytman',
- author_email='phd@phdru.name',
- url='http://phdru.name/Software/Python/{project}',
- license='GPL',
- keywords=[''],
- platforms='Any',
- classifiers=[
- 'Development Status :: 1 - Planning',
- 'Environment :: Console',
- 'Environment :: Web Environment',
- 'Intended Audience :: End Users/Desktop',
- 'License :: OSI Approved :: GNU General Public License (GPL)',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python :: 2',
- 'Programming Language :: Python :: 2.7',
- 'Programming Language :: Python :: 3',
- 'Programming Language :: Python :: 3.3',
- 'Programming Language :: Python :: 3.4',
- 'Programming Language :: Python :: 3.5',
- 'Programming Language :: Python :: 3.6',
- ],
- packages=['{project}'],
- package_data={'{project}': []},
- scripts=[],
- requires=[],
- )
+setup(
+ name='{project}',
+ version={project}_version.__version__,
+ description='Broytman {project}',
+ long_description=open('README.rst', 'rU').read(),
+ long_description_content_type="text/x-rst",
+ author='Oleg Broytman',
+ author_email='phd@phdru.name',
+ url='https://phdru.name/Software/Python/{project}',
+ download_url='https://phdru.name/Software/Python/{project}',
+ project_urls={
+ 'Homepage': 'https://phdru.name/Software/Python/{project}',
+ 'Documentation':
+ 'https://phdru.name/Software/Python/{project}/docs/',
+ 'Russian docs':
+ 'https://phdru.name/Software/Python/{project}/docs/ru/',
+ 'Download': 'https://phdru.name/Software/Python/{project}',
+ 'Git repo': 'https://git.phdru.name/{project}.git/',
+ 'Github repo': 'https://github.com/phdru/{project}',
+ 'Issue tracker': 'https://github.com/phdru/{project}/issues',
+ },
+ license='GPL',
+ keywords=[''],
+ platforms='Any',
+ classifiers=[
+ 'Development Status :: 1 - Planning',
+ 'Environment :: Console',
+ 'Environment :: Web Environment',
+ 'Intended Audience :: End Users/Desktop',
+ 'License :: OSI Approved :: GNU General Public License (GPL)',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python :: 2',
+ 'Programming Language :: Python :: 2.7',
+ 'Programming Language :: Python :: 3',
+ 'Programming Language :: Python :: 3.4',
+ 'Programming Language :: Python :: 3.5',
+ 'Programming Language :: Python :: 3.6',
+ 'Programming Language :: Python :: 3.7',
+ ],
+ packages=['{project}'],
+ package_data={'{project}': []},
+ scripts=[],
+ python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
+ requires=[],
+)