src/ldt/setup.py
author ymh <ymh.work@gmail.com>
Tue, 03 May 2011 17:20:47 +0200
changeset 84 91a4dafd5904
parent 63 93325a5d61f0
child 167 fe00e7302efe
permissions -rw-r--r--
improve setup and debug lucene calls
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
84
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    11
version_variables = {}
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    12
try:
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    13
    execfile(os.path.join(SOURCE_DIR, "__init__.py"), version_variables)
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    14
except:
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    15
    pass
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    16
91a4dafd5904 improve setup and debug lucene calls
ymh <ymh.work@gmail.com>
parents: 63
diff changeset
    17
version = version_variables['__version__']
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
3
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    19
def fullsplit(path, result=None):
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    20
    """
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    21
    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
    22
    platform-neutral way.
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    23
    """
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    24
    if result is None:
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    25
        result = []
3
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    26
    head, tail = os.path.split(path)
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    27
    if head == '':
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    28
        return [tail] + result
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    29
    if head == path:
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    30
        return result
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    31
    return fullsplit(head, [tail] + result)
03918bc7b9f1 small corrections on install
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    32
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    33
packages, data_files, path_processed = [], {}, []
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    34
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    35
#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
    36
63
93325a5d61f0 organize format and import
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
    37
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
    38
    # Ignore dirnames that start with '.'
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    39
    if dirpath in path_processed:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    40
        continue
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    41
    path_processed.append(dirpath)
2
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    42
    for i, dirname in enumerate(dirnames):
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    43
        if dirname.startswith('.'): del dirnames[i]
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    44
    if '__init__.py' in filenames:
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    45
        packages.append('.'.join(fullsplit(dirpath)))
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    46
    else:
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    47
        new_data_files = []
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    48
        base_path_list = fullsplit(dirpath)[:-1]
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    49
        base_path = "/".join(base_path_list) + "/"
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    50
        key = '.'.join(base_path_list)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    51
        for ldirpath, ldirnames, lfilenames in os.walk(dirpath):
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    52
            path_processed.append(ldirpath)
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    53
            new_data_files.extend([os.path.join(ldirpath[len(base_path):], f) for f in lfilenames])
63
93325a5d61f0 organize format and import
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
    54
        data_files.setdefault(key, []).extend(new_data_files)
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    55
48
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    56
#write MANIFEST.in
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    57
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    58
m = open("MANIFEST.in", "w")
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    59
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    60
m.write("exclude MANIFEST.in\n")
63
93325a5d61f0 organize format and import
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
    61
for key, file_list in data_files.iteritems():
48
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    62
    for filename in file_list:
63
93325a5d61f0 organize format and import
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
    63
        m.write("include %s/%s\n" % (key.replace(".", "/"), filename))
48
ef3a8cfef2bc correct setup.py to integrate templsters
ymh <ymh.work@gmail.com>
parents: 30
diff changeset
    64
m.close()
2
93d48df946cb change platform to ldtplatform
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
    65
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
setup(
30
83f4abc7568f correct setup for ldt
ymh <ymh.work@gmail.com>
parents: 13
diff changeset
    67
    name='ldt',
13
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    68
    version=version,
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    69
    author='Yves-Marie Haussonne (IRI)',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    70
    author_email='contact@iri.centrepompidou.fr',
63
93325a5d61f0 organize format and import
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
    71
    packages=packages,
93325a5d61f0 organize format and import
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
    72
    package_data=data_files,
13
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    73
    scripts=[],
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    74
    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
    75
    license='LICENSE.txt',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    76
    description='Platform ldt',
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    77
    long_description=open('README.txt').read(),
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    78
    zip_safe=False,
97ab7b3191cf add api to update project, uses psiton
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    79
    classifiers=['Development Status :: 5 - Production/Stable',
0
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
                   'Environment :: Web Environment',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
                   'Framework :: Django',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
                   'Intended Audience :: Developers',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
                   'License :: Ceccil-C',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
                   'Operating System :: OS Independent',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
                   'Programming Language :: Python',
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
                   'Topic :: Utilities'],
bdf22b140727 first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
)