2012-02-07 12:58:15 +04:00
|
|
|
#!/usr/bin/env python
|
2011-02-19 21:41:23 +03:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
2012-02-07 14:14:34 +04:00
|
|
|
from setuptools import setup
|
2014-03-02 15:40:30 +04:00
|
|
|
from setuptools.command.test import test as TestCommand
|
2012-02-07 12:58:15 +04:00
|
|
|
import re
|
|
|
|
import os
|
|
|
|
import sys
|
2011-02-19 21:41:23 +03:00
|
|
|
|
2011-06-02 15:17:21 +04:00
|
|
|
|
2014-03-02 15:40:30 +04:00
|
|
|
# This command has been borrowed from
|
|
|
|
# https://github.com/getsentry/sentry/blob/master/setup.py
|
|
|
|
class PyTest(TestCommand):
|
|
|
|
def finalize_options(self):
|
|
|
|
TestCommand.finalize_options(self)
|
|
|
|
self.test_args = ['tests']
|
|
|
|
self.test_suite = True
|
|
|
|
|
|
|
|
def run_tests(self):
|
|
|
|
import pytest
|
|
|
|
errno = pytest.main(self.test_args)
|
|
|
|
sys.exit(errno)
|
|
|
|
|
|
|
|
|
2012-02-07 12:58:15 +04:00
|
|
|
def get_version(package):
|
|
|
|
"""
|
|
|
|
Return package version as listed in `__version__` in `init.py`.
|
|
|
|
"""
|
|
|
|
init_py = open(os.path.join(package, '__init__.py')).read()
|
2013-12-06 01:17:23 +04:00
|
|
|
return re.search("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1)
|
2012-02-07 12:58:15 +04:00
|
|
|
|
|
|
|
|
|
|
|
def get_packages(package):
|
|
|
|
"""
|
|
|
|
Return root package and all sub-packages.
|
|
|
|
"""
|
|
|
|
return [dirpath
|
|
|
|
for dirpath, dirnames, filenames in os.walk(package)
|
|
|
|
if os.path.exists(os.path.join(dirpath, '__init__.py'))]
|
|
|
|
|
|
|
|
|
|
|
|
def get_package_data(package):
|
|
|
|
"""
|
|
|
|
Return all files under the root package, that are not in a
|
|
|
|
package themselves.
|
|
|
|
"""
|
|
|
|
walk = [(dirpath.replace(package + os.sep, '', 1), filenames)
|
|
|
|
for dirpath, dirnames, filenames in os.walk(package)
|
|
|
|
if not os.path.exists(os.path.join(dirpath, '__init__.py'))]
|
|
|
|
|
|
|
|
filepaths = []
|
|
|
|
for base, filenames in walk:
|
|
|
|
filepaths.extend([os.path.join(base, filename)
|
|
|
|
for filename in filenames])
|
|
|
|
return {package: filepaths}
|
|
|
|
|
|
|
|
|
2012-09-20 16:06:27 +04:00
|
|
|
version = get_version('rest_framework')
|
2012-02-07 12:58:15 +04:00
|
|
|
|
|
|
|
|
|
|
|
if sys.argv[-1] == 'publish':
|
2014-12-18 13:40:40 +03:00
|
|
|
if os.system("pip freeze | grep wheel"):
|
|
|
|
print("wheel not installed.\nUse `pip install wheel`.\nExiting.")
|
|
|
|
sys.exit()
|
2012-02-07 12:58:15 +04:00
|
|
|
os.system("python setup.py sdist upload")
|
2013-11-15 19:49:53 +04:00
|
|
|
os.system("python setup.py bdist_wheel upload")
|
2012-12-02 04:23:03 +04:00
|
|
|
print("You probably want to also tag the version now:")
|
|
|
|
print(" git tag -a %s -m 'version %s'" % (version, version))
|
|
|
|
print(" git push --tags")
|
2012-02-07 12:58:15 +04:00
|
|
|
sys.exit()
|
|
|
|
|
2011-06-02 15:17:21 +04:00
|
|
|
|
2011-02-19 21:41:23 +03:00
|
|
|
setup(
|
2012-10-30 18:48:21 +04:00
|
|
|
name='djangorestframework',
|
2012-02-07 12:58:15 +04:00
|
|
|
version=version,
|
2014-01-08 19:49:19 +04:00
|
|
|
url='http://www.django-rest-framework.org',
|
2012-02-07 12:58:15 +04:00
|
|
|
license='BSD',
|
2013-02-14 14:17:09 +04:00
|
|
|
description='Web APIs for Django, made easy.',
|
2012-02-07 12:58:15 +04:00
|
|
|
author='Tom Christie',
|
2013-02-08 01:08:13 +04:00
|
|
|
author_email='tom@tomchristie.com', # SEE NOTE BELOW (*)
|
2012-09-20 16:06:27 +04:00
|
|
|
packages=get_packages('rest_framework'),
|
|
|
|
package_data=get_package_data('rest_framework'),
|
2014-03-02 15:40:30 +04:00
|
|
|
cmdclass={'test': PyTest},
|
2013-01-03 14:41:26 +04:00
|
|
|
install_requires=[],
|
2012-02-07 12:58:15 +04:00
|
|
|
classifiers=[
|
2013-02-14 14:17:09 +04:00
|
|
|
'Development Status :: 5 - Production/Stable',
|
2011-02-19 21:41:23 +03:00
|
|
|
'Environment :: Web Environment',
|
|
|
|
'Framework :: Django',
|
|
|
|
'Intended Audience :: Developers',
|
|
|
|
'License :: OSI Approved :: BSD License',
|
|
|
|
'Operating System :: OS Independent',
|
|
|
|
'Programming Language :: Python',
|
2013-01-03 14:41:37 +04:00
|
|
|
'Programming Language :: Python :: 3',
|
2011-02-19 21:41:23 +03:00
|
|
|
'Topic :: Internet :: WWW/HTTP',
|
|
|
|
]
|
2011-02-19 22:00:05 +03:00
|
|
|
)
|
2013-02-08 01:08:13 +04:00
|
|
|
|
|
|
|
# (*) Please direct queries to the discussion group, rather than to me directly
|
|
|
|
# Doing so helps ensure your question is helpful to other users.
|
|
|
|
# Queries directly to my email are likely to receive a canned response.
|
|
|
|
#
|
|
|
|
# Many thanks for your understanding.
|