aboutsummaryrefslogtreecommitdiffstats
path: root/setup.py
diff options
context:
space:
mode:
authorTom Christie2012-02-07 08:58:15 +0000
committerTom Christie2012-02-07 08:58:15 +0000
commit15fc26f50b94d41d1024a3f40fe21af5f2d07bfb (patch)
tree91233e9e957415dcad8402ae57d48f1216391f9a /setup.py
parent87ef85587dd58afa80ef2955c819c974edaa2cfc (diff)
downloaddjango-rest-framework-15fc26f50b94d41d1024a3f40fe21af5f2d07bfb.tar.bz2
Fix up packaging and staticfiles changes. Fixes #155. Fixes #153. Fixes #150.
Diffstat (limited to 'setup.py')
-rwxr-xr-x[-rw-r--r--]setup.py83
1 files changed, 60 insertions, 23 deletions
diff --git a/setup.py b/setup.py
index 690a7e0f..91980629 100644..100755
--- a/setup.py
+++ b/setup.py
@@ -1,33 +1,70 @@
-#!/usr/bin/env/python
+#!/usr/bin/env python
# -*- coding: utf-8 -*-
-from setuptools import setup
+from distutils.core import setup
+import re
+import os
+import sys
-import os, re
-path = os.path.join(os.path.dirname(__file__), 'djangorestframework', '__init__.py')
-init_py = open(path).read()
-VERSION = re.match("__version__ = '([^']+)'", init_py).group(1)
+def get_version(package):
+ """
+ Return package version as listed in `__version__` in `init.py`.
+ """
+ init_py = open(os.path.join(package, '__init__.py')).read()
+ return re.match("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1)
+
+
+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}
+
+
+version = get_version('djangorestframework')
+
+
+if sys.argv[-1] == 'publish':
+ os.system("python setup.py sdist upload")
+ print "You probably want to also tag the version now:"
+ print " git tag -a %s -m 'version %s'" % (version, version)
+ print " git push --tags"
+ sys.exit()
+
setup(
- name = 'djangorestframework',
- version = VERSION,
- url = 'http://django-rest-framework.org',
- download_url = 'http://pypi.python.org/pypi/djangorestframework/',
- license = 'BSD',
- description = 'A lightweight REST framework for Django.',
- author = 'Tom Christie',
- author_email = 'tom@tomchristie.com',
- packages = ['djangorestframework',
- 'djangorestframework.templatetags',
- 'djangorestframework.tests',
- 'djangorestframework.runtests',
- 'djangorestframework.utils'],
- package_dir={'djangorestframework': 'djangorestframework'},
- package_data = {'djangorestframework': ['templates/*', 'static/*']},
- test_suite = 'djangorestframework.runtests.runcoverage.main',
+ name='djangorestframework',
+ version=version,
+ url='http://django-rest-framework.org',
+ download_url='http://pypi.python.org/pypi/djangorestframework/',
+ license='BSD',
+ description='A lightweight REST framework for Django.',
+ author='Tom Christie',
+ author_email='tom@tomchristie.com',
+ packages=get_packages('djangorestframework'),
+ package_data=get_package_data('djangorestframework'),
+ test_suite='djangorestframework.runtests.runcoverage.main',
install_requires=['URLObject>=0.6.0'],
- classifiers = [
+ classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Web Environment',
'Framework :: Django',