Django

Code

root/django/branches/per-object-permissions/setup.py

Revision 5488, 2.1 kB (checked in by clong, 1 year ago)

per-object-permissions: Merged to trunk [5486] NOTE: Not fully tested, will be working on this over the next few weeks.

Line 
1 from distutils.core import setup
2 from distutils.command.install import INSTALL_SCHEMES
3 import os
4 import sys
5
6 def fullsplit(path, result=None):
7     """
8     Split a pathname into components (the opposite of os.path.join) in a
9     platform-neutral way.
10     """
11     if result is None:
12         result = []
13     head, tail = os.path.split(path)
14     if head == '':
15         return [tail] + result
16     if head == path:
17         return result
18     return fullsplit(head, [tail] + result)
19
20 # Tell distutils to put the data_files in platform-specific installation
21 # locations. See here for an explanation:
22 # http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb
23 for scheme in INSTALL_SCHEMES.values():
24     scheme['data'] = scheme['purelib']
25
26 # Compile the list of packages available, because distutils doesn't have
27 # an easy way to do this.
28 packages, data_files = [], []
29 root_dir = os.path.dirname(__file__)
30 django_dir = os.path.join(root_dir, 'django')
31 pieces = fullsplit(root_dir)
32 if pieces[-1] == '':
33     len_root_dir = len(pieces) - 1
34 else:
35     len_root_dir = len(pieces)
36
37 for dirpath, dirnames, filenames in os.walk(django_dir):
38     # Ignore dirnames that start with '.'
39     for i, dirname in enumerate(dirnames):
40         if dirname.startswith('.'): del dirnames[i]
41     if '__init__.py' in filenames:
42         packages.append('.'.join(fullsplit(dirpath)[len_root_dir:]))
43     elif filenames:
44         data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]])
45
46 # Dynamically calculate the version based on django.VERSION.
47 version_tuple = __import__('django').VERSION
48 if version_tuple[2] is not None:
49     version = "%d.%d_%s" % version_tuple
50 else:
51     version = "%d.%d" % version_tuple[:2]
52
53 setup(
54     name = "Django",
55     version = version,
56     url = 'http://www.djangoproject.com/',
57     author = 'Lawrence Journal-World',
58     author_email = 'holovaty@gmail.com',
59     description = 'A high-level Python Web framework that encourages rapid development and clean, pragmatic design.',
60     packages = packages,
61     data_files = data_files,
62     scripts = ['django/bin/django-admin.py'],
63 )
Note: See TracBrowser for help on using the browser.