# HG changeset patch # User ymh # Date 1297965034 -3600 # Node ID 83f4abc7568f9004aa5080ba569b29ffd311f4ec # Parent d283ffaa77919fb8b4afef865135256c4b610d37 correct setup for ldt diff -r d283ffaa7791 -r 83f4abc7568f .hgignore --- a/.hgignore Tue Feb 15 15:29:57 2011 +0100 +++ b/.hgignore Thu Feb 17 18:50:34 2011 +0100 @@ -23,4 +23,13 @@ ^src/ldt/dist$ syntax: regexp -^web/static/media/ldt$ \ No newline at end of file +^web/static/media/ldt$ +syntax: regexp +^virtualenv/setup/project-boot\.py$ +syntax: regexp +^virtualenv/setup/env/ + +syntax: regexp +^src/ldt/build$ +syntax: regexp +^src/ldt/ldt\.egg-info$ \ No newline at end of file diff -r d283ffaa7791 -r 83f4abc7568f src/ldt/MANIFEST.in --- a/src/ldt/MANIFEST.in Tue Feb 15 15:29:57 2011 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -include *.txt -recursive-include docs *.txt diff -r d283ffaa7791 -r 83f4abc7568f src/ldt/setup.py --- a/src/ldt/setup.py Tue Feb 15 15:29:57 2011 +0100 +++ b/src/ldt/setup.py Thu Feb 17 18:50:34 2011 +0100 @@ -12,7 +12,7 @@ platform-neutral way. """ if result is None: - result = [] + result = [] head, tail = os.path.split(path) if head == '': return [tail] + result @@ -20,33 +20,37 @@ return result return fullsplit(head, [tail] + result) -packages, data_files = [], [] +packages, data_files, path_processed = [], {}, [] + +#TODO : uses find_packages form setuptools and teh mercurial extension -for dirpath, dirnames, filenames in os.walk(SOURCE_DIR): +for dirpath, dirnames, filenames in os.walk(SOURCE_DIR,True): # Ignore dirnames that start with '.' + if dirpath in path_processed: + continue + path_processed.append(dirpath) for i, dirname in enumerate(dirnames): if dirname.startswith('.'): del dirnames[i] if '__init__.py' in filenames: packages.append('.'.join(fullsplit(dirpath))) - elif filenames: - data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) + else: + new_data_files = [] + base_path_list = fullsplit(dirpath)[:-1] + base_path = "/".join(base_path_list) + "/" + key = '.'.join(base_path_list) + for ldirpath, ldirnames, lfilenames in os.walk(dirpath): + path_processed.append(ldirpath) + new_data_files.extend([os.path.join(ldirpath[len(base_path):], f) for f in lfilenames]) + data_files.setdefault(key,[]).extend(new_data_files) + setup( - name='Ldt', + name='ldt', version=version, author='Yves-Marie Haussonne (IRI)', author_email='contact@iri.centrepompidou.fr', - packages=packages, - data_files=data_files, -# package_data = { -# '': [ -# 'media/*', -# 'locale/*/LC_MESSAGES/*', -# 'templates/ldt/*.html', -# 'templates/admin/*.html', -# 'templates/cms/admin/cms/page/*.html', -# ] -# }, + packages = find_packages(), + package_data = data_files, scripts=[], url='https://www.iri.centrepompidou.fr/dev/hg/platform', license='LICENSE.txt', diff -r d283ffaa7791 -r 83f4abc7568f virtualenv/setup/create_python_env.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/virtualenv/setup/create_python_env.py Thu Feb 17 18:50:34 2011 +0100 @@ -0,0 +1,184 @@ +""" +Call this like ``python create_python_env.py``; it will +refresh the project-boot.py script + +-prerequisite: + +- virtualenv + +- python project-boot.py --unzip-setuptools --no-site-packages --clear --type-install=local + +""" + +import os +import subprocess +import re +import sys + + +here = os.path.dirname(os.path.abspath(__file__)) +base_dir = here +script_name = os.path.join(base_dir, 'project-boot.py') + +import virtualenv + +# things to install +# - psycopg2 -> pip +# - PIL -> pip +# - pyxml -> pip +# - 4Suite-xml - easy_install ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2 +# - pylucene - script + +src_base = os.path.join(here,"res","src").replace("\\","/") +lib_path = os.path.abspath(os.path.join(here,"res","lib")).replace("\\","/") + +EXTRA_TEXT = "URLS = { \n" + +EXTRA_TEXT += " 'DISTRIBUTE' : { 'setup': 'distribute', 'url': 'http://pypi.python.org/packages/source/d/distribute/distribute-0.6.14.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"distribute-0.6.14.tar.gz")).replace("\\","/")+"'},\n" +EXTRA_TEXT += " 'MERCURIAL' : { 'setup': 'distribute', 'url': 'http://pypi.python.org/packages/source/d/mercurial/mercurial-1.7.5.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"mercurial-1.7.5.tar.gz")).replace("\\","/")+"'},\n" +EXTRA_TEXT += "}\n" + +EXTRA_TEXT += "import sys\n" +EXTRA_TEXT += "sys.path.append('"+lib_path+"')\n" + +EXTRA_TEXT += """ + +import shutil +import tarfile +import zipfile +import urllib +import platform + + +INDEX_URL = 'http://pypi.python.org/simple/' + + +def extend_parser(parser): + parser.add_option( + '--index-url', + metavar='INDEX_URL', + dest='index_url', + default='', + help='base URL of Python Package Index') + parser.add_option( + '--type-install', + metavar='type_install', + dest='type_install', + default='local', + help='type install : local, url, setup') + parser.add_option( + '--ignore-packages', + metavar='ignore_packages', + dest='ignore_packages', + default=None, + help='list of comma separated keys for package to ignore') + + + +def adjust_options(options, args): + pass + + +def after_install(options, home_dir): + home_dir, lib_dir, inc_dir, bin_dir = path_locations(home_dir) + base_dir = os.path.dirname(home_dir) + src_dir = join(home_dir, 'src') + tmp_dir = join(home_dir, 'tmp') + ensure_dir(src_dir) + ensure_dir(tmp_dir) + system_str = platform.system() + + res_source_key = options.type_install + + ignore_packages = [] + + if options.ignore_packages : + ignore_packages = options.ignore_packages.split(",") + + logger.indent += 2 + try: + NORMAL_INSTALL = [ #(key,method, option_str, extra_env) + ('DISTRIBUTE', 'pip', None, None), + ('MERCURIAL', 'pip', None, None), + ] + + + for key, method, option_str, extra_env in NORMAL_INSTALL: + if key not in ignore_packages: + normal_install(key, method, option_str, extra_env, res_source_key, home_dir, tmp_dir) + + logger.notify("Clear source dir") + shutil.rmtree(src_dir) + + finally: + logger.indent -= 2 + script_dir = join(base_dir, bin_dir) + logger.notify('Run "%s Package" to install new packages that provide builds' + % join(script_dir, 'easy_install')) + + +def normal_install(key, method, option_str, extra_env, res_source_key, home_dir, tmp_dir): + logger.notify("Install %s from %s with %s" % (key,URLS[key][res_source_key],method)) + if method == 'pip': + if sys.platform == 'win32': + args = [os.path.abspath(os.path.join(home_dir, 'Scripts', 'pip')), 'install', '-E', os.path.abspath(home_dir), URLS[key][res_source_key]] + else: + args = [os.path.abspath(os.path.join(home_dir, 'bin', 'pip')), 'install', '-E', os.path.abspath(home_dir), URLS[key][res_source_key]] + if option_str : + args.insert(4,option_str) + call_subprocess(args, + cwd=os.path.abspath(tmp_dir), + filter_stdout=filter_python_develop, + show_stdout=True, + extra_env=extra_env) + else: + if sys.platform == 'win32': + args = [os.path.abspath(os.path.join(home_dir, 'Scripts', 'easy_install')), URLS[key][res_source_key]] + else: + args = [os.path.abspath(os.path.join(home_dir, 'bin', 'easy_install')), URLS[key][res_source_key]] + if option_str : + args.insert(1,option_str) + call_subprocess(args, + cwd=os.path.abspath(tmp_dir), + filter_stdout=filter_python_develop, + show_stdout=True, + extra_env=extra_env) + + +def ensure_dir(dir): + if not os.path.exists(dir): + logger.notify('Creating directory %s' % dir) + os.makedirs(dir) + +def filter_python_develop(line): + if not line.strip(): + return Logger.DEBUG + for prefix in ['Searching for', 'Reading ', 'Best match: ', 'Processing ', + 'Moving ', 'Adding ', 'running ', 'writing ', 'Creating ', + 'creating ', 'Copying ']: + if line.startswith(prefix): + return Logger.DEBUG + return Logger.NOTIFY +""" + +def main(): + python_version = ".".join(map(str,sys.version_info[0:2])) + text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version=python_version) + if os.path.exists(script_name): + f = open(script_name) + cur_text = f.read() + f.close() + else: + cur_text = '' + print 'Updating %s' % script_name + if cur_text == 'text': + print 'No update' + else: + print 'Script changed; updating...' + f = open(script_name, 'w') + f.write(text) + f.close() + +if __name__ == '__main__': + main() + diff -r d283ffaa7791 -r 83f4abc7568f virtualenv/setup/env/.keepme diff -r d283ffaa7791 -r 83f4abc7568f virtualenv/setup/res/src/distribute-0.6.14.tar.gz Binary file virtualenv/setup/res/src/distribute-0.6.14.tar.gz has changed diff -r d283ffaa7791 -r 83f4abc7568f virtualenv/setup/res/src/mercurial-1.7.5.tar.gz Binary file virtualenv/setup/res/src/mercurial-1.7.5.tar.gz has changed