src/ldt/setup.py
author ymh <ymh.work@gmail.com>
Mon, 21 Mar 2011 19:26:49 +0100
changeset 48 ef3a8cfef2bc
parent 30 83f4abc7568f
child 63 93325a5d61f0
permissions -rw-r--r--
correct setup.py to integrate templsters
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
import os
48
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
     2
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
     3
from distribute_setup import use_setuptools
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
     4
use_setuptools()
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
     5
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
     6
from setuptools import setup
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
ROOT_DIR = os.path.dirname(__file__)
3
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
     9
SOURCE_DIR = os.path.join(ROOT_DIR, 'ldt')
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
version = __import__('ldt').__version__
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
3
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    13
def fullsplit(path, result=None):
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    14
    """
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    15
    Split a pathname into components (the opposite of os.path.join) in a
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    16
    platform-neutral way.
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    17
    """
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    18
    if result is None:
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    19
        result = []
3
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    20
    head, tail = os.path.split(path)
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    21
    if head == '':
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    22
        return [tail] + result
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    23
    if head == path:
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    24
        return result
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    25
    return fullsplit(head, [tail] + result)
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    26
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    27
packages, data_files, path_processed = [], {}, []
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    28
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    29
#TODO : uses find_packages form setuptools and teh mercurial extension
2
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    30
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    31
for dirpath, dirnames, filenames in os.walk(SOURCE_DIR,True):
2
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    32
    # Ignore dirnames that start with '.'
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    33
    if dirpath in path_processed:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    34
        continue
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    35
    path_processed.append(dirpath)
2
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    36
    for i, dirname in enumerate(dirnames):
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    37
        if dirname.startswith('.'): del dirnames[i]
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    38
    if '__init__.py' in filenames:
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    39
        packages.append('.'.join(fullsplit(dirpath)))
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    40
    else:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    41
        new_data_files = []
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    42
        base_path_list = fullsplit(dirpath)[:-1]
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    43
        base_path = "/".join(base_path_list) + "/"
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    44
        key = '.'.join(base_path_list)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    45
        for ldirpath, ldirnames, lfilenames in os.walk(dirpath):
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    46
            path_processed.append(ldirpath)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    47
            new_data_files.extend([os.path.join(ldirpath[len(base_path):], f) for f in lfilenames])
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    48
        data_files.setdefault(key,[]).extend(new_data_files)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    49
48
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    50
#write MANIFEST.in
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    51
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    52
m = open("MANIFEST.in", "w")
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    53
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    54
m.write("exclude MANIFEST.in\n")
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    55
for key,file_list in data_files.iteritems():
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    56
    for filename in file_list:
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    57
        m.write("include %s/%s\n" % (key.replace(".","/"), filename))
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    58
m.close()
2
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    59
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
setup(
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    61
    name='ldt',
13
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    62
    version=version,
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    63
    author='Yves-Marie Haussonne (IRI)',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    64
    author_email='contact@iri.centrepompidou.fr',
48
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    65
    packages = packages,
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    66
    package_data = data_files,
13
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    67
    scripts=[],
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    68
    url='https://www.iri.centrepompidou.fr/dev/hg/platform',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    69
    license='LICENSE.txt',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    70
    description='Platform ldt',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    71
    long_description=open('README.txt').read(),
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    72
    zip_safe=False,
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    73
    classifiers=['Development Status :: 5 - Production/Stable',
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
                   'Environment :: Web Environment',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
                   'Framework :: Django',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
                   'Intended Audience :: Developers',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
                   'License :: Ceccil-C',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
                   'Operating System :: OS Independent',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
                   'Programming Language :: Python',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
                   'Topic :: Utilities'],
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
)