aboutsummaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
authorSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 11:51:45 -0700
committerSVN-Git Migration <python-modules-team@lists.alioth.debian.org>2015-10-08 11:51:45 -0700
commit3b9f21a55fed735652716e63fedabad87899be81 (patch)
treeb6f57d335a1be88466d7780a6bb3101e81df2dde /setup.py
parent2228968f3d51a3d686adb2839bf43e018432f941 (diff)
downloadpython-django-tagging-3b9f21a55fed735652716e63fedabad87899be81.tar
python-django-tagging-3b9f21a55fed735652716e63fedabad87899be81.tar.gz
Imported Upstream version 0.2.1upstream/0.2.1
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py98
1 files changed, 65 insertions, 33 deletions
diff --git a/setup.py b/setup.py
index 21ab756..1cc8832 100644
--- a/setup.py
+++ b/setup.py
@@ -1,33 +1,65 @@
-from distutils.core import setup
-from distutils.command.install import INSTALL_SCHEMES
-
-# Tell distutils to put the data_files in platform-specific installation
-# locations. See here for an explanation:
-# http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb
-for scheme in INSTALL_SCHEMES.values():
- scheme['data'] = scheme['purelib']
-
-# Dynamically calculate the version based on tagging.VERSION.
-version_tuple = __import__('tagging').VERSION
-if version_tuple[2] is not None:
- version = "%d.%d_%s" % version_tuple
-else:
- version = "%d.%d" % version_tuple[:2]
-
-setup(
- name = 'tagging',
- version = version,
- description = 'Generic tagging application for Django',
- author = 'Jonathan Buchanan',
- author_email = 'jonathan.buchanan@gmail.com',
- url = 'http://code.google.com/p/django-tagging/',
- packages = ['tagging', 'tagging.templatetags', 'tagging.tests'],
- package_data = { 'tagging.tests': ['tags.txt']},
- classifiers = ['Development Status :: 4 - Beta',
- 'Environment :: Web Environment',
- 'Intended Audience :: Developers',
- 'License :: OSI Approved :: BSD License',
- 'Operating System :: OS Independent',
- 'Programming Language :: Python',
- 'Topic :: Utilities'],
-) \ No newline at end of file
+"""
+Based entirely on Django's own ``setup.py``.
+"""
+import os
+from distutils.command.install import INSTALL_SCHEMES
+from distutils.core import setup
+
+def fullsplit(path, result=None):
+ """
+ Split a pathname into components (the opposite of os.path.join) in a
+ platform-neutral way.
+ """
+ if result is None:
+ result = []
+ head, tail = os.path.split(path)
+ if head == '':
+ return [tail] + result
+ if head == path:
+ return result
+ return fullsplit(head, [tail] + result)
+
+# Tell distutils to put the data_files in platform-specific installation
+# locations. See here for an explanation:
+# http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb
+for scheme in INSTALL_SCHEMES.values():
+ scheme['data'] = scheme['purelib']
+
+# Compile the list of packages available, because distutils doesn't have
+# an easy way to do this.
+packages, data_files = [], []
+root_dir = os.path.dirname(__file__)
+tagging_dir = os.path.join(root_dir, 'tagging')
+pieces = fullsplit(root_dir)
+if pieces[-1] == '':
+ len_root_dir = len(pieces) - 1
+else:
+ len_root_dir = len(pieces)
+
+for dirpath, dirnames, filenames in os.walk(tagging_dir):
+ # Ignore dirnames that start with '.'
+ for i, dirname in enumerate(dirnames):
+ if dirname.startswith('.'): del dirnames[i]
+ if '__init__.py' in filenames:
+ packages.append('.'.join(fullsplit(dirpath)[len_root_dir:]))
+ elif filenames:
+ data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]])
+
+setup(
+ name = 'tagging',
+ version = '0.2.1',
+ description = 'Generic tagging application for Django',
+ author = 'Jonathan Buchanan',
+ author_email = 'jonathan.buchanan@gmail.com',
+ url = 'http://code.google.com/p/django-tagging/',
+ packages = packages,
+ data_files = data_files,
+ classifiers = ['Development Status :: 4 - Beta',
+ 'Environment :: Web Environment',
+ 'Framework :: Django',
+ 'Intended Audience :: Developers',
+ 'License :: OSI Approved :: BSD License',
+ 'Operating System :: OS Independent',
+ 'Programming Language :: Python',
+ 'Topic :: Utilities'],
+)