diff options
Diffstat (limited to 'setup.py')
| -rwxr-xr-x[-rw-r--r--] | setup.py | 83 | 
1 files changed, 60 insertions, 23 deletions
| @@ -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', | 
