|
3 | 3 | import os
|
4 | 4 | import sys
|
5 | 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 | + |
6 | 20 | # Tell distutils to put the data_files in platform-specific installation
|
7 | 21 | # locations. See here for an explanation:
|
8 | 22 | # http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb
|
|
13 | 27 | # an easy way to do this.
|
14 | 28 | packages, data_files = [], []
|
15 | 29 | root_dir = os.path.dirname(__file__)
|
16 |
| -len_root_dir = len(root_dir) |
17 | 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) |
18 | 36 |
|
19 | 37 | for dirpath, dirnames, filenames in os.walk(django_dir):
|
20 | 38 | # Ignore dirnames that start with '.'
|
21 | 39 | for i, dirname in enumerate(dirnames):
|
22 | 40 | if dirname.startswith('.'): del dirnames[i]
|
23 | 41 | if '__init__.py' in filenames:
|
24 |
| - package = dirpath[len_root_dir:].lstrip('/').replace('/', '.') |
25 |
| - packages.append(package) |
26 |
| - else: |
| 42 | + packages.append('.'.join(fullsplit(dirpath)[len_root_dir:])) |
| 43 | + elif filenames: |
27 | 44 | data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]])
|
28 | 45 |
|
29 |
| -# Small hack for working with bdist_wininst. |
30 |
| -# See http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html |
31 |
| -if len(sys.argv) > 1 and sys.argv[1] == 'bdist_wininst': |
32 |
| - for file_info in data_files: |
33 |
| - file_info[0] = '/PURELIB/%s' % file_info[0] |
34 |
| - |
35 | 46 | # Dynamically calculate the version based on django.VERSION.
|
36 |
| -version = "%d.%d-%s" % (__import__('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] |
37 | 52 |
|
38 | 53 | setup(
|
39 | 54 | name = "Django",
|
|
0 commit comments