# PaCkAgE DaTaStReAm distribute 1 4015 # end of header 0707010006207f000081a4000000000000000000000001513ff7430000013a000000b600010002ffffffffffffffff0000001300000000distribute/pkginfoPKG=distribute NAME=distribute 0.6.28 i86pc Solaris 11 VERSION=0.6.28 PSTAMP=13th March 2013 VENDOR=Phillip Eby EMAIL=https://pypi.python.org/pypi/distribute DESC=download, build, install, upgrade, and uninstall Python packages ARCH=i386 CATEGORY=utility CLASSES=none BASEDIR=/ ISTATES=S s 1 2 3 RSTATES=S s 1 2 3 0707010006207e000081a4000000000000000000000001513ff74300003ef7000000b600010002ffffffffffffffff0000001200000000distribute/pkgmap: 1 4015 1 d none /usr ? ? ? 1 d none /usr/local ? ? ? 1 d none /usr/local/lib 0755 root root 1 d none /usr/local/lib/python2.7 0755 root root 1 d none /usr/local/lib/python2.7/site-packages 0755 root root 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg 0755 root root 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/PKG-INFO 0644 root root 26178 33625 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/SOURCES.txt 0644 root root 3041 37372 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/dependency_links.txt 0644 root root 1 10 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/entry_points.txt 0644 root root 2773 11922 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/top_level.txt 0644 root root 43 4291 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/zip-safe 0644 root root 2 23 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/easy_install.py 0755 root root 126 10618 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/easy_install.pyc 0644 root root 349 22409 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py 0755 root root 93260 22222 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyc 0644 root root 106407 57439 1363145909 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.py 0755 root root 3744 54080 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyc 0644 root root 4232 56492 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.py 0755 root root 6165 29137 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyc 0644 root root 6000 1696 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli-32.exe 0644 root root 69632 55904 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli-64.exe 0644 root root 75264 32813 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli.exe 0644 root root 69632 55904 1363145909 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/__init__.py 0755 root root 689 58609 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/__init__.pyc 0644 root root 954 60804 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.py 0755 root root 2477 59130 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyc 0644 root root 3465 2680 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.py 0755 root root 18594 49756 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyc 0644 root root 19030 53281 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.py 0755 root root 2025 23372 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyc 0644 root root 2497 16809 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.py 0755 root root 1548 52451 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyc 0644 root root 2005 52301 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.py 0755 root root 11704 2155 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyc 0644 root root 10803 15162 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.py 0755 root root 10548 34052 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyc 0644 root root 12604 18719 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.py 0755 root root 5368 35569 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyc 0644 root root 5583 64876 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.py 0755 root root 72429 44412 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyc 0644 root root 68459 44121 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.py 0755 root root 14356 59109 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyc 0644 root root 17985 59151 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.py 0755 root root 4065 817 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyc 0644 root root 4069 47733 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.py 0755 root root 3833 19459 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyc 0644 root root 5007 34771 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.py 0755 root root 2486 59208 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyc 0644 root root 3492 11064 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.py 0755 root root 2059 38248 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyc 0644 root root 2771 36141 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.py 0755 root root 277 23573 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyc 0644 root root 794 47869 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.py 0755 root root 2021 20226 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pyc 0644 root root 3066 55367 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/saveopts.py 0755 root root 740 59579 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/saveopts.pyc 0644 root root 1369 18883 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.py 0755 root root 7599 43683 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyc 0644 root root 9055 49529 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.py 0755 root root 5053 56412 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyc 0644 root root 6365 64589 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.py 0755 root root 5110 64591 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyc 0644 root root 5746 17486 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.py 0755 root root 6683 29572 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.pyc 0644 root root 6552 45990 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.py 0755 root root 6174 2139 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyc 0644 root root 6734 65275 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/depends.py 0755 root root 6209 21041 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/depends.pyc 0644 root root 7157 31677 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.py 0755 root root 30309 46853 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyc 0644 root root 31731 11905 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/extension.py 0755 root root 1398 50285 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/extension.pyc 0644 root root 2535 25505 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui-32.exe 0644 root root 65536 55069 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui-64.exe 0644 root root 75264 43191 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui.exe 0644 root root 65536 55069 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.py 0755 root root 30995 43639 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyc 0644 root root 30930 20118 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.py 0755 root root 8999 45796 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyc 0644 root root 12603 49619 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.py 0755 root root 163 13232 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.pyc 0644 root root 309 20522 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.py 0755 root root 202 16429 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyc 0644 root root 366 22861 1363145909 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/__init__.py 0755 root root 12396 64657 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/__init__.pyc 0644 root root 15058 33476 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/doctest.py 0755 root root 99730 8298 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/doctest.pyc 0644 root root 85610 23051 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/py26compat.py 0755 root root 267 22073 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/py26compat.pyc 0644 root root 931 55360 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/server.py 0755 root root 2493 243 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/server.pyc 0644 root root 4514 1290 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_bdist_egg.py 0755 root root 1945 18543 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_bdist_egg.pyc 0644 root root 3130 45230 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_build_ext.py 0755 root root 673 57494 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_build_ext.pyc 0644 root root 1252 11970 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_develop.py 0755 root root 2377 48825 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_develop.pyc 0644 root root 3401 60233 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_dist_info.py 0755 root root 2323 48769 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_dist_info.pyc 0644 root root 3536 15385 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_easy_install.py 0755 root root 13420 56892 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_easy_install.pyc 0644 root root 16928 13529 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_packageindex.py 0755 root root 5217 13450 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_packageindex.pyc 0644 root root 6587 13984 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_resources.py 0755 root root 24677 51521 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_resources.pyc 0644 root root 29231 2598 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_sandbox.py 0755 root root 1724 65181 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_sandbox.pyc 0644 root root 3366 1190 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_upload_docs.py 0755 root root 1885 15095 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_upload_docs.pyc 0644 root root 2655 17600 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.py 0755 root root 2362 43241 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.pyc 0644 root root 1793 30389 1363145909 1 f none /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info 0644 root root 144 12788 1363145910 1 f none /usr/local/lib/python2.7/site-packages/setuptools.pth 0644 root root 34 2860 1363145910 1 i checkinstall 790 2505 1363146736 1 i pkginfo 314 25283 1363146563 1 i postinstall 523 46420 1363146737 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000b00000000TRAILER!!!0707010006207f000081a4000000000000000000000001513ff7430000013a000000b600010002ffffffffffffffff0000000800000000pkginfoPKG=distribute NAME=distribute 0.6.28 i86pc Solaris 11 VERSION=0.6.28 PSTAMP=13th March 2013 VENDOR=Phillip Eby EMAIL=https://pypi.python.org/pypi/distribute DESC=download, build, install, upgrade, and uninstall Python packages ARCH=i386 CATEGORY=utility CLASSES=none BASEDIR=/ ISTATES=S s 1 2 3 RSTATES=S s 1 2 3 0707010006207e000081a4000000000000000000000001513ff74300003ef7000000b600010002ffffffffffffffff0000000700000000pkgmap: 1 4015 1 d none /usr ? ? ? 1 d none /usr/local ? ? ? 1 d none /usr/local/lib 0755 root root 1 d none /usr/local/lib/python2.7 0755 root root 1 d none /usr/local/lib/python2.7/site-packages 0755 root root 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg 0755 root root 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/PKG-INFO 0644 root root 26178 33625 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/SOURCES.txt 0644 root root 3041 37372 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/dependency_links.txt 0644 root root 1 10 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/entry_points.txt 0644 root root 2773 11922 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/top_level.txt 0644 root root 43 4291 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/EGG-INFO/zip-safe 0644 root root 2 23 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/easy_install.py 0755 root root 126 10618 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/easy_install.pyc 0644 root root 349 22409 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py 0755 root root 93260 22222 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyc 0644 root root 106407 57439 1363145909 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.py 0755 root root 3744 54080 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyc 0644 root root 4232 56492 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.py 0755 root root 6165 29137 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyc 0644 root root 6000 1696 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli-32.exe 0644 root root 69632 55904 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli-64.exe 0644 root root 75264 32813 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli.exe 0644 root root 69632 55904 1363145909 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/__init__.py 0755 root root 689 58609 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/__init__.pyc 0644 root root 954 60804 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.py 0755 root root 2477 59130 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyc 0644 root root 3465 2680 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.py 0755 root root 18594 49756 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyc 0644 root root 19030 53281 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.py 0755 root root 2025 23372 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyc 0644 root root 2497 16809 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.py 0755 root root 1548 52451 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyc 0644 root root 2005 52301 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.py 0755 root root 11704 2155 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyc 0644 root root 10803 15162 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.py 0755 root root 10548 34052 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyc 0644 root root 12604 18719 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.py 0755 root root 5368 35569 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyc 0644 root root 5583 64876 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.py 0755 root root 72429 44412 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyc 0644 root root 68459 44121 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.py 0755 root root 14356 59109 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyc 0644 root root 17985 59151 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.py 0755 root root 4065 817 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyc 0644 root root 4069 47733 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.py 0755 root root 3833 19459 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyc 0644 root root 5007 34771 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.py 0755 root root 2486 59208 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyc 0644 root root 3492 11064 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.py 0755 root root 2059 38248 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyc 0644 root root 2771 36141 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.py 0755 root root 277 23573 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyc 0644 root root 794 47869 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.py 0755 root root 2021 20226 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pyc 0644 root root 3066 55367 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/saveopts.py 0755 root root 740 59579 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/saveopts.pyc 0644 root root 1369 18883 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.py 0755 root root 7599 43683 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyc 0644 root root 9055 49529 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.py 0755 root root 5053 56412 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyc 0644 root root 6365 64589 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.py 0755 root root 5110 64591 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyc 0644 root root 5746 17486 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.py 0755 root root 6683 29572 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.pyc 0644 root root 6552 45990 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.py 0755 root root 6174 2139 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyc 0644 root root 6734 65275 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/depends.py 0755 root root 6209 21041 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/depends.pyc 0644 root root 7157 31677 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.py 0755 root root 30309 46853 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyc 0644 root root 31731 11905 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/extension.py 0755 root root 1398 50285 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/extension.pyc 0644 root root 2535 25505 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui-32.exe 0644 root root 65536 55069 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui-64.exe 0644 root root 75264 43191 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui.exe 0644 root root 65536 55069 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.py 0755 root root 30995 43639 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyc 0644 root root 30930 20118 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.py 0755 root root 8999 45796 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyc 0644 root root 12603 49619 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.py 0755 root root 163 13232 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.pyc 0644 root root 309 20522 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.py 0755 root root 202 16429 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyc 0644 root root 366 22861 1363145909 1 d none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests 0755 root root 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/__init__.py 0755 root root 12396 64657 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/__init__.pyc 0644 root root 15058 33476 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/doctest.py 0755 root root 99730 8298 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/doctest.pyc 0644 root root 85610 23051 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/py26compat.py 0755 root root 267 22073 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/py26compat.pyc 0644 root root 931 55360 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/server.py 0755 root root 2493 243 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/server.pyc 0644 root root 4514 1290 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_bdist_egg.py 0755 root root 1945 18543 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_bdist_egg.pyc 0644 root root 3130 45230 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_build_ext.py 0755 root root 673 57494 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_build_ext.pyc 0644 root root 1252 11970 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_develop.py 0755 root root 2377 48825 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_develop.pyc 0644 root root 3401 60233 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_dist_info.py 0755 root root 2323 48769 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_dist_info.pyc 0644 root root 3536 15385 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_easy_install.py 0755 root root 13420 56892 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_easy_install.pyc 0644 root root 16928 13529 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_packageindex.py 0755 root root 5217 13450 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_packageindex.pyc 0644 root root 6587 13984 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_resources.py 0755 root root 24677 51521 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_resources.pyc 0644 root root 29231 2598 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_sandbox.py 0755 root root 1724 65181 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_sandbox.pyc 0644 root root 3366 1190 1363145910 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_upload_docs.py 0755 root root 1885 15095 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/tests/test_upload_docs.pyc 0644 root root 2655 17600 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.py 0755 root root 2362 43241 1363145909 1 f none /usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.pyc 0644 root root 1793 30389 1363145909 1 f none /usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info 0644 root root 144 12788 1363145910 1 f none /usr/local/lib/python2.7/site-packages/setuptools.pth 0644 root root 34 2860 1363145910 1 i checkinstall 790 2505 1363146736 1 i pkginfo 314 25283 1363146563 1 i postinstall 523 46420 1363146737 070701000621b3000041ed000000000000000000000002513ff74300000000000000b600010002ffffffffffffffff0000000800000000install070701000621b4000081ed000000000000000000000001513ff7f000000316000000b600010002ffffffffffffffff0000001500000000install/checkinstall#!/bin/sh # expected_bits="64" expected_release="5.11" expected_platform="i386" # release=`uname -r` platform=`uname -p` bits=`isainfo -b` # if [ ${platform} != ${expected_platform} ]; then echo "\n\n\n\tThis package must be installed on a ${expected_platform} architecture\n" echo "\tAborting installation.\n\n\n" exit 1 fi if [ ${release} != ${expected_release} ]; then echo "\n\n\n\tThis package must be installed on a ${expected_release} machine\n" echo "\tAborting installation.\n\n\n" exit 1 fi #if [ ${bits} != ${expected_bits} ]; then # echo "\n\n\n\tThis package must be installed on a ${expected_bits} bit machine\n" # echo "\tYour machine is running a ${bits} bit O.S. currently\n" # echo "\tAborting installation.\n\n\n" # exit 1 #fi exit 0 070701000621b5000081ed000000000000000000000001513ff7f10000020b000000b600010002ffffffffffffffff0000001400000000install/postinstall#!/usr/bin/ksh easy_install_pth="/usr/local/lib/python2.7/site-packages/easy-install.pth" distribute_egg='distribute-0.6.28-py2.7.egg' distribute_check=`/bin/grep ${distribute_egg} ${easy_install_pth} | /bin/grep -ci ${distribute_egg}` # # Add distribute to easy_install.pth if missing # if [ "$distribute_check" -eq "0" ]; then perl -pe 's%^import sys; new=sys.path%./distribute-0.6.28-py2.7.egg\nimport sys; new=sys.path%' -i ${easy_install_pth} echo "Added ${distribute_egg} to ${easy_install_pth}." fi exit 0 07070100062080000041ed000000000000000000000003513ff74300000000000000b600010002ffffffffffffffff0000000500000000root07070100062081000041ed000000000000000000000003513ff74300000000000000b600010002ffffffffffffffff0000000900000000root/usr07070100062082000041ed000000000000000000000003513ff74300000000000000b600010002ffffffffffffffff0000000f00000000root/usr/local07070100062083000041ed000000000000000000000003513ff74300000000000000b600010002ffffffffffffffff0000001300000000root/usr/local/lib07070100062084000041ed000000000000000000000003513ff74300000000000000b600010002ffffffffffffffff0000001d00000000root/usr/local/lib/python2.707070100062085000041ed000000000000000000000003513ff74300000000000000b600010002ffffffffffffffff0000002b00000000root/usr/local/lib/python2.7/site-packages070701000621b1000081a4000000000000000000000001513ff4b600000090000000b600010002ffffffffffffffff0000004c00000000root/usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-infoMetadata-Version: 1.0 Name: setuptools Version: 0.6c11 Summary: xxxx Home-page: xxx Author: xxx Author-email: xxx License: xxx Description: xxx 070701000621b2000081a4000000000000000000000001513ff4b600000022000000b600010002ffffffffffffffff0000003a00000000root/usr/local/lib/python2.7/site-packages/setuptools.pth./setuptools-0.6c11-py2.7.egg-info07070100062086000041ed000000000000000000000004513ff74300000000000000b600010002ffffffffffffffff0000004700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg070701000621b0000081a4000000000000000000000001513ff4b500000701000000b600010002ffffffffffffffff0000005000000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.pyc ?Qc@s&dZedkr"e[ndS(c Csddl}ddl}ddl}ddl}|jjd}|dksd|jdkrm| rmg}n|j|j }t |di}|j t |}|j j t}x|D]}||ks| rqn|j|}|dk r&|jd} | dk r| jdPqqy"|jd|g\} } } Wntk r^qnX| dkrqqnz|jd| | | Wd| jXPqWtdtg|j D]}t|ddf^q} t |dd }d |_x|D]}t|qW|j|7_t|d \}}d}g}x|j D]}t|\}}||kr|dkrt |}n|| ks|dkr|j|qM|j|||d7}qMW||j (dS( Nit PYTHONPATHtwin32tpath_importer_cachetsites$Couldn't find the real 'site' moduleit __egginserti(tsystimptostos.pathtenvirontgettNonetplatformtsplittpathseptgetattrtpathtlentdirnamet__file__t find_modulet load_modulet ImportErrortclosetdicttmakepathRt addsitedirtappendtinsert(RRRRtpictstdpathtmydirtitemtimportertloadertstreamRtdescrt known_pathstoldpostdtndt insert_attnew_pathtptnp((sJ/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.pyt__boots\0"     "    2  RN(R-t__name__(((sJ/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.pyts G 070701000621af000081ed000000000000000000000001513ff4b50000093a000000b600010002ffffffffffffffff0000004f00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/site.pydef __boot(): import sys, imp, os, os.path PYTHONPATH = os.environ.get('PYTHONPATH') if PYTHONPATH is None or (sys.platform=='win32' and not PYTHONPATH): PYTHONPATH = [] else: PYTHONPATH = PYTHONPATH.split(os.pathsep) pic = getattr(sys,'path_importer_cache',{}) stdpath = sys.path[len(PYTHONPATH):] mydir = os.path.dirname(__file__) #print "searching",stdpath,sys.path for item in stdpath: if item==mydir or not item: continue # skip if current dir. on Windows, or my own directory importer = pic.get(item) if importer is not None: loader = importer.find_module('site') if loader is not None: # This should actually reload the current module loader.load_module('site') break else: try: stream, path, descr = imp.find_module('site',[item]) except ImportError: continue if stream is None: continue try: # This should actually reload the current module imp.load_module('site',stream,path,descr) finally: stream.close() break else: raise ImportError("Couldn't find the real 'site' module") #print "loaded", __file__ known_paths = dict([(makepath(item)[1],1) for item in sys.path]) # 2.2 comp oldpos = getattr(sys,'__egginsert',0) # save old insertion position sys.__egginsert = 0 # and reset the current one for item in PYTHONPATH: addsitedir(item) sys.__egginsert += oldpos # restore effective old position d,nd = makepath(stdpath[0]) insert_at = None new_path = [] for item in sys.path: p,np = makepath(item) if np==nd and insert_at is None: # We've hit the first 'system' path entry, so added entries go here insert_at = len(new_path) if np in known_paths or insert_at is None: new_path.append(item) else: # new path after the insert point, back-insert it new_path.insert(insert_at, item) insert_at += 1 sys.path[:] = new_path if __name__=='site': __boot() del __boot 0707010006213f000081a4000000000000000000000001513ff4b500019fa7000000b600010002ffffffffffffffff0000005900000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyc ?QcC@s} dZddlZddlZddlZddlZddlZddlZddlZddlmZm Z ye Wn!e k rddl m Z nXddlmZy&ddlmZmZmZeZWnek reZnXddlmZddlmZmZeZd d ZiZd Zd Zd Z dZ!dZ"dZ#dZ$dZ%Z&dZ'ddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVgCZ(d/e)fdWYZ*d0e*fdXYZ+d1e*fdYYZ,d2e*fdZYZ-iZ.ej/d[ Z0d[Z1d\Z2d]Z3d^Z4dZ5d_Z6d`Z7gdaZ8dbZ9dcZ:ej;ddZ<ej;deZ=e:Z>dfZ?dgZ@e@ZAdhZBdiZCeDdjZEdkZFdEfdlYZGdFeGfdmYZHd*eIfdnYZJd)eIfdoYZKeKZLd3eMfdpYZNd+fdqYZOdrZPdsZQdtZRduZSdvZTdLfdwYZUe6eIeUdMeUfdxYZVdNeVfdyYZWe6eXeDeWyddlYZYWnek rnXe6eYjZeWdJeUfdzYZ[e[Z\dOeVfd{YZ]e6ej^e]dGe[fd|YZ_dHeWfd}YZ`dIe]fd~YZadfdYZbdfdYZcdZdyddlemdZdmfZfWnek rn XefZb[c[feddidZgedZhedZiegej^eidajedZkegeIekedZlegebelyddlYZYWnek r=nXegeYjmeleddieddidZndZodZpeDdZqdZreneberenej^eryddlYZYWnek rnXeneYjmerdZseneIesdZtidZudZvdZwej;djxZyej;djxZzej;djxZ{ej;djxZ|ej;djxZ}ej;djxZ~ej;djxZej;djxZej;dejejBjxZej;dejZidd6dd6dd6dd6dd6jZdZdZd.eIfdYZdZd,eIfdYZdefdYZied6ed6ed6ZdZdZdZd-fdYZidd6dd6dd6dd6dd6dd6ZdZdZdZdZdZdZeOZdZeeedd#eJyddlmZWnek r nXyejeWne+k r% eJgZx0ejeeeKD]Zejeq Wx0ejD]%Zeejkr ejenq Wejej(nXejZejZejZej@Z@e@ZAedge_eejejdS(sYPackage resource API -------------------- A resource is a logical file contained within a package, or a logical subdirectory thereof. The package resource API expects resource names to have their path parts separated with ``/``, *not* whatever the local path separator is. Do not use os.path operations to manipulate resource names being passed into the API. The package resource API is designed to work with normal filesystem packages, .egg files, and unpacked .egg files. It can also work in a limited way with .zip files and with custom PEP 302 loaders that support the ``get_data()`` method. iN(turlparset urlunparse(t ImmutableSet(tutime(tmkdirtrenametunlink(topen(tisdirtspliticCs^tstdnt|\}}|rZ|rZt| rZt|t||ndS(Ns*"os.mkdir" not supported on this platform.(t WRITE_SUPPORTtIOErrorR Rt_bypass_ensure_directoryR(tnametmodetdirnametfilename((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR -s  cKs>t}x.|jD] \}}|||<|t|YscCs{t}tj|}|dk rwtjdkrwy-ddjtd |jdf}Wqwt k rsqwXn|S(sZReturn this platform's maximum compatible version. distutils.util.get_platform() normally reports the minimum version of Mac OS X that would be required to *use* extensions produced by distutils. But what we want when checking compatibility is to know the version of Mac OS X that we are *running*. To allow usage of packages that explicitly require a newer version of Mac OS X, we must also know the current version of the OS. If this condition occurs for any other platform with a version in its platform strings, this function should be extended accordingly. tdarwins macosx-%s-%st.iiN( tget_build_platformtmacosVersionStringtmatchR)tsystplatformtjoint _macosx_verstgroupt ValueError(tplattm((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytget_supported_platform]s - trequiret run_scriptt get_providertget_distributiontload_entry_pointt get_entry_maptget_entry_infotiter_entry_pointstresource_stringtresource_streamtresource_filenametresource_listdirtresource_existstresource_isdirtdeclare_namespacet working_settadd_activation_listenertfind_distributionstset_extraction_pathtcleanup_resourcestget_default_cachet Environmentt WorkingSettResourceManagert Distributiont Requirementt EntryPointtResolutionErrortVersionConflicttDistributionNotFoundt UnknownExtratExtractionErrortparse_requirementst parse_versiont safe_namet safe_versiont get_platformtcompatible_platformst yield_linestsplit_sectionst safe_extrat to_filenametensure_directorytnormalize_pathtEGG_DISTt BINARY_DISTt SOURCE_DISTt CHECKOUT_DISTt DEVELOP_DISTtIMetadataProvidertIResourceProvidert FileMetadatat PathMetadatat EggMetadatat EmptyProvidertempty_providert NullProvidert EggProvidertDefaultProvidert ZipProvidertregister_findertregister_namespace_handlertregister_loader_typetfixup_namespace_packagest get_importertrun_maintAvailableDistributionscBseZdZdZRS(s.Abstract base for dependency resolution errorscCs|jjt|jS(N(t __class__t__name__treprR*(tself((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt__repr__s(R~t __module__t__doc__R(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRUscBseZdZRS(sAAn already-installed version conflicts with the requested version(R~RR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRVscBseZdZRS(s&A requested distribution was not found(R~RR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRWscBseZdZRS(s>Distribution doesn't have an "extra feature" of the given name(R~RR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRXsiiiicCs|t|(RR5R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR>OscCst|j|S(s=Return the entry point map for `group`, or the full entry map(R=R?(RR5((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR?SscCst|j||S(s<Return the EntryPoint object for `group`+`name`, or ``None``(R=R@(RR5R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR@WscBs>eZdZdZdZdZdZdZRS(cCsdS(s;Does the package's distribution contain the named metadata?N((R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt has_metadata^scCsdS(s'The named metadata resource as a stringN((R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt get_metadataascCsdS(sYield named metadata resource as list of non-blank non-comment lines Leading and trailing whitespace is stripped from each line, and lines with ``#`` as the first non-blank character are omitted.N((R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytget_metadata_linesdscCsdS(s>Is the named metadata a directory? (like ``os.path.isdir()``)N((R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytmetadata_isdirjscCsdS(s?List of metadata names in the directory (like ``os.listdir()``)N((R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytmetadata_listdirmscCsdS(s=Execute the named script in the supplied namespace dictionaryN((Rt namespace((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR;ps(R~RRRRRRR;(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRk\s      cBsDeZdZdZdZdZdZdZdZRS(s3An object that provides access to package resourcescCsdS(sdReturn a true filesystem path for `resource_name` `manager` must be an ``IResourceManager``N((tmanagert resource_name((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytget_resource_filenamescCsdS(siReturn a readable file-like object for `resource_name` `manager` must be an ``IResourceManager``N((RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytget_resource_streamscCsdS(smReturn a string containing the contents of `resource_name` `manager` must be an ``IResourceManager``N((RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytget_resource_stringscCsdS(s,Does the package contain the named resource?N((R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt has_resourcescCsdS(s>Is the named resource a directory? (like ``os.path.isdir()``)N((R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRGscCsdS(s?List of resource names in the directory (like ``os.listdir()``)N((R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyREs( R~RRRRRRRGRE(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRl|s     cBseZdZddZdZdZdZddZdZ dZ de dZ dde d Z dde d Zd Zd Zd ZdZdZRS(sDA collection of active distributions on sys.path (or a similar list)cCs^g|_i|_i|_g|_|dkr<tj}nx|D]}|j|qCWdS(s?Create working set from list of path entries (default=sys.path)N(tentriest entry_keystby_keyt callbacksR)R1Rt add_entry(RRtentry((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt__init__s       cCsT|jj|g|jj|x*t|tD]}|j||tq3WdS(sAdd a path item to ``.entries``, finding any distributions on it ``find_distributions(entry,True)`` is used to find distributions corresponding to the path entry, and they are added. `entry` is always appended to ``.entries``, even if it is already present. (This is because ``sys.path`` can contain the same value more than once, and the ``.entries`` of the ``sys.path`` WorkingSet should always equal ``sys.path``.) N(Rt setdefaultRRRKRtaddR(RRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs cCs|jj|j|kS(s9True if `dist` is the active distribution for its project(RRR$(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt __contains__scCsG|jj|j}|dk r?||kr?t||n|SdS(sFind a distribution matching requirement `req` If there is an active distribution for the requested project, this returns it as long as it meets the version requirement specified by `req`. But, if there is an active distribution for the project and it does *not* meet the `req` requirement, ``VersionConflict`` is raised. If there is no active distribution for the requested project, ``None`` is returned. N(RRR$R)RV(RtreqR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs ccsgx`|D]X}|j|}|dkrGx4|jD] }|Vq5Wq||kr||VqqWdS(sYield entry point objects from `group` matching `name` If `name` is None, yields all entry points in `group` from all distributions in the working set, otherwise only ones matching both `group` and `name` are yielded (in distribution order). N(R?R)tvalues(RR5R RRtep((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRAs    cCsQtjdj}|d}|j||d<|j|dj||dS(s?Locate distribution for `requires` and run `script_name` scriptiR~iN(R1RRR"R:R;(RtrequiresRRR ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR;s    ccspi}xc|jD]X}||jkr+qnx:|j|D]+}||kr9d||<|j|Vq9q9WqWdS(sYield distributions for non-duplicate projects in the working set The yield order is the order in which the items' path entries were added to the working set. iN(RRR(RtseentitemR$((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt__iter__s  cCs|r|j|j|n|dkr4|j}n|jj|g}|jj|jg}|j|jkrwdS||j|j<|j|kr|j|jn|j|kr|j|jn|j |dS(sAdd `dist` to working set, associated with `entry` If `entry` is unspecified, it defaults to the ``.location`` of `dist`. On exit from this routine, `entry` is added to the end of the working set's ``.entries`` (if it wasn't already present). `dist` is only added to the working set if it's for a project that doesn't already have a distribution in the set. If it's added, any callbacks registered with the ``subscribe()`` method will be called. N( t insert_onRR)tlocationRRR$RRt _added_new(RRRtinserttkeystkeys2((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs   c Cszt|ddd}i}i}g}xH|ru|jd}t|rg|rgtjd}n||kryq.n|j|j} | dkr$|jj|j} | dkr|dkrt |j }n|j |||} ||j<| dkrt |qn|j | n| |krBt| |n|j| j|jdddt||scCsdS(N((R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRAsN( R~RRRKRHRGRLR)RDR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRp9s    cBseZdZd ZdZdZdZdZdZ dZ dZ dZ d Z d Zd Zd ZRS(s"Resource support for zips and eggscCs@tj||tj|jj|_|jjtj|_ dS(N( RsRt zipimportt_zip_directory_cacheRtarchivetzipinfoRtseptzip_pre(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRNscCs@|j|jr#|t|jStd||jfdS(Ns%s is not a subpath of %s(RRlRQtAssertionError(Rtfspath((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt _zipinfo_nameSscCsd|j|}|j|jtjrG|t|jdjtjStd||jfdS(Nis%s is not a subpath of %s(RlRR`RRkRQR Rm(Rtzip_pathRn((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt_parts\s  !cCs|jstdn|j|}|j}dj|j||kr~x*|D]}|j||j|qXWn|j||S(Ns5resource_filename() only supported for .egg, not .zipRX(R[RWt_resource_to_zipt_get_eager_resourcesR3Rqt_extract_resourcet _eager_to_zip(RRRRpteagersR ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRes     c Cs||jkr^x9|j|D]'}|j|tjj||}q#Wtjj|S|j|}|d|d|d}}}|d?d|d?d@|d@|d@d ?|d?d @|d@d d d d f } tj| } yt st dn|j |j |j |} tjj| rctj| } | j|krc| j| krc| Sntddtjj| \} }tj| |jj|tj| t|| | f|j|| yt|| Wntjk rmtjj| rgtj| } | j|kr:| j| kr:| Stjdkrgt| t|| | SnnXWntjk r|jnX| S(Niiii iiiii i?iiis>"os.rename" and "os.unlink" are not supported on this platforms .$extracttdirR2(t_indexRtRRR3RRjttimetmktimeR R R)R[RqtisfileR+tst_sizetst_mtimet_mkstemptwriteRRZReRR/RterrorR RR$(RRRpR tlasttzip_stattttdtsizet date_timet timestampt real_pathR+toutfttmpnam((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRtrsN  0$    cCsa|jdkrZg}x6dD].}|j|r|j|j|qqW||_n|jS(Nsnative_libs.txtseager_resources.txt(snative_libs.txtseager_resources.txt(RvR)RRR(RRvR ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRss  cCsy |jSWntk ri}x~|jD]s}|jtj}xX|rtjj|d }||kr||j|dPqF|jg||PEP 302 Importer that wraps Python's "normal" import algorithmcCs ||_dS(N(R(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRIscCs|jdd}||kr2|jdkr2dS|jdkrJd}n |jg}ytj||\}}}Wntk rdSXt|||S(NR-i(R RR)timpt find_moduleRt ImpLoader(RtfullnameRtsubnametfileRtetc((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRLs   N(R~RRR)RR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRFs RcBs eZdZdZdZRS(s<PEP 302 Loader that wraps Python's "normal" import algorithmcCs||_||_||_dS(N(RRR(RRRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR^s  cCsFz%tj||j|j|j}Wd|jrA|jjnX|S(N(Rt load_moduleRRRRe(RRtmod((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRcs % (R~RRRR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR[s cCsytj|}WnPtk rcx@tjD]+}y||}Wntk rTq+XPq+Wd}nXtjj|||dkryt|}Wqtk rqXn|S(sRetrieve a PEP 302 "importer" for the given path item If there is no importer, this returns a wrapper around the builtin import machinery. The returned importer is only cached if it was created by a path hook. N(R1tpath_importer_cacheRt path_hooksRR)RR(t path_itemRthook((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRzos"     (Rzt ImpImporterRt_distribution_finderscCs|t|=?|==|!=)\s*((\w|[-.])+)s\s*,s\s*\[s\s*\]s \w+(\.\w+)*$sL(?P[^-]+)( -(?P[^-]+) (-py(?P[^-]+) (-(?P.+))? )? )?s(\d+ | [a-z]+ | \.| -)tctpretpreviewsfinal-R?trct@tdevccsnxbtj|D]Q}t||}|dkr7qn|d dkrX|jdVqd|VqWdVdS( NRR-it 0123456789it*s*final(RR-(t component_reR Rtzfill(Rtpart((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt_parse_version_partss  cCssg}x`t|jD]L}|jdrXx'|rT|ddkrT|jq1Wn|j|qWt|S(sConvert a version string to a chronologically-sortable key This is a rough cross between distutils' StrictVersion and LooseVersion; if you give it versions that would work with StrictVersion, then it behaves the same; otherwise it acts like a slightly-smarter LooseVersion. It is *possible* to create pathological version coding schemes that will fool this parser, but they should be very rare in practice. The returned value will be a tuple of strings. Numeric portions of the version are padded to 8 digits so they will compare numerically, but without relying on how numbers compare relative to strings. Dots are dropped, but dashes are retained. Trailing zeros between alpha segments or dashes are suppressed, so that e.g. "2.4.0" is considered the same as "2.4". Alphanumeric parts are lower-cased. The algorithm assumes that strings like "-" and any alpha string that alphabetically follows "final" represents a "patch level". So, "2.4-1" is assumed to be a branch or patch of "2.4", and therefore "2.4.1" is considered newer than "2.4-1", which in turn is newer than "2.4". Strings like "a", "b", "c", "alpha", "beta", "candidate" and so on (that come before "final" alphabetically) are assumed to be pre-release versions, so that the version "2.4" is considered newer than "2.4a1". Finally, to handle miscellaneous cases, the strings "pre", "preview", and "rc" are treated as if they were "c", i.e. as though they were release candidates, and therefore are not as new as a version string that does not contain them, and "dev" is replaced with an '@' so that it sorts lower than than any other pre-release tag. Rit00000000(RRRRRttuple(RRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR[scBseZdZd d d dZdZdZed d dZd d dZ d dZ e e Z d dZ e e Z d dZ e e Z RS( s3Object representing an advertised importable objectcCsnt|std|n||_||_t||_tjddj|j |_ ||_ dS(NsInvalid module namesx[%s]t,( tMODULER6R t module_nameRtattrsRSRR3RR(RR RRRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs   "cCsfd|j|jf}|jr<|ddj|j7}n|jrb|ddj|j7}n|S(Ns%s = %st:R-s [%s]R(R RRR3R(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt__str__s   cCsdt|S(NsEntryPoint.parse(%r)(R(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRscCs|r|j||nt|jttdg}xN|jD]C}yt||}WqDtk rtd||fqDXqDW|S(NR~s%r has no %r attribute(R:RRRRRRR(RR:RRRtattr((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytloads! cCsW|jr%|j r%td|nttjtj|jj|j||dS(Ns&Can't require() without a distribution(RRRXRRIRRR(RRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR:s cCsyd }}|jdd\}}d|krz|jdd\}}tjd|}|jrntn|j}nd|kr|jdd\}}t|jstn|jjd}nWn tk rtd|n#X||j|j|||SdS( sParse a single entry point from string `src` Entry point syntax follows the form:: name = some.module:some.attr [extra1,extra2] The entry name and module name are required, but the ``:attrs`` and ``[extras]`` parts are optional t=it[sx[RR-s9EntryPoint must be in 'name=module:attrs [extras]' formatN(( R RSRtspecsR6RRRR(tclstsrcRRRR tvalueR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs&         cCst|std|ni}xZt|D]L}|j||}|j|krptd||jn|||jEnsure distribution is importable on `path` (default=sys.path)snamespace_packages.txtN( R)R1RRRyRRRHR(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytactivates    cCsOdt|jt|j|jp'tf}|jrK|d|j7}n|S(s@Return what this distribution's standard .egg filename should bes %s-%s-py%sR?(RcRRR RR2(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR[s  cCs(|jrd||jfSt|SdS(Ns%s (%s)(RR(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs cCsMyt|dd}Wntk r/d}nX|p9d}d|j|fS(NRs[unknown version]s%s %s(RR)R6R(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRs   cCs+|jdrt|nt|j|S(sADelegate all unrecognized public attributes to .metadata providerR(RRRR(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt __getattr__s cKs(|jt|tjj|||S(N(RRRRR_(RRRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRscCstjd|j|jfS(s?Return a ``Requirement`` that matches this distribution exactlys%s==%s(RSRRR(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRscCsD|j||}|dkr:td||ffn|jS(s=Return the `name` entry point of `group` or raise ImportErrorsEntry point %r not foundN(R@R)RR(RR5R R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR> s cCscy |j}Wn3tk rBtj|jd|}|_nX|dk r_|j|iS|S(s=Return the entry point map for `group`, or the full entry mapsentry_points.txtN(t_ep_mapRRTRRR)R(RR5tep_map((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR? s    cCs|j|j|S(s<Return the EntryPoint object for `group`+`name`, or ``None``(R?R(RR5R ((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR@ sc Cs|p |j}|jdkrpy |j}Wntk rDd}nXd|krptdt|jqpn|szdS|tjkr|jnt|}t jj |}t t|}d}xzt |D][\}} | |krPq| |kr|jtkr|j|||j||PqqW|j|dSxFy|j||d} Wntk rwPqIX|| =|| =| }qIdS(s@Insert self.location in path before its nearest parent directoryt setuptoolsRs0.7sLA 0.7-series setuptools cannot be installed with distribute. Found one at %sNi(RRRR6RR1Rtcheck_version_conflictRRRRR)t enumerateRRfRRtindex( RRtlocRtnloctbdirtnpathtbptpRtnp((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR+ sF          c Cs|jdkrdStj|jd}t|j}x|jdD]}|tjksJ||ksJ|tkr}qJn|d krqJnt tj|dd}|rt|j |sJ|j |jrqJnt d|||jfqJWdS( NRsnamespace_packages.txts top_level.txtt pkg_resourcesRtsiteRCsIModule %s was already imported from %s, but %s is being added to sys.path(s pkg_resourcess setuptoolsssite( R$RRRReRR1RRRR)Rt issue_warning(RtnspRtmodnametfn((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR_ s"  cCs8y |jWn&tk r3tdt|tSXtS(NsUnbuilt egg for (RR6R'RRR(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRu s   cKsMx*dD]"}|j|t||d qW|jd|j|j|S( s@Copy this distribution, substituting in any changed keyword argsRRR R2RRR(s project_namesversions py_versionsplatformslocations precedenceN(RRR)RR}(RRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytclone} s   cCs g|jD]}|r |^q S(N(R(Rtdep((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR sN(((R~RRRR)RRfRRRtpropertyRRRRRR R R R$RRRRRRR[RRRRRR>R?R@RRRR+R(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRRHsT                           4    tDistInfoDistributioncBsSeZdZdZejdZedZedZ dZ dZ RS(sGWrap an actual or potential sys.path entry w/metadata, .dist-info styletMETADATAs([\(,])\s*(\d.*?)\s*([,\)])cCsXy |jSWnFtk rSddlm}|j|j|j|_|jSXdS(sParse and cache metadatai(tParserN(t _pkg_infoRt email.parserR0tparsestrRR(RR0((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt_parsed_pkg_info s   !cCs6y |jSWn$tk r1|j|_|jSXdS(N(t_DistInfoDistribution__dep_mapRt_compute_dependencies(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR s   cCsy|jdddg}|dj}|dj}tj|jd|}|jddjdd}||fS(sConvert 'Foobar (1); baz' to ('Foobar ==1', 'baz') Split environment marker, add == prefix to version specifiers as necessary, and remove parenthesis. t;iRis\1==\2\3t(t)(R RR@RAtEQEQR(Rt requires_distRtdistverstmark((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt_preparse_requirement s c sBd}yddlm}Wntk r6|}nXigd6}|_gxc|jjdpigD]I}|j|\}}t|j }|||_ j |qjWfd}t |d} |dj | xR|jjdpgD]8} t| j} tt || | || RZtnextRARtsetRRbRR( RRCRDRRR<R=RREtcommonRB((RsS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR6 s&   $( R~RRRR@RRR:R-R4RR>R6(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR. s  s.eggs .egg-infos .dist-infocOs{d}t}y-x&tj|j|kr:|d7}qWWntk rOnXddlm}|d|d||dS(Nii(twarnt stacklevel(RR1RRR6twarningsRK(R*RtlevelRRK((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR' s  c #s#tt|fd}xD]}t|}|sRtd|n|jd}|j}g}t||}|r|j}|tt||dd\}}}n|tt ||d d\}}}g|D]\}} |t | f^q}t |||Vq(WdS( sYield ``Requirement`` objects for each specification in `strs` `strs` must be an instance of ``basestring``, or a (possibly-nested) iterable thereof. cs?g}x|||s t||r`yj}d}Wq`tk r\tdq`Xn|||}|std|d|d||n|j|j||j}t||}|r|j}q |||s td|d||q q W|||}|r2|j}n|||fS(Nis+\ must not appear on the last nonblank lines Expected s intatsExpected ',' or end-of-list in(tCONTINUERHt StopIterationR6RR5tendtCOMMA(tITEMt TERMINATORRR#tgroupst item_nameRR0(R(sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt scan_list s0  $ sMissing distribution specis 'extra' nameis version specN(i(ii( titerR`tDISTROR6R5RRtOBRACKETtCBRACKETtVERSIONtLINE_ENDR]RS( RRXRR0RR#RRtopR((RsS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRZ s"    $$+cCs\g|D]}|j|f^q}|jg|D]\}}|^q3|dddDO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!N(R\t unsafe_nameRRR$R[t state_machineRRRRRbRRt frozensetthashCmpRt_Requirement__hash( RRRRR_RRRttransR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRR s5 ."4cCsgdjg|jD]}dj|^q}dj|j}|rSd|}nd|j||fS(NRRs[%s]s%s%s%s(R3RRR(RRRR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR` s . cCst|to|j|jkS(N(RRSRe(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR f sc Cs t|tr=|j|jkr%tS|jr[|j}q[nt|tr[t|}nd}d}x|jD]{\}}}}||||}|dkrtS|dkrt S|dkrt }qt|dks|dkrtt}qtqtW|dkrt }n|S(NcSs||k||kS(N((tatb((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR+p stFtTt+R?( RRRR$RRRRR[R)R( RRRtcompareRRgR_Rtaction((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRi s,       cCs|jS(N(Rf(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR{ scCsdt|S(NsRequirement.parse(%r)(R(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR~ scCstt|}|rt|dkr}|d}t|rv|rvttd}t|dkrr|dS|S|Sntd|ntd|dS(NiiRsExpected only one requirementsNo requirements found(RRZRQRR6(RRRt founded_reqR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR s ( R~RRRR RRRRRt staticmethod(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRSQ s       s--TtsT+Fs>=sT..s==sF++s!=cCsc|jdkr_t|js"tSx6|jD]+\}}|dkr,d|krWtSq,q,WtStS(sReturn True when distribute wants to override a setuptools dependency. We want to override when the requirement is setuptools and the version is a variant of 0.6. Rs==s>=Rrs0.7(s==s>=Rr(RRQRRR(Rt comparatorR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR s   cCs:t|ts3d|tfdY}|jdS|jS(s&Get an mro for a type or classic classRcBseZRS((R~R(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR si(Rttypetobjectt__mro__(R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyt_get_mro s cCsAx:tt|dt|D]}||kr||SqWdS(s2Return an adapter factory for `ob` from `registry`R}N(RwRRt(tregistryR%R((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR s% cCs8tjj|}tjj|s4tj|ndS(s1Ensure that the parent directory of `path` existsN(RRRRtmakedirs(RR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRd sccsd}g}xt|D]y}|jdr|jdrs|sI|rW||fVn|dd!j}g}qtd|q|j|qW||fVdS(srSplit a string or iterable thereof into (section,content) pairs Each ``section`` is a stripped version of the section header ("[section]") and each ``content`` is a list of stripped lines excluding blank lines and comment-only lines. If there are any such lines before the first section header, they're returned in a first ``section`` of ``None``. Rt]iisInvalid section headingN(R)R`RR^RR6R(RtsectiontcontentR((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyRa s  cOsDddlm}tj}ztt_|||SWd|t_XdS(Ni(tmkstemp(ttempfileR}RRtos_open(R*RR}told_open((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pyR~ s   cCs@x9ttD]+}|jds tt|||R)R?R@RkRlRuRPROR|R;RYRQRNR\R]RbRcRrRsRtRtt_frozen_importlibtSourceFileLoaderRpRqRuRRmRnRoRRRztpkgutilRRvRKRRFRRt FileFinderRwRRHRyRRReRRR`R0R^RPRZR]RSR[R\RtVERBOSEt IGNORECASERRRRRR[RTRRRR.RR'RZRRSRcRRwRRdRaR~RRRt__main__RRIR:RRRRRRRRARRJR(((sS/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.pytsT               +                     3      )0 )  d   ,       #            , (w IG   # = E                   07070100062140000041ed000000000000000000000004513ff74300000000000000b600010002ffffffffffffffff0000005200000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools0707010006218c000081ed000000000000000000000001513ff4b500007913000000b600010002ffffffffffffffff0000006300000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.py"""PyPI and direct package downloading""" import sys, os.path, re, urlparse, urllib, urllib2, shutil, random, socket, cStringIO import base64 import httplib from pkg_resources import * from distutils import log from distutils.errors import DistutilsError try: from hashlib import md5 except ImportError: from md5 import md5 from fnmatch import translate EGG_FRAGMENT = re.compile(r'^egg=([-A-Za-z0-9_.]+)$') HREF = re.compile("""href\\s*=\\s*['"]?([^'"> ]+)""", re.I) # this is here to fix emacs' cruddy broken syntax highlighting PYPI_MD5 = re.compile( '([^<]+)\n\s+\\(md5\\)' ) URL_SCHEME = re.compile('([-+.a-z0-9]{2,}):',re.I).match EXTENSIONS = ".tar.gz .tar.bz2 .tar .zip .tgz".split() __all__ = [ 'PackageIndex', 'distros_for_url', 'parse_bdist_wininst', 'interpret_distro_name', ] _SOCKET_TIMEOUT = 15 def parse_bdist_wininst(name): """Return (base,pyversion) or (None,None) for possible .exe name""" lower = name.lower() base, py_ver, plat = None, None, None if lower.endswith('.exe'): if lower.endswith('.win32.exe'): base = name[:-10] plat = 'win32' elif lower.startswith('.win32-py',-16): py_ver = name[-7:-4] base = name[:-16] plat = 'win32' elif lower.endswith('.win-amd64.exe'): base = name[:-14] plat = 'win-amd64' elif lower.startswith('.win-amd64-py',-20): py_ver = name[-7:-4] base = name[:-20] plat = 'win-amd64' return base,py_ver,plat def egg_info_for_url(url): scheme, server, path, parameters, query, fragment = urlparse.urlparse(url) base = urllib2.unquote(path.split('/')[-1]) if '#' in base: base, fragment = base.split('#',1) return base,fragment def distros_for_url(url, metadata=None): """Yield egg or source distribution objects that might be found at a URL""" base, fragment = egg_info_for_url(url) for dist in distros_for_location(url, base, metadata): yield dist if fragment: match = EGG_FRAGMENT.match(fragment) if match: for dist in interpret_distro_name( url, match.group(1), metadata, precedence = CHECKOUT_DIST ): yield dist def distros_for_location(location, basename, metadata=None): """Yield egg or source distribution objects based on basename""" if basename.endswith('.egg.zip'): basename = basename[:-4] # strip the .zip if basename.endswith('.egg') and '-' in basename: # only one, unambiguous interpretation return [Distribution.from_location(location, basename, metadata)] if basename.endswith('.exe'): win_base, py_ver, platform = parse_bdist_wininst(basename) if win_base is not None: return interpret_distro_name( location, win_base, metadata, py_ver, BINARY_DIST, platform ) # Try source distro extensions (.zip, .tgz, etc.) # for ext in EXTENSIONS: if basename.endswith(ext): basename = basename[:-len(ext)] return interpret_distro_name(location, basename, metadata) return [] # no extension matched def distros_for_filename(filename, metadata=None): """Yield possible egg or source distribution objects based on a filename""" return distros_for_location( normalize_path(filename), os.path.basename(filename), metadata ) def interpret_distro_name(location, basename, metadata, py_version=None, precedence=SOURCE_DIST, platform=None ): """Generate alternative interpretations of a source distro name Note: if `location` is a filesystem filename, you should call ``pkg_resources.normalize_path()`` on it before passing it to this routine! """ # Generate alternative interpretations of a source distro name # Because some packages are ambiguous as to name/versions split # e.g. "adns-python-1.1.0", "egenix-mx-commercial", etc. # So, we generate each possible interepretation (e.g. "adns, python-1.1.0" # "adns-python, 1.1.0", and "adns-python-1.1.0, no version"). In practice, # the spurious interpretations should be ignored, because in the event # there's also an "adns" package, the spurious "python-1.1.0" version will # compare lower than any numeric version number, and is therefore unlikely # to match a request for it. It's still a potential problem, though, and # in the long run PyPI and the distutils should go for "safe" names and # versions in distribution archive names (sdist and bdist). parts = basename.split('-') if not py_version: for i,p in enumerate(parts[2:]): if len(p)==5 and p.startswith('py2.'): return # It's a bdist_dumb, not an sdist -- bail out for p in range(1,len(parts)+1): yield Distribution( location, metadata, '-'.join(parts[:p]), '-'.join(parts[p:]), py_version=py_version, precedence = precedence, platform = platform ) REL = re.compile("""<([^>]*\srel\s*=\s*['"]?([^'">]+)[^>]*)>""", re.I) # this line is here to fix emacs' cruddy broken syntax highlighting def find_external_links(url, page): """Find rel="homepage" and rel="download" links in `page`, yielding URLs""" for match in REL.finditer(page): tag, rel = match.groups() rels = map(str.strip, rel.lower().split(',')) if 'homepage' in rels or 'download' in rels: for match in HREF.finditer(tag): yield urlparse.urljoin(url, htmldecode(match.group(1))) for tag in ("Home Page", "Download URL"): pos = page.find(tag) if pos!=-1: match = HREF.search(page,pos) if match: yield urlparse.urljoin(url, htmldecode(match.group(1))) user_agent = "Python-urllib/%s distribute/%s" % ( sys.version[:3], require('distribute')[0].version ) class PackageIndex(Environment): """A distribution index that scans web pages for download URLs""" def __init__(self, index_url="http://pypi.python.org/simple", hosts=('*',), *args, **kw ): Environment.__init__(self,*args,**kw) self.index_url = index_url + "/"[:not index_url.endswith('/')] self.scanned_urls = {} self.fetched_urls = {} self.package_pages = {} self.allows = re.compile('|'.join(map(translate,hosts))).match self.to_scan = [] def process_url(self, url, retrieve=False): """Evaluate a URL as a possible download, and maybe retrieve it""" if url in self.scanned_urls and not retrieve: return self.scanned_urls[url] = True if not URL_SCHEME(url): self.process_filename(url) return else: dists = list(distros_for_url(url)) if dists: if not self.url_ok(url): return self.debug("Found link: %s", url) if dists or not retrieve or url in self.fetched_urls: map(self.add, dists) return # don't need the actual page if not self.url_ok(url): self.fetched_urls[url] = True return self.info("Reading %s", url) f = self.open_url(url, "Download error on %s: %%s -- Some packages may not be found!" % url) if f is None: return self.fetched_urls[url] = self.fetched_urls[f.url] = True if 'html' not in f.headers.get('content-type', '').lower(): f.close() # not html, we can't process it return base = f.url # handle redirects page = f.read() if not isinstance(page, str): # We are in Python 3 and got bytes. We want str. if isinstance(f, urllib2.HTTPError): # Errors have no charset, assume latin1: charset = 'latin-1' else: charset = f.headers.get_param('charset') or 'latin-1' page = page.decode(charset, "ignore") f.close() for match in HREF.finditer(page): link = urlparse.urljoin(base, htmldecode(match.group(1))) self.process_url(link) if url.startswith(self.index_url) and getattr(f,'code',None)!=404: page = self.process_index(url, page) def process_filename(self, fn, nested=False): # process filenames or directories if not os.path.exists(fn): self.warn("Not found: %s", fn) return if os.path.isdir(fn) and not nested: path = os.path.realpath(fn) for item in os.listdir(path): self.process_filename(os.path.join(path,item), True) dists = distros_for_filename(fn) if dists: self.debug("Found: %s", fn) map(self.add, dists) def url_ok(self, url, fatal=False): s = URL_SCHEME(url) if (s and s.group(1).lower()=='file') or self.allows(urlparse.urlparse(url)[1]): return True msg = "\nLink to % s ***BLOCKED*** by --allow-hosts\n" if fatal: raise DistutilsError(msg % url) else: self.warn(msg, url) def scan_egg_links(self, search_path): for item in search_path: if os.path.isdir(item): for entry in os.listdir(item): if entry.endswith('.egg-link'): self.scan_egg_link(item, entry) def scan_egg_link(self, path, entry): lines = filter(None, map(str.strip, open(os.path.join(path, entry)))) if len(lines)==2: for dist in find_distributions(os.path.join(path, lines[0])): dist.location = os.path.join(path, *lines) dist.precedence = SOURCE_DIST self.add(dist) def process_index(self,url,page): """Process the contents of a PyPI page""" def scan(link): # Process a URL to see if it's for a package page if link.startswith(self.index_url): parts = map( urllib2.unquote, link[len(self.index_url):].split('/') ) if len(parts)==2 and '#' not in parts[1]: # it's a package page, sanitize and index it pkg = safe_name(parts[0]) ver = safe_version(parts[1]) self.package_pages.setdefault(pkg.lower(),{})[link] = True return to_filename(pkg), to_filename(ver) return None, None # process an index page into the package-page index for match in HREF.finditer(page): try: scan( urlparse.urljoin(url, htmldecode(match.group(1))) ) except ValueError: pass pkg, ver = scan(url) # ensure this page is in the page index if pkg: # process individual package page for new_url in find_external_links(url, page): # Process the found URL base, frag = egg_info_for_url(new_url) if base.endswith('.py') and not frag: if ver: new_url+='#egg=%s-%s' % (pkg,ver) else: self.need_version_info(url) self.scan_url(new_url) return PYPI_MD5.sub( lambda m: '%s' % m.group(1,3,2), page ) else: return "" # no sense double-scanning non-package pages def need_version_info(self, url): self.scan_all( "Page at %s links to .py file(s) without version info; an index " "scan is required.", url ) def scan_all(self, msg=None, *args): if self.index_url not in self.fetched_urls: if msg: self.warn(msg,*args) self.info( "Scanning index of all packages (this may take a while)" ) self.scan_url(self.index_url) def find_packages(self, requirement): self.scan_url(self.index_url + requirement.unsafe_name+'/') if not self.package_pages.get(requirement.key): # Fall back to safe version of the name self.scan_url(self.index_url + requirement.project_name+'/') if not self.package_pages.get(requirement.key): # We couldn't find the target package, so search the index page too self.not_found_in_index(requirement) for url in list(self.package_pages.get(requirement.key,())): # scan each page that might be related to the desired package self.scan_url(url) def obtain(self, requirement, installer=None): self.prescan(); self.find_packages(requirement) for dist in self[requirement.key]: if dist in requirement: return dist self.debug("%s does not match %s", requirement, dist) return super(PackageIndex, self).obtain(requirement,installer) def check_md5(self, cs, info, filename, tfp): if re.match('md5=[0-9a-f]{32}$', info): self.debug("Validating md5 checksum for %s", filename) if cs.hexdigest()<>info[4:]: tfp.close() os.unlink(filename) raise DistutilsError( "MD5 validation failed for "+os.path.basename(filename)+ "; possible download problem?" ) def add_find_links(self, urls): """Add `urls` to the list that will be prescanned for searches""" for url in urls: if ( self.to_scan is None # if we have already "gone online" or not URL_SCHEME(url) # or it's a local file/directory or url.startswith('file:') or list(distros_for_url(url)) # or a direct package link ): # then go ahead and process it now self.scan_url(url) else: # otherwise, defer retrieval till later self.to_scan.append(url) def prescan(self): """Scan urls scheduled for prescanning (e.g. --find-links)""" if self.to_scan: map(self.scan_url, self.to_scan) self.to_scan = None # from now on, go ahead and process immediately def not_found_in_index(self, requirement): if self[requirement.key]: # we've seen at least one distro meth, msg = self.info, "Couldn't retrieve index page for %r" else: # no distros seen for this name, might be misspelled meth, msg = (self.warn, "Couldn't find index page for %r (maybe misspelled?)") meth(msg, requirement.unsafe_name) self.scan_all() def download(self, spec, tmpdir): """Locate and/or download `spec` to `tmpdir`, returning a local path `spec` may be a ``Requirement`` object, or a string containing a URL, an existing local filename, or a project/version requirement spec (i.e. the string form of a ``Requirement`` object). If it is the URL of a .py file with an unambiguous ``#egg=name-version`` tag (i.e., one that escapes ``-`` as ``_`` throughout), a trivial ``setup.py`` is automatically created alongside the downloaded file. If `spec` is a ``Requirement`` object or a string containing a project/version requirement spec, this method returns the location of a matching distribution (possibly after downloading it to `tmpdir`). If `spec` is a locally existing file or directory name, it is simply returned unchanged. If `spec` is a URL, it is downloaded to a subpath of `tmpdir`, and the local filename is returned. Various errors may be raised if a problem occurs during downloading. """ if not isinstance(spec,Requirement): scheme = URL_SCHEME(spec) if scheme: # It's a url, download it to tmpdir found = self._download_url(scheme.group(1), spec, tmpdir) base, fragment = egg_info_for_url(spec) if base.endswith('.py'): found = self.gen_setup(found,fragment,tmpdir) return found elif os.path.exists(spec): # Existing file or directory, just return it return spec else: try: spec = Requirement.parse(spec) except ValueError: raise DistutilsError( "Not a URL, existing file, or requirement spec: %r" % (spec,) ) return getattr(self.fetch_distribution(spec, tmpdir),'location',None) def fetch_distribution(self, requirement, tmpdir, force_scan=False, source=False, develop_ok=False, local_index=None ): """Obtain a distribution suitable for fulfilling `requirement` `requirement` must be a ``pkg_resources.Requirement`` instance. If necessary, or if the `force_scan` flag is set, the requirement is searched for in the (online) package index as well as the locally installed packages. If a distribution matching `requirement` is found, the returned distribution's ``location`` is the value you would have gotten from calling the ``download()`` method with the matching distribution's URL or filename. If no matching distribution is found, ``None`` is returned. If the `source` flag is set, only source distributions and source checkout links will be considered. Unless the `develop_ok` flag is set, development and system eggs (i.e., those using the ``.egg-info`` format) will be ignored. """ # process a Requirement self.info("Searching for %s", requirement) skipped = {} dist = None def find(req, env=None): if env is None: env = self # Find a matching distribution; may be called more than once for dist in env[req.key]: if dist.precedence==DEVELOP_DIST and not develop_ok: if dist not in skipped: self.warn("Skipping development or system egg: %s",dist) skipped[dist] = 1 continue if dist in req and (dist.precedence<=SOURCE_DIST or not source): self.info("Best match: %s", dist) return dist.clone( location=self.download(dist.location, tmpdir) ) if force_scan: self.prescan() self.find_packages(requirement) dist = find(requirement) if local_index is not None: dist = dist or find(requirement, local_index) if dist is None and self.to_scan is not None: self.prescan() dist = find(requirement) if dist is None and not force_scan: self.find_packages(requirement) dist = find(requirement) if dist is None: self.warn( "No local packages or download links found for %s%s", (source and "a source distribution of " or ""), requirement, ) return dist def fetch(self, requirement, tmpdir, force_scan=False, source=False): """Obtain a file suitable for fulfilling `requirement` DEPRECATED; use the ``fetch_distribution()`` method now instead. For backward compatibility, this routine is identical but returns the ``location`` of the downloaded distribution instead of a distribution object. """ dist = self.fetch_distribution(requirement,tmpdir,force_scan,source) if dist is not None: return dist.location return None def gen_setup(self, filename, fragment, tmpdir): match = EGG_FRAGMENT.match(fragment) dists = match and [d for d in interpret_distro_name(filename, match.group(1), None) if d.version ] or [] if len(dists)==1: # unambiguous ``#egg`` fragment basename = os.path.basename(filename) # Make sure the file has been downloaded to the temp dir. if os.path.dirname(filename) != tmpdir: dst = os.path.join(tmpdir, basename) from setuptools.command.easy_install import samefile if not samefile(filename, dst): shutil.copy2(filename, dst) filename=dst file = open(os.path.join(tmpdir, 'setup.py'), 'w') file.write( "from setuptools import setup\n" "setup(name=%r, version=%r, py_modules=[%r])\n" % ( dists[0].project_name, dists[0].version, os.path.splitext(basename)[0] ) ) file.close() return filename elif match: raise DistutilsError( "Can't unambiguously interpret project/version identifier %r; " "any dashes in the name or version should be escaped using " "underscores. %r" % (fragment,dists) ) else: raise DistutilsError( "Can't process plain .py files without an '#egg=name-version'" " suffix to enable automatic setup script generation." ) dl_blocksize = 8192 def _download_to(self, url, filename): self.info("Downloading %s", url) # Download the file fp, tfp, info = None, None, None try: if '#' in url: url, info = url.split('#', 1) fp = self.open_url(url) if isinstance(fp, urllib2.HTTPError): raise DistutilsError( "Can't download %s: %s %s" % (url, fp.code,fp.msg) ) cs = md5() headers = fp.info() blocknum = 0 bs = self.dl_blocksize size = -1 if "content-length" in headers: # Some servers return multiple Content-Length headers :( content_length = headers.get("Content-Length") size = int(content_length) self.reporthook(url, filename, blocknum, bs, size) tfp = open(filename,'wb') while True: block = fp.read(bs) if block: cs.update(block) tfp.write(block) blocknum += 1 self.reporthook(url, filename, blocknum, bs, size) else: break if info: self.check_md5(cs, info, filename, tfp) return headers finally: if fp: fp.close() if tfp: tfp.close() def reporthook(self, url, filename, blocknum, blksize, size): pass # no-op def open_url(self, url, warning=None): if url.startswith('file:'): return local_open(url) try: return open_with_auth(url) except (ValueError, httplib.InvalidURL), v: msg = ' '.join([str(arg) for arg in v.args]) if warning: self.warn(warning, msg) else: raise DistutilsError('%s %s' % (url, msg)) except urllib2.HTTPError, v: return v except urllib2.URLError, v: if warning: self.warn(warning, v.reason) else: raise DistutilsError("Download error for %s: %s" % (url, v.reason)) except httplib.BadStatusLine, v: if warning: self.warn(warning, v.line) else: raise DistutilsError('%s returned a bad status line. ' 'The server might be down, %s' % \ (url, v.line)) except httplib.HTTPException, v: if warning: self.warn(warning, v) else: raise DistutilsError("Download error for %s: %s" % (url, v)) def _download_url(self, scheme, url, tmpdir): # Determine download filename # name = filter(None,urlparse.urlparse(url)[2].split('/')) if name: name = name[-1] while '..' in name: name = name.replace('..','.').replace('\\','_') else: name = "__downloaded__" # default if URL has no path contents if name.endswith('.egg.zip'): name = name[:-4] # strip the extra .zip before download filename = os.path.join(tmpdir,name) # Download the file # if scheme=='svn' or scheme.startswith('svn+'): return self._download_svn(url, filename) elif scheme=='file': return urllib.url2pathname(urlparse.urlparse(url)[2]) else: self.url_ok(url, True) # raises error if not allowed return self._attempt_download(url, filename) def scan_url(self, url): self.process_url(url, True) def _attempt_download(self, url, filename): headers = self._download_to(url, filename) if 'html' in headers.get('content-type','').lower(): return self._download_html(url, headers, filename) else: return filename def _download_html(self, url, headers, filename): file = open(filename) for line in file: if line.strip(): # Check for a subversion index page if re.search(r'([^- ]+ - )?Revision \d+:', line): # it's a subversion index page: file.close() os.unlink(filename) return self._download_svn(url, filename) break # not an index page file.close() os.unlink(filename) raise DistutilsError("Unexpected HTML page found at "+url) def _download_svn(self, url, filename): url = url.split('#',1)[0] # remove any fragment for svn's sake self.info("Doing subversion checkout from %s to %s", url, filename) os.system("svn checkout -q %s %s" % (url, filename)) return filename def debug(self, msg, *args): log.debug(msg, *args) def info(self, msg, *args): log.info(msg, *args) def warn(self, msg, *args): log.warn(msg, *args) # This pattern matches a character entity reference (a decimal numeric # references, a hexadecimal numeric reference, or a named reference). entity_sub = re.compile(r'&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?').sub def uchr(c): if not isinstance(c, int): return c if c>255: return unichr(c) return chr(c) def decode_entity(match): what = match.group(1) if what.startswith('#x'): what = int(what[2:], 16) elif what.startswith('#'): what = int(what[1:]) else: from htmlentitydefs import name2codepoint what = name2codepoint.get(what, match.group(0)) return uchr(what) def htmldecode(text): """Decode HTML entities in the given text.""" return entity_sub(decode_entity, text) def socket_timeout(timeout=15): def _socket_timeout(func): def _socket_timeout(*args, **kwargs): old_timeout = socket.getdefaulttimeout() socket.setdefaulttimeout(timeout) try: return func(*args, **kwargs) finally: socket.setdefaulttimeout(old_timeout) return _socket_timeout return _socket_timeout def _encode_auth(auth): """ A function compatible with Python 2.3-3.3 that will encode auth from a URL suitable for an HTTP header. >>> _encode_auth('username%3Apassword') u'dXNlcm5hbWU6cGFzc3dvcmQ=' """ auth_s = urllib2.unquote(auth) # convert to bytes auth_bytes = auth_s.encode() # use the legacy interface for Python 2.3 support encoded_bytes = base64.encodestring(auth_bytes) # convert back to a string encoded = encoded_bytes.decode() # strip the trailing carriage return return encoded.rstrip() def open_with_auth(url): """Open a urllib2 request, handling HTTP authentication""" scheme, netloc, path, params, query, frag = urlparse.urlparse(url) if scheme in ('http', 'https'): auth, host = urllib2.splituser(netloc) else: auth = None if auth: auth = "Basic " + _encode_auth(auth) new_url = urlparse.urlunparse((scheme,host,path,params,query,frag)) request = urllib2.Request(new_url) request.add_header("Authorization", auth) else: request = urllib2.Request(url) request.add_header('User-Agent', user_agent) fp = urllib2.urlopen(request) if auth: # Put authentication info back into request URL if same host, # so that links found on the page will work s2, h2, path2, param2, query2, frag2 = urlparse.urlparse(fp.url) if s2==scheme and h2==host: fp.url = urlparse.urlunparse((s2,netloc,path2,param2,query2,frag2)) return fp # adding a timeout to avoid freezing package_index open_with_auth = socket_timeout(_SOCKET_TIMEOUT)(open_with_auth) def fix_sf_url(url): return url # backward compatibility def local_open(url): """Read a local path, with special support for directories""" scheme, server, path, param, query, frag = urlparse.urlparse(url) filename = urllib.url2pathname(path) if os.path.isfile(filename): return urllib2.urlopen(url) elif path.endswith('/') and os.path.isdir(filename): files = [] for f in os.listdir(filename): if f=='index.html': fp = open(os.path.join(filename,f),'rb') body = fp.read() fp.close() break elif os.path.isdir(os.path.join(filename,f)): f+='/' files.append("<a href=%r>%s</a>" % (f,f)) else: body = ("<html><head><title>%s" % url) + \ "%s" % '\n'.join(files) status, message = 200, "OK" else: status, message, body = 404, "Path not found", "Not found" return urllib2.HTTPError(url, status, message, {'content-type':'text/html'}, cStringIO.StringIO(body)) # this line is a kludge to keep the trailing blank lines for pje's editor0707010006218b000081a4000000000000000000000001513ff4b500010000000000b600010002ffffffffffffffff0000005a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui.exeMZ@ !L!This program cannot be run in DOS mode. $b\<&2o&2o&2oIo%2o&3o}2oo"2o/o2o/o42o/oW2o/o'2oRich&2oPELM  N&@@4(@@.text `.rdatah "@@.data+@QD$P@uSUV+WD-jPx 33ۉD$"p~WL$ <\uG <"u~Wj\V 3\F3T$CF;|Å~Wj\VV D$_"F^][YÁ A3ĉ$V$W$τtd$A9](u>u3@8tHF;w>:u5;t}jujQU&Fu9](uE;tu3]8tUP&YtFYe3C98 A4 AE0 A} 5+A0,Y}؅tx5+A,Yu܉}uu;rW+9t;rJ6++5+A+5+A+ 9}u9Et}}؉Eu܋}hp@d@_Yhx@t@OYE}u(8 AjlYu3C}tjSYËUjju ]ËUjju ]jjj jjj ËV*VY;V:VwV:V:V8V57V7h#@E*$A^ËU=D Au3u1h'YY]jXh0@3uEP4@j_}MZf9@u8<@@PEu' f9@ut@v39@Mu3CS?YujXY-ujGYW4] }j&Y0@+AQ>< A=}jY;}j YSY;tPY:]tMj YQPVh@E9uuPE}5E MPQ5YYËeE܉E}uP!EE3@ËeE>xUVuVSPk?YYt| ;u3@;u`3@ AF uNSW^^N 3_@[3^]ËU}t'Vu F tVf f&fY^]A @tyt$Ix  QP-YYu ËUVMEM >t} ^]ËUG @SVt2u,E+M}C>u8*uϰ?d}^[]ËUxA3ʼnES] Vu3W}uu5M3PPPPPt `p F @u^V@ YAttȃ *AA$uttȃ*A@$g3;] C , If90t@@;u+(;u AI8t@;u+\@t2t ƅ-t ƅ+ tƅ Dž++ uSj p vYtuWSj0. tf~bPjEPFPF5u(9t MYuPY|tWSj tYtt `pM_^3[Ð+@)@G)@)@)@)@B*@p+@jThX@e3}EP4@Ej@j ^VyYY;*A5*A0@@ x@$@% @& x8@4@ *A;rf9} E;8X;E;|E[j@j YYtVM *A*A *@@ ``$@% @& `8@4@;rE9=*A|=*Ae~mEtVtQtKu Q@@t%uN@ uNhF P)YYt7F N@Cg5*A8@33@ËeEcËUEV3;uVVVVVE@^]ËUEP A]ËU(A3ʼnESjLjP(0 ,ffffffEMDž0IDžDžX@jT@(PP@u ujM2YhL@PH@M3[ËU5P A*Yt]j2Y]UE3;AtA-rHwj X]ËA]DjY;#]u@AÃuDAà ËUVMQY0^]h8@d5D$l$l$+SVWA1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35AWEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEt1E|@GE؃u΀}t$t N3 8&N V3 :E_^[]EɋM9csmu)=*At h*A!tUjR*AM '1E 9X thAWӋ*1E MH t N3 8N V3 :EH09S RhAW0UVW3u%1Yu'9T AvV$@;T Avuʋ_^]ËUVW3ju uE u'9T AvV$@;T AvuË_^]ËUVW3u u[1YYu,9E t'9T AvV$@;T Avu_^]ËUVW3uu u%3 u,9Et'9T AvV$@;T Avu_^]j hx@utu=*AuCjYeV73YEt VPX3YYE }u7u jYVj5t)A`@u\@PYjh@E3ۉ]jY]j_};=;A}W+A9tD@ tP=YtE|(+A PD@+A4Y+AGE Ej7YËUSVuF Ȁ3ۀu@t9FW>+~,WPVaYPD ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVP[EYY3^]jh@3}}jDY}3u;5;A+A98t^@ tVPVYY3BU+AH t/9UuPJYtE9}utP/Yu E܉}F3uࡼ+A4V"YYE}EtEwjYjYËVW3X At~t WW&YhA|ܾHA_t ~uPӃhA|^[ËUE4HA@]j h@Z3G}39t)AujhPYYu4HA9tnj Y;u 3Qj YY]9u,hWt YYuWY ] >WYE Ej (YËUEV4HA>uP"YujDY6@^]j h@dM3;v.jX3;E @u WWWWW3M u;u3F3ۉ]wi=*AuKu E;p*Aw7jLY}uH6YEE_];tuWS ;uaVj5t)Ad@;uL9=)At3VYrE;P E3u jY;u E;t U}}M f$ffGfG fG0fG@fGPfG`fGpIuЋ}]U}E3+3+uF@8uE;t':t!.tG;} s.F G;} sF@8uG;} vEhj"3_^[ËUuME MUTu}tMA#E3t3@}tMapËUjjuu ]ËUjjuj]ËUjuuu u?]ËU("A "A"A"A5"A="Af"Af "Af"Af"Af%"Af-"A"AE"AE"AE"A"A"A!A!A !AAAX@!Aj$YjT@h@P@=!Auj$Yh L@PH@-t"t t Ht3øøøøËVWh3FWP3ȋ~~~  ~hA F+ο@Ou@Nu_^ËUA3ʼnESWPvh@3@;rƅ t.;w+@P j R8 CCujv vPWPjjyE3SvWPWPWv SZCDSvWPWPhv S5C$3EtLtL Ƅ@;rVDž3)ЍZ w Lр wL р A;r‹M_3[j h@@ AGptltwhuj nYj Yewhu;5At6tVp@uhAtVYAGh5AuVl@E뎋uj YËUS3SMt$Au$Ax@8]tEMapEAD;FG;v}FF>uыuE}urlj{CgjC CAZf1Af0A@@JuL@;vFF~4C@IuCC Ss3ȋ {95$AXM_^3[jh`@M}_huuE;CWh Y؅Fwh#SuYYEuvhp@uFh=hAtPcY^hS=l@FpAj tYeC$AC$AC $A3E}fLCf E$A@3E=} LA@3E=}A@5Ap@uA=hAtPYASE0j Y%u hAtStYeE~Ã=+AujVY+A3ËUSVu3W;to=HAth;t^9uZ;t9uPAYY;t9uP5AYYYY;tD9u@-P+P+Puj=At9uP?7CYY~PEAt;t 9uPY9_tG;t 9uPYMuVY_^[]ËUSV5l@W}W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P_^[]ËUW}SV5p@W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P^[_]Åt7t3V0;t(W8YtVE>YuAtVYY^3j h@_,AFpt"~ltpluj Yrj YeFl=pAiEEj }YuËUV5A5@օt!AtP5AЅt't@V @u V>Ythd@P(@tuЉEE^]jYËUV5A5@օt!AtP5AЅt't@V @u VYth@P(@tuЉEE^]@V5A@u5%AeYV5A@^áAtP5%A;YЃ AAtP@ Aj h@t@V @uVYEuF\@3G~t$hd@P(@Ӊh@uӉ~pƆCƆKCFhhAj nYevhl@E>j MY}E FlupAFlvlYE3Guj 5Yj ,YËVW\@5AЋuNhjYYt:V5A5%AYЅtjVYY@N V^Y3W@_^ËVujY^jh@uF$tPYF,tPYF4tPYFHN+I;N~WPu <+ EM F yM tt*AA@ tjSSQ>#ƒt%FM3GWEPu * E9}t N E%_[^ËUQQS]VW33};At G}rwj@Y4j@Yu =AAhp@S %AW8 t VVVVVh9%AVj=&A@u&hX@hVN8 t3PPPPPV@Y 2j<@;t$tjEP4A6%YP6S@_^[j^?YtjQ?Yu=Auh)hYYËUQSVW5+A5+A}YY;+ߍCrwW5?CY;sH;s;rPusYYuG;r@Pu]YYt1P4Y+AuVY+AEY3_^[ËVjj V +A+AujX^Ã&3^j h@aeuYEE E}oËUuYH]ËV@@W;stЃ;r_^ËV@@W;stЃ;r_^ËVW3@A6Y(r_^̋UMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDv} H ;r X;r B(;r3_^[]̋Ujh@h8@dPSVWA1E3PEdeEh@*tUE-@Ph@Pt;@$ЃEMd Y_^[]ËE3=‹ËeE3Md Y_^[]jh0@S @xte3@ËeE<lh=[@'Y4(AËUQQV`FV\tAW}S99tk ;rk ;s99u3t X]u3u `3@N`MM N`H hA=lA;}$k ~\d9=hAlAB߃ ;|]~d=u Fd^=u FdN=u Fd>=u Fd.=u Fd=u Fd=uFdvdjY~d`QӋEYF`[_^ËUE8(A<(A@(AD(A]ËUE tAV9Ptk u ;rk M^;s9Pt3]5@(AYj hP@F3}}؋] LtjY+t"+t+td+uDs}؅ua8(A8(A`w\]ZÃt<t+Ht3PPPPP뮾@(A@(A<(A<(A D(AD(AEPEY3}9Euj9EtPY3Et tuO`MԉG`u@OdMGdu. hAM܋ lAhA9M}Mk W\DE~EuwdSUY]}؃}tjTYSUYt tuEԉG`uEЉGd3ËUEL(A]ËUEX(A]ËUE\(A]jhp@ieu u@E/EE3=Ëe}uj@eEE[ËUE`(A]ËU5`(A|YtuYt3@]3]ËUE8csmu*xu$@= t=!t="t=@uC3]h_@T@3ËVW39=+AuC5+Aub@< wt.t$<"u 3ɅPYtFF< wFu_^Ã=+AuV5< AW3u<=tGVYtujGW!YY= Atˋ5< ASBVSC>=Yt1jSYYtNVSP}. t3PPPPP>u5< A%< A'+A3Y[_^5 A~% AUQMS3VU 9Et ]EE>"u39E"FE<tBU PFYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#Yt M E FM E  YtFU FVtBU ME^[t ËU S3VW9+Auehh(AVSl)A@+A5( A;tE8uuUEPSS} E =?sJMsB;r6P$Y;t)UEPWV}E H A5 A3_^[ËUp)A SV5@W33;u.֋;t p)A#\@xu jXp)Ap)A;u֋;u3f9t@@f9u@@f9u5@SSS+S@PWSSE։E;t/PJYE;t!SSuPuWSSօu uYY]]W@\t;u@;r8t @8u@8u+@PEY;u V@EuVW+ V@_^[ËU39EjhP@t)Au]3@*A]ËUAeeSWN@;t t УA`VEP@u3u@3@3@3EP@E3E3;uO@ u 5A։5A^_[ËUEu 3]V3;|;*ArVVVVV 3ȃ *AD@^]áA39x)A̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+ËUSVu 3W};u;vE;t3E;tvcj^SSSSS0VuME9XfEf;v6;t;v WSV訳 *8]tMap_^[;t2;w,j"^SSSSS0n8]yE`pmE;t8]%E`pM QSWVjMQS] p@;t9] ^M;t\@zD;g;_WSVѲ OUjuuu u|]ËUu M誶EMA%}tMapËUjuYY]VD$ u(L$D$ 3؋D$d$ȋd$Gȋ\$T$ D$ ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^%*ASVWT$D$L$URPQQhi@d5A3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhC1C1d_^[ËL$At3D$H3Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëj_033333USVWjjhWj@QQ_^[]Ul$RQt$ ]j h@eu;5p*Aw"jdYeVa YEE E)j_YËUVuSW=d@=t)Au!joh轶YY*Aut3@Pu VSYuuFVj5t)A׋؅u.j ^9)AtuBYtu{00_[VY 3^]jh@]uu Yu u SY=*A3}jY}S6YE;;5p*AwIVSP t]5V YE;t'CH;rPSu:$SESP 9}uH;u3Fu u VW5t)Ad@E;t CH;rPSu#SuE.}u1uFu VSj5t)A@u ]jHYË}9=)At,VYP9}ul\@PY_+9}th quFVSj5t)A@uV9)At4V;YtvV+Y 3c|u\@PnYҋUM S3;v(j3X;EsSSSSS 3AMVW9]t u)YVuYYt;s+VjSȬ _^[]ËU h*Al*AkU+P r ;r3]ËUMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJM;v;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM DD )}uJM YJꍄ ED0E|)A |*A5@h@H SQ֋ |*A|)A P|)A@ |*A|)A@HC|)AHyCu `|)AxueSjp ֡|)Apj5t)A`@ h*A|)Akl*A+ȍLQHQP+E h*A;|)Avml*At*AE|)A=|*A[_^áx*AV5h*AW3;u4kP5l*AW5t)A@;u3xx*A5h*Al*Ak5l*AhAj5t)Ad@F;tjh hW@F ;uvW5t)A`@뛃N>~h*AF_^ËUQQMASVqW3C}i0Dj?EZ@@Jujhy hW@upU;wC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[ËU MASVuW} +Q iDMOI;|9M]UE;;MIM?vj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M OL1?vj?_]][Y]YKYKY;YuWLML s}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN] K?vj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLML s}uοM 9DD }uNM yN ED3@_^[ËUh*AMkl*AMSI VW} M 3U t*AS;#U# u ];r;ul*AS;#U# u ];r;u[ {u ];r;u1l*A {u ];r;u؉]u3 S:YKC8tt*ACUt|D#M# u)eHD9#U# uEUiDMLD3#u#Mj _G}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uy>u;|)AuM; |*Au%|)AMB_^[ËUSVuW3;uQWWWWWٽ BF t7VV(VOP'}F;t PnY~~ _^[]j h@3M3u3;;uνWWWWWV F @t ~ E6V Y}V*YEEՋuVYYËU8*A3ʼnEE V34809uu3;u'D0*VVVVV貼SW}4*ANJX$('tu0Mu&ۼ30迼VVVVVGC@ tjjjucuYD@l39HP4 @`39 tP@43<9EBD'g (3  ǃx8tP4UM`8jEPKPYt:4+M3@;j@SP<( CDjS@P( 3PPjMQj@QPCD@\j # 3;|;*Ar!8 WWWWW胵ɋ*A L1tP9$Y}D0tuu u. E蘵 蠵8ME Eu$Yjh@訵EuO 3;|;*Ar. SSSSS趴Ћ<*ALtPl#Y]Dt1u"YP@u \@E]9]tʹM谴 ME E#u#YËUS39]urSSSSS3jVu ;uNSSSSSֳ9ur3>uMƛMF9YtH9Ew D u+ȃ+N8]tMap^[ËUju uU ]ËUS3Vu9]u;u9] u3;t9] w襳j^SSSSS0.9]uW};utj^SSSSS0(uME9XuuWu V L}U u@G:tJu@G:tJtMu9]u@;8t}u5x};rEPEPоYYtM9us+E}uZE v:|};r!EPEP茾YYtM9usE +Mt\8]tE`pjPXSj"^SSSSS0ܱ8]tE`pd+΃|Mx};rEPEP YYtM9us+Etj*X8]tMap8]tE`p3_^[ËUEt8uPY]ËUA3ʼnESV3W9)Au8SS3GWhd@hS@t=)A\@xu )A9]~"MEI8t@;uE+H;E}@E)A;]9] u@E 5@39]$SSuuPu ֋;~Cj3Xr7D?=w#;tP Y;t E]9]>Wuuuju օ5@SSWuu u֋ȉM;E t)9];MuuWuu u;~Ej3Xr9D =w";tjPJY;t 3;tAuVWuu u@t"SS9]uSSuuuVSu @EVYuEYY]]9]u@E9] u@E u YEu3!;E SSMQuPu > E;tԋ5@SSuPu u։E;u3~=w8=w!;tP4Y;t 3;tuSW0 uWuuu u։E;u3%uEuPWu uu#uWYuuuuu u@9]t u蘱YE;t 9EtP腱Yƍe_^[M3藕ËUuM葕u(Mu$u uuuuu ( }tMapËUQQA3ʼnE)ASV3W;u:EP3FVhd@V@t5)A4\@xu jX)A)A;]9]u@E5@39] SSuu Pu֋;~<w4D?=w;tPPY;t ؅ti?PjSN WSuu juօtuPSu@ESEYu39]u@E9]u@EuAYu3G;EtSSMQu Pui;t܉u uuu uu@;tV膯YǍe_^[M3蘓ËUuM蒓u$Mu uuuuu }tMapËUVuvvv vvv6v ߮v$׮v(Ϯv,Ǯv0迮v4跮v诮v8觮v<蟮@v@蔮vD茮vH脮vL|vPtvTlvXdv\\v`TvdLvhDvl 9M u H9U t @ff;u9M u8]tMap8]tE`p3^[ËUju u2 ]̍B[Í$d$3D$ST$t :tτtQu WV ؋ ~333ƃu%t%uu^_[3ËB:t6t:t't:tt:tt^_B[ÍB^_[ÍB^_[ÍB^_[%@UUS3;uH{SSSSSz 8tߋM ;t؋;t8tSQR []ËUUVujXEU;uz z S3;|;5*Ar'zzSSSSS CzQW<*AƊHuzuz jwP];9] t7@$EHjYtHuШtUE EШu!#z zSSSSSy4M;rEu|YE;uy yhjSSu|D(ET,AHttI tl9]tg@MED 8]tNL% tC9]t>@M}ED% u$L& t9]t@MED& SMQuP4,@{M;p;MgMD};t M9 u ]EÉ]E;M<< t CAMEH;sA8 u AAM uEmEjEPjEP4,@u \@uE}t?DHt} t ML%;]u} tjjju} t CE9EGD@uC+E}EK xC3@;]rK @AtAu |w*zA;u@AHt$CQ| T%Cu T&C+ؙjRPuE+]Pu Sujh@Eu4\@P!wYME;E tPUzYEEE3;EL0;tMf9 u ]EÉ]E;Eff tf CC@@EM;sHf9 u Ej MEjEPjEP4,@u \@u[}tUDHt(f} tj XfMLML%D& *;]uf} tjjjuf} tj XfCCE9Et@uffCC+]]\@j^;uuu }u0imY]\3_[^jh@uEuEu *u 3;|;*Ar!u0u VVVVVtɋ*A L9t;MAut0tPYuD8tuu u~ E~t t0ME EtuiYËU0S3EVW]]E ]t ]E E]EP Yt SSSSSnrMu@u9EtM+útGHt.Ht&ssj^SSSSS0?sUtuE@}EjY+t7+t*+t+t@u9}EEE E]E#¹;;t0;t,;t==@E/E&E=t=t`;EEEt  A#MxE@tMMMt } tME릨tMujrMrE=@SuuEPuuu ׉EumM#;u+Et%eSuEuPuuu ׉Eu46*AD0 \@PqYqtu@@;uD6*AD0 \@VqYu@;u_q 룃uM@ uMu64Ѓ*AYYMLЃ*AD$ MeHMEtqjW6 E;up8tM6jEP6] u}uERP6 ;tSS6F ;tE0@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u E]EE@]E#=@=tw;E;yvv0fE3H&HREEjSS68 tSSS6'#ƒjEP6/ utk}uYEE;bPjSS6 CSSS6#ƒE%=u6Ynj^0d=uSj6X EASS6= EEE+PD=P6 9}ۋ *AD$2M0 *AD$M ʈ8]u!Etȃ *AD }#;u|Etvu@SuEjPuWu @u4\@Pmȃ *AD 6Y6 *A_^[jh@omM3u39u;u mVVVVVlruuj@u uEPEEE};t?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=EncodePointerKERNEL32.DLLDecodePointerFlsFreeFlsSetValueFlsGetValueFlsAllocruntime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program:  EEE00P('8PW700PP (`h`hhhxppwpp ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAUSER32.DLLSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecCONOUT$.com.exe.bat.cmd.\SystemRootHA@8i@#@%@%@%@%@h5@l5@;@;@k=@7=@>@#@@MA@iA@]G@+K@N@P@P@R@R@eY@ [@[@][@a[@^@H_@__@j@l@y@ށ@@@M@@[@!@]@ܮ@@@\$<Thp$@^r &0@Vbr$2L\r"4FXjv$0@RQGenerateConsoleCtrlEventGetExitCodeProcessdWaitForSingleObjectCreateProcessASetConsoleCtrlHandlerGetModuleFileNameAEnterCriticalSectionLeaveCriticalSectionGetModuleHandleW!Sleep GetProcAddressExitProcessoGetCommandLineA9GetStartupInfoASetHandleCount;GetStdHandleGetFileTypeDeleteCriticalSection-TerminateProcessGetCurrentProcess>UnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentGetLastErrorHeapFreeHeapAlloc[GetCPInfoInterlockedIncrementInterlockedDecrementRGetACPGetOEMCPIsValidCodePage4TlsGetValue2TlsAlloc5TlsSetValue3TlsFreeSetLastErrorGetCurrentThreadIdWriteFileLoadLibraryAInitializeCriticalSectionAndSpinCountJFreeEnvironmentStringsAGetEnvironmentStringsKFreeEnvironmentStringsWzWideCharToMultiByteGetEnvironmentStringsWHeapCreateWVirtualFreeTQueryPerformanceCounterfGetTickCountGetCurrentProcessIdOGetSystemTimeAsFileTimeRtlUnwindHeapReAllocTVirtualAllocGetConsoleCPGetConsoleModeAFlushFileBuffersLCMapStringAMultiByteToWideCharLCMapStringW=GetStringTypeA@GetStringTypeWGetLocaleInfoASetFilePointerHeapSizeCCloseHandleWriteConsoleAGetConsoleOutputCPWriteConsoleWSetStdHandlexCreateFileARCompareStringAUCompareStringWSetEnvironmentVariableAKERNEL32.dllhReadFileSetEndOfFile#GetProcessHeapGetFileAttributesA+A+AN@D#@l@\@         ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZhA`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~l@CAAAAAHAh@@p@AAAhA@@ @ @@@@\@$@@@@d@D@@ @!@"@x@y@z@@@^@^@^@^@^@^@^@^@^@^@x h@j@@@@@@@@x@p@h@\@P@H@<@8@4@0@,@(@$@ @@@@@ @@@@@(@@@@@@@@@@@|@p@ A.DA)A)A)A)A)A)A)A)A)AHA. pPSTPDTAA;Zx0Nm:Yw/Mll@d@\@T@07070100062185000081a4000000000000000000000001513ff4b500007bf3000000b600010002ffffffffffffffff0000005b00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyc ?Qc@sdgZddlZddlmZddlmZddlmZddl m Z ddl m Z ddl mZmZdd l mZddlZddlZddlZddlZddlZddlZddlZd ZeeZeefZd Zd Zd ZdZdZ dZ!dZ"dZ#dZ$defdYZx)ej%ej&ej'fD]Z(ee(_qWdfdYZ)dZ*dS(t DistributioniN(R(tRequire(tinstall(tsdist(t install_lib(tDistutilsOptionErrortDistutilsPlatformError(tDistutilsSetupErrorcCsNx"|jjdr$|j\}qW|jjdsJtd|n|S(sProtect against re-patching the distutils if reloaded Also ensures that no other distutils extension monkeypatched the distutils first. t setuptoolst distutilss(distutils has already been patched by %r(t __module__t startswitht __bases__tAssertionError(tcls((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyt_get_unpatcheds cCsdy*tjjd|}|j s)tWn3ttttfk r_td||fnXdS(Nsx=s4%r must be importable 'module:attrs' string (got %r)( t pkg_resourcest EntryPointtparsetextrasR t TypeErrort ValueErrortAttributeErrorR(tdisttattrtvaluetep((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytcheck_importable scCsYydj||kstWn3ttttfk rTtd||fnXdS(s*Verify that value is a string list or Nonets%%r must be a list of strings (got %r)N(tjoinR RRRR(RRR((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytassert_string_list+s cCst|||x|D]|}|j|sCtdd|nd|krdj|jdd }||krtjjd||qqqWdS(s(Verify that namespace packages are valids1Distribution contains no modules or packages for snamespace package %rt.isU%r is declared as a package namespace, but %r is not: please correct this in setup.pyN(Rthas_contents_forRRtsplitR tlogtwarn(RRRtnsptparent((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyt check_nsp4s    cCsay4x-|jD]\}}ttj|qWWn&tttfk r\tdnXdS(s+Verify that extras_require mapping is valids'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.N(titemstlistRtparse_requirementsRRRR(RRRtktv((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyt check_extrasEs cCs/t||kr+td||fndS(s)Verify that value is True, False, 0, or 1s#%r must be a boolean value (got %r)N(tboolR(RRR((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyt assert_boolTscCsHyttj|Wn*ttfk rCtd|fnXdS(s9Verify that install_requires is a valid requirements lists^%r must be a string or list of strings containing valid project/version requirement specifiersN(R(RR)RRR(RRR((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytcheck_requirementsZs cCs:ytjj|Wntk r5}t|nXdS(s)Verify that entry_points map is parseableN(RRt parse_mapRR(RRRte((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytcheck_entry_pointscscCs"t|tstdndS(Nstest_suite must be a string(t isinstancet basestringR(RRR((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytcheck_test_suitejscCs}t|trixW|jD]B\}}t|ts;Pnyt|Wqtk r]PqXqWdSnt|ddS(s@Verify that value is a dictionary of package names to glob listsNsI must be a dictionary mapping package names to lists of wildcard patterns(R3tdictR'tstrtiterRR(RRRR*R+((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytcheck_package_datans  cBseZdZdZdZddZdZdZdZ dZ dZ dZ d Z d Zd Zd Zd ZdZdZdZdZdZdZdZdZdZdZdZRS(sxDistribution with support for features, tests, and package data This is an enhanced version of 'distutils.dist.Distribution' that effectively adds the following new optional keyword arguments to 'setup()': 'install_requires' -- a string or sequence of strings specifying project versions that the distribution requires when installed, in the format used by 'pkg_resources.require()'. They will be installed automatically when the package is installed. If you wish to use packages that are not available in PyPI, or want to give your users an alternate download location, you can add a 'find_links' option to the '[easy_install]' section of your project's 'setup.cfg' file, and then setuptools will scan the listed web pages for links that satisfy the requirements. 'extras_require' -- a dictionary mapping names of optional "extras" to the additional requirement(s) that using those extras incurs. For example, this:: extras_require = dict(reST = ["docutils>=0.3", "reSTedit"]) indicates that the distribution can optionally provide an extra capability called "reST", but it can only be used if docutils and reSTedit are installed. If the user installs your package using EasyInstall and requests one of your extras, the corresponding additional requirements will be installed if needed. 'features' -- a dictionary mapping option names to 'setuptools.Feature' objects. Features are a portion of the distribution that can be included or excluded based on user options, inter-feature dependencies, and availability on the current system. Excluded features are omitted from all setup commands, including source and binary distributions, so you can create multiple distributions from the same source tree. Feature names should be valid Python identifiers, except that they may contain the '-' (minus) sign. Features can be included or excluded via the command line options '--with-X' and '--without-X', where 'X' is the name of the feature. Whether a feature is included by default, and whether you are allowed to control this from the command line, is determined by the Feature object. See the 'Feature' class for more information. 'test_suite' -- the name of a test suite to run for the 'test' command. If the user runs 'python setup.py test', the package will be installed, and the named test suite will be run. The format is the same as would be used on a 'unittest.py' command line. That is, it is the dotted name of an object to import and call to generate a test suite. 'package_data' -- a dictionary mapping package names to lists of filenames or globs to use to find data files contained in the named packages. If the dictionary has filenames or globs listed under '""' (the empty string), those names will be searched for in every package, in addition to any names for the specific package. Data files found using these names/globs will be installed along with the package, in the same location as the package. Note that globs are allowed to reference the contents of non-package subdirectories, as long as you use '/' as a path separator. (Globs are automatically converted to platform-specific paths at runtime.) In addition to these new keywords, this class also has several new methods for manipulating the distribution's contents. For example, the 'include()' and 'exclude()' methods can be thought of as in-place add and subtract commands that add or remove packages, modules, extensions, and so on from the distribution. They are used by the feature subsystem to configure the distribution for the included and excluded features. cCs| sd|ksd|kr#dStjt|dj}tjjj|}|dk r|jd rtj t|d|_ ||_ ndS(NtnametversionsPKG-INFO( Rt safe_nameR7tlowert working_settby_keytgettNonet has_metadatat safe_versiont_versiont _patched_dist(tselftattrstkeyR((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pytpatch_missing_pkg_infoscCsUt|d}|s!i|_ng|_i|_g|_|oQ|jdd|_|j||dk r|jdg|_ t |d|j n|rd|kr|j |jdnx?t j dD].}t||jst||jdqqWtj||t|jjtttfrQt|jj|j_ndS(Nt package_datatsrc_roottdependency_linkstsetup_requiressdistutils.setup_keywords(thasattrRJtrequire_featurestfeaturest dist_filestpopRARKRIRLRtfetch_build_eggsRtiter_entry_pointsR:tsetattrt _Distributiont__init__R3tmetadataR;tinttlongtfloatR7(RFRGthave_package_dataR((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyRWs&      cCs)tj|}|jr%|jn|S(s3Process features after parsing command line options(RVtparse_command_lineRPt_finalize_features(RFtresult((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyR]s  cCsd|jddS(s;Convert feature name to corresponding option attribute nametwith_t-t_(treplace(RFR:((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyt_feature_attrnamescCsPddlm}m}x3|j||d|jD]}|j|q5WdS(sResolve pre-setup requirementsi(R>R)t installerN(RR>R)tresolvetfetch_build_eggtadd(RFtrequiresR>R)R((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyRSs cCstj||jr#|jnxgtjdD]V}t||jd}|dk r3|j d|j |j ||j|q3q3Wt|ddrg|j D]}t jj|^q|_ n g|_ dS(Nsdistutils.setup_keywordsRetconvert_2to3_doctests(RVtfinalize_optionsRPt_set_global_opts_from_featuresRRTtgetattrR:RAtrequireRgtloadRjtostpathtabspath(RFRRtp((sU/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/dist.pyRks     .c CsWy|j}g|j_Wn.tk rIddlm}|jidgd6}|j|jd}d}x*|j D]}||kr~||=q~q~W|j r|j }d|kr|dd j |}nd |f|ds:  <          07070100062146000081ed000000000000000000000001513ff4b500000ea0000000b600010002ffffffffffffffff0000005e00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.py"""Extensions to the 'distutils' for large or complex distributions""" from setuptools.extension import Extension, Library from setuptools.dist import Distribution, Feature, _get_unpatched import distutils.core, setuptools.command from setuptools.depends import Require from distutils.core import Command as _Command from distutils.util import convert_path import os import sys __version__ = '0.6' __all__ = [ 'setup', 'Distribution', 'Feature', 'Command', 'Extension', 'Require', 'find_packages' ] # This marker is used to simplify the process that checks is the # setuptools package was installed by the Setuptools project # or by the Distribute project, in case Setuptools creates # a distribution with the same version. # # The distribute_setup script for instance, will check if this # attribute is present to decide whether to reinstall the package # or not. _distribute = True bootstrap_install_from = None # If we run 2to3 on .py files, should we also convert docstrings? # Default: yes; assume that we can detect doctests reliably run_2to3_on_doctests = True # Standard package names for fixer packages lib2to3_fixer_packages = ['lib2to3.fixes'] def find_packages(where='.', exclude=()): """Return a list all Python packages found within directory 'where' 'where' should be supplied as a "cross-platform" (i.e. URL-style) path; it will be converted to the appropriate local path syntax. 'exclude' is a sequence of package names to exclude; '*' can be used as a wildcard in the names, such that 'foo.*' will exclude all subpackages of 'foo' (but not 'foo' itself). """ out = [] stack=[(convert_path(where), '')] while stack: where,prefix = stack.pop(0) for name in os.listdir(where): fn = os.path.join(where,name) if ('.' not in name and os.path.isdir(fn) and os.path.isfile(os.path.join(fn,'__init__.py')) ): out.append(prefix+name); stack.append((fn,prefix+name+'.')) for pat in list(exclude)+['ez_setup', 'distribute_setup']: from fnmatch import fnmatchcase out = [item for item in out if not fnmatchcase(item,pat)] return out setup = distutils.core.setup _Command = _get_unpatched(_Command) class Command(_Command): __doc__ = _Command.__doc__ command_consumes_arguments = False def __init__(self, dist, **kw): # Add support for keyword arguments _Command.__init__(self,dist) for k,v in kw.items(): setattr(self,k,v) def reinitialize_command(self, command, reinit_subcommands=0, **kw): cmd = _Command.reinitialize_command(self, command, reinit_subcommands) for k,v in kw.items(): setattr(cmd,k,v) # update command with keywords return cmd import distutils.core distutils.core.Command = Command # we can't patch distutils.cmd, alas def findall(dir = os.curdir): """Find all files under 'dir' and return the list of full filenames (relative to 'dir'). """ all_files = [] for base, dirs, files in os.walk(dir): if base==os.curdir or base.startswith(os.curdir+os.sep): base = base[2:] if base: files = [os.path.join(base, f) for f in files] all_files.extend(filter(os.path.isfile, files)) return all_files import distutils.filelist distutils.filelist.findall = findall # fix findall bug in distutils. # sys.dont_write_bytecode was introduced in Python 2.6. if ((hasattr(sys, "dont_write_bytecode") and sys.dont_write_bytecode) or (not hasattr(sys, "dont_write_bytecode") and os.environ.get("PYTHONDONTWRITEBYTECODE"))): _dont_write_bytecode = True else: _dont_write_bytecode = False 07070100062153000081a4000000000000000000000001513ff4b500012600000000b600010002ffffffffffffffff0000005d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli-64.exeMZ@ !L!This program cannot be run in DOS mode. $T05c5c5c`zHc5cMZc5cMKc5cc5c5c5cM]c5cMOc5cRich5cPEdM"  n*@@(` p.text| `.rdata@)*@@.data5 @.pdata ` @@.relocp"@BH\$WH HH HH`LH(H\$0H _HHXHhHpHx ATAUAVH LH3IHэD HyHcq 33Lc"HXL~YA,<\u&<"u ~DƲ\Hˋ H+\H3A,HňHI;|~DƲ\Hˋ^ HHl$HHt$PH|$X"CH\$@IH A^A]A\H\$WH H AHHH HH\$0H _H\$WH`H\H3H$PHH HH/u@\uH$@L$@LD$@HT$0HHD$ C|$0|$@\H$@L$@LD$@HT$0HHD$ H3H|$@HD$@HHHHȀ9\t HD$@H;r Hɀ9\uHd$ LD$@HT$0H$@L H$@HH$PH34H$H`_HHXHhHpHx ATAUAVH HH3LHPHH, 3E3A!>HLHH u@3H@t\@ztEtJ@\u@"u@u3E@2DtLDz\H H3@t@uH뙅tLDz\HH3EAIcHI,@tH u8TH\$@Hl$HHt$PH|$XIH A^A]A\H(u !t3:H(HSH`3HHL$pD@h3HD$PHD$XHD$`=H D$phL\$PL\$HHD$pE3HD$@Hd$8Hd$0d$(E3H3D$ u`HHH`3DD$`HL$P HL$PH$euHM붋$H[H\$Hl$Ht$WATAUAVAWH H3IDpIHIcLHMI+L;DQ}J<3IMHI+L;ET |IcIHLHH3HIIHI+L;L}4MIcHHlI<3IIHI+H;El |Hl$XHt$`HH\$PH A_A^A]A\_H\$UVWATAUAVAWH@H H3H$0HT$(ELcHT$03D3IH|$0I3HHD / 8.t@(HHL$0H;w@(3H|$0I3HfHL$0HG^fGVG xA;uHT$0H !tH$0LƋխHcH 0H$0HHH;s@:t< t< u@*H$0HA ;t$HH$0HAA HT$ H$2RHT$0HHHH;uHH 2Dd$ G,&AEHcyHHAHEH}~ HAHHHHIuHL$0MHHI;}Lt$(I `HHHI;|H'HHEt譤HH OEHH$0H3z H$H@A_A^A]A\_^]E3tHHPHHL@LH SVWATH8H3ۋH;;u'H&H\$ E3E333^%H;;u'&H\$ E3E333+%Ld$pG@H#t*t%HcHHLs*HkXIH H HLN*B8u%ttHcHHHkXI A8t"f%H\$ E3E333|$;u*HME3HT$hHH׋HH8A\_^[H5@SH <u;LHcȺ;%H+Hu$PHˉ;%H+Hux3HHH0HHt Hn+E3HEHIL)IHIHkXLIt ItMuIH0Iu3H [H(?)=t&H *H(y&@SH HH H;r:HH;w.HH*H+HHHH?L*k HK0H [@SH H}*k HJ0H [H(HH;r7HH;w+qH+H*HHHH?Lg) H0H(H(}r>) HJ0VH(@SH d$@LD$@[*HHu9D$@t"Ht "L$@HH [ffHIrSIII@rHكtL+HHMI?Iu9MIItfffHHIuMt HIu@fffffIs0HHQHQH@HQHQIHQHQHQufDHHQHQH@HQHQIHQHQHQu $TffLM t$H+t(HItu IHHHIr&I~LLIM3IMtIHItx$tuHItiHtbHItV$tSHItGHt@HIt4$t1HIt%tHIt$tHI+H^ CL;CL;{;tHL$0HIЅ~sA}csmu(H=tH 5tIKAHIGBIF@SMcMHD$(IF(IMHHD$ wJBH;>sj>3fIy 3I+9.vTH^KL;r>CL;s6H;r H;sAE u/;t H;t#HT$xIDZIDCMAH;.rL\$@I[0Ik@IsHIA_A^A]A\_H\$H|$ATH HAH0H;u3H`H;uwbC ucL%HcI<u+JIHuHC HCHC$CI C$CHKH K3H\$0H|$8H A\̅t0SH b HsHcc$H#HcH [@SH B@It HzuA&Bx HH,u H [̅~LH\$Hl$Ht$WH II@LH@?tH\$0Hl$8Ht$@H _H\$Hl$Ht$WH A@@IIHt IxuA7~3MLHHŃ?u=8*uLHֱ?H\$0Hl$8Ht$@H _H\$UVWATAUAVAWHHH3H$3HHL$hHHL$xIMD$`DD$TDD$HD$XD$PE3I;uA3E3E333H\$ 8$tH$AC@L H HkA;t(t#LcL gIAHMkXMɀC LL DA@8u)A;ttHcHƒHHkXICB8tA3E3E333H\$ 8$tH$A1E3I;t@/ADT$@DT$DAL$A:H$AHA;H$EtkH>teAEt^AEuH8A;tILcIHAMkXM$HI$AEAD$IL$*A;tAD$ IH;|EIHHkXHH;t H;tKCAD$ɃE;DHHtJI;tEHA;t7H3uK@ uKHK"*A;tC .K@HAHHQ  3L$I[ Is(I{0Mc8IA_A^A]H8Hu%*Hd$ E3E333?AH8H @SHd$pHL$t3APL\$pH$H$L\$HHD$PH$HT$@HE3qHt;Hd$8HT$@HL$`HL$0HL$XLHL$(H$LHL$ 3- H$H$H$H$H$D$pD$tH$3ɋHL$Hu uHl4²HH[H\$Hl$Ht$WH0HH AIH@HtLT$`DLHHLT$ %3L\$`DLHHL\$ hH\$@Hl$HHt$PH0_L 3ID@; t+IЃ-rAw ÁDAFHADH(wHu HHH(H(WHu HHH(@SH 3Hu HHLHtLP;AH [H\$Hl$Ht$WH 3HH2HHu(9Nv DD;6AG;uHl$8Ht$@HH\$0H _HHXHhHpHx ATH 3HHAE3HHiHHu*9v"ADD;AAGA;uHl$8Ht$@H|$HHH\$0H A\HHXHhHpHx ATH 3HHAHH2HHu/Ht*9Mv"DD;5AAGA;uHl$8Ht$@H|$HHH\$0H A\H\$Hl$Ht$WATAUH 3IHALLHI2HHu/Ht*9v".DD;AAGA;uHl$HHt$PHH\$@H A]A\_Ht7SH LH 3tuSHZH [H\$Ht$ATH03Nj^\$ ;(}iLcHJ<tPJ At&3tƉt$$|1HJ H0H J ALK$É\$ 돹H\$@Ht$HH0A\H\$Ht$WH A3H$<u?At69+y~-HSDNjV:;uCyCK HKcHt$8H H\$0H _@SH HHu5,jtcsH;3H [Ht$H|$Ld$AUAVAWH0DE33N3|$ A;=LcHrJ<tjJBt`HRJ At5Au9A;t%ADd$$EuAtA;ADt$(H Jlj|$ n@AADHt$PH|$XLd$`H0A_A^A]ùH\$Ht$H|$ATH L%33I܃{u%HcƺH HH H "t-HHH;|øH\$0Ht$8H|$@H A\HcHI$3H\$Hl$Ht$WH HH-NHH7HttHīH|H'HH;|H Ht {uHH;|H\$0Hl$8Ht$@H _HcHHH H% H\$Ht$H|$AUH HcپH=uNZHHL-II|t{(HHu. 3Z fI|u/H uH 3I\ HbH j<H\$0Ht$8H|$@H A]H\$WH HcH=HH<uuHH H\$0H _H%ةH\$WH0IHHt23HBHH;s$HHd$ E3E333 ]3]HHHD3HwH PLHu-=tHuHt Ht H\$@H0_H\$Hl$Ht$WH0HHHH3HMt!AtH;HY:HIMtAA9t;HH;HˆHÀ:uIL88/t8\tHH;sm\HHL$`HtHH;sSHH9uHL$hHt1t+<.t"HH;s(.HHH;sHH9uHGH;vE"3#Hd$ E3E333ɉH\$@Hl$HHt$PH0_H\$Ht$WH@HHL$ AALH h/HI;HI+LoII9HI;sTH;HBHH;rI3H;u3HV H;rFIH;t9HHHHIHHKHI3HH\$@Ht$HH|$PH A^A]A\H(HH(H\$WH H7H=0HHtHH;rH\$0H _H\$WH HH=HHtHH;rH\$0H _H\$WH H H HHHuH\$0H _HMZf9t3HcH 3H\$0Ht$8H _!H(}H}HH\$Ht$WH03HHHt13HGHI;s#H!|$ E3E333 3=IHt%HHHHHtH;sH+H 3LHH\$@Ht$HH0_H\$WH0HHu#:H!\$ E3E333P FAt:Hˋ*H(yHK(Ht iHc(cH\$@H0_H\$HL$WH0Hك3Hu$Hd$ E3E333&A@ta肥HHH\$HH0_H\$ UVWATAUAVAW0jH+H$H3H$ 33ELHcىl$@Eu3Hu.!8H!|$ E3E333 LLH|IAJ Lt$PMkXAt8@@@t@u AШtAD t 3ҋDBHJADS3HT$XHH9YJ I .{t @ {!|$LI܉D$XEwDt$X @HT$P E3 H-HTAA|Pt ADLL$]AD$\AdPHT$\It4IH+IHHL$DAH5*vHAHHL$D*UHd$8Hd$0L$XHD$\LD$DA3D$(HHD$ yHD$PHd$ H H LL$LHT$\I D\yBA+|$@9l$L EHD$PHd$ @l$\H LLL$LDEH HT$\I y|$L|{D$@e@t@uE3f fD$DAH@t@u6L$Dh&f;D$DEtfl$DI&f;D$DuxD$@A+A;\$LLt$Pl$@ze Lt$PJLADLJDADP\$Lw떋\$LH+J AD3I@ES Dt$@H$ 3ɋA+A;s&EH< u AHHHHHrH!\$ H$ DD+HDt$@Lt$PLL$HH$ J I Swt5|$HH$ H+HcD$HH;ź A+A;Nv@E" Dt$@H$ 3ɋA+A;s1EHf ufAHHHfHHrH!\$ H$ DD+HDt$@Lt$PLL$HH$ J I lvJ|$HH$ H+HcD$HH;ź A+A;?ENA HL$p3ҋA+A;s.EHf u fDHHHfHHrHd$8Hd$0HD$p+LD$pD$(U +3DH$ HD$ uD3HD$PHd$ HcH EH H LL$HD+I Zut t$HD;tD;A A+A;I H!|$ LL$HEIut |$H3zt~HJAD@t A<$.4I H+H$ H3H$H0A_A^A]A\_^]H\$Ht$L$WATAUAVAWH0ELHcكu38 3;;;HLIL=<HkXKL0u+8c H|$ E3E333ym%KD0tEIՋ 08d&)8 H|$ E3E333 H\$hHt$pH0A_A^A]A\_H\$L$VWATH0Hcu ;="HHHL%#HkXILu%Q Hd$ E3E333fz$IDt+K$Hsu r3ۅt >%#տ Hd$ E3E333H\$`H0A\_^H\$WHPHHHu$莿Hd$ E3E333裾3vHtH;sHL$0IPL\$8A{u|$HHCtHHL$@:HSHH;w BDuHH+ʃH+ـ|$Ht HL$@HCH\$`HP_E3I;tI;vM;uD)M;u?D)艾E3E333ɉLl$ 螽L\$PI[ Ik(Is0IA]A\_H$HL$08L\$8HHE9ku LLXD8l$HtHL$@HuHƈHA:t.Hu&HƈHA:t HtHuI;uD)HI;D8.tHuYLaIL;rHT$0A;tHH;sA+ƨt*E,$耽*D8l$Ht HL$@Hu\HvOHt+HH;rHT$0MA;tHH;s+Ǩt D.D8l$Ht HD$@PDl+D+"E3E333ɉLl$ D8l$HaHL$@PHH+H|YHqHH;rHT$0A;tHH;s+Ǩt+D.|*D8l$HHD$@D8l$HHD$@@UATAUAVAWH`Hl$@H]PHuXH}`HH3HED3MLMDEDUHDnD;uOLyEͺ3ɉ|$(H|$ n;t ED-RmDCxDDD5L]DMpD;~5AIA+@88t I;uA+A+A;} DHDMpDȉEpD;\D;SE;DD;uHD`MA҉|$(H|$ A$nLcD;<HAA~[3HBIHrLKL?I;w.HAH;wHHZ\H+H|$@HHHtD0HHDMpLEAD|$(H|$ |m3;KUL$(HL$ MEL_mE3HcA;!DUA s;A;;MD$(HExELAHD$ mA;~`3HBHHrQHL6I;w*HAH;wHHW[H+H\$@I;tE3HI;tD0HDUII;tnMELA҉t$(H\$ l3;t?3HL$8DLHL$0;u L$(HL$ D$(HExHD$ AkHKD91u菻HOD91u聻HLD;u HDpDuuHxAh Du3L}xLE;<3LMpЋω\$(H\$ HH;tDMpULAΉ\$(H\$ kLcDMD;uD;A~bIIwYHHw4HYH;w HHHYH+H\$@Ht%HHtD0HDMHu3Mc3HKD]DMpUMD\$(LH\$ jEu3.LMLÉD$(AL|$ }L3L;DHKD91u(!DMpUD$(AL|$ bj3H;tHL;t M;tI诹HMH3H]PHuXH}`He A_A^A]A\]H\$Ht$WHpHHL$PIAК$D$HL$PD\$@D$8$D$0H$LHD$($DNj։D$ O|$ht HL$`L\$pI[IsI_DL$ UATAUAVAWH@Hl$0H]@HuHH}PH2H3HED ̹3MDLwD;u=LMH-sDNj6i;t=6gD xDDD wD;&D;D;Cuh;uIEp]xDMXMҋΉ\$(H\$ hLcD;A~hHL;wYKL$Hw5HAH;w HHVH+H|$0H;HH;t D(HHH;M3HMlDMXMƺDd$(H|$ g;tLM`DHAgHOD9)u7DepHD;uIED`uh;uIEpA"u3U;t$LMXMƋЋΉ\$(H\$ PHH;tLHE`DMXMAAHD$ agH;tH誶HMH3H]@HuHH}PHeA_A^A]A\]H\$Ht$WH`HHL$@AI̗$D$HL$@D\$8D$0$D$(H$DLNjHD$ .|$Xt HL$PH\$pHt$xH`_ffLH+Irat6t  IȈHtf IfHt  IHMIuQMItH HHIuIMuI@ HIuIffffffffffffI sBH LT H HALQHD LT IHALQuIqffffHr  D @HuH@L LT L LQLL LT LILQLL LT (H@LILQLL LT LILQuIIq $fffffffffffIIrat6t HɊ IȈtHf Ift H IMIuPMItHH IHuIMuIHɊ IȈuIffffffffffffI sBHD LT H HALQHD L IHALuIsfffffHw H D @uH@LL LT LILQLL LT LILQLL LT H@LILQLL L LILuIIq $HSH HHI蒲HK色HK耲HK wHK(nHK0eH ]HK@THKHKHKPBHKX9HK`0HKh'HK8HKpHKx HHHHܱHбHıH踱H謱H蠱H蔱H舱H|HpHdHXHLH@H4H(HH H(H0H8H@HH԰HPȰH [HtBSH HH H; t袰HKH; t萰HKH; t~H [HSH HHIH; ttUHK H; jtCHK(H; `t1HK0H; VtHK8H; Lt HK@H; BtHKHH; 8tH [@SH0LHt HtMu,D8Hd$ E3E333ɉLH0[À9t HHuHuAAIHtHuHuAڬ"3@SH0MMuHuHu 3?HtHtMuD Mu,D菬Hd$ E3E333ɉ裫H0[LLIuAIAI„t,Iu$AIAI„t ItIuMuE MfIu DDA@P"m@SH0Ht HtMu,D׫Hd$ E3E333ɉH0[LAIAItHuHu莫"3ffH+LtB :uVHtWHuIJ ffwHJ H;uI~LHHI3ItHH3ffft't#HttHtt tu3HHffH+Ir"tf: u,HIuMIuMt: u HIuH3ÐIt7HH; u[HAH;D uLHAH;D u=HAH;D u.H IuIMItHH; uHIuIHHHH HHH;H\$WH HcAHT$8 Hu蹩 HWT$8LD$H H;t2˽Ht(HHtH ѩH;t諽HtHHH 蒽HtDMIH3H\$pHl$xH@A^A]A\_^H8x ~ u1 #蛥Hd$ E3E333谤H8H8Hu&jHd$ E3E333HLH Ǩ3XH8̹鶋Ht Ht t_H$VHL$03AEH$3HD$@HD$0D$0@HD$ H$HD$(VHL$ nVhHHXHhHpHx ATAUAVHPLHHHEMFMtMuMu*;Hd$ E3E333P|$HEt A|A$A.LD$03I^A ~LD$0@ͺ达LD$0I@@Ht@+H뾋$@-u@+u@+HESAIA$?Eu(@0tA 8;xt ;XtA&A Au@0u;xt;Xu@kHM@3҃AD@EJAt @̓0At,E@<w A;sA;r"u;vMuH@uMIE3YA@+H둽@u@u:ƃtwu';v#聢"@t @$MtI]@t߀|$Ht HL$@MtMu@8|$Ht HD$@3L\$PI[ Ik(Is0I{8IA^A]A\H83EL‰D$ H9u H ґ3QH8H\$WH HcHtYHcu @u ;u@`tHH;tHTu mS3ۋLHHAHH MkXBDt b3H\$0H _H\$Ht$ L$WATAUH0Hcكu 38 3;;eHLIL-fHkXKDL0u+賠8茠 H|$ E3E333袟aKDD0t I )P8) H|$ E3E333?H\$`Ht$hH0A]A\_@SH AHt"AtHIbc3HHCCH [HhHH3HD$P=fL$@tfH hHu H VHHd$ LL$DHT$@AR=MUQxu}%5RHd$8Hd$0HD$HLD$@A3D$(HD$ QH ɓHt0Hd$ LL$DHT$HD:RtfD$@HL$PH3艂HhH\$Hl$Ht$WHP3IHHH;tL;t @8*uH;tf)3H\$`Hl$hHt$pHP_HL$0IJL\$0A9ku%H;tf@8l$Ht HD$@HT$0;HL$0D A~0A;|+IH;LǺ D$(H\$ PHL$0;uHc H;r(@8ot" @8l$H4HL$@#蒝*@8l$Ht HD$@AH;AQLljD$(HD$0H\$ HeP;E3H\$Hl$Ht$WH Hڅxi; saHcH-HHHkXHDH<u==u'tt u )PHDH3蟜 贜 H\$0Hl$8Ht$@H _H\$Hl$WH xs; skHcH- HHHkXHDDtGH<t@=;u)tt u 3xOHDH 3  H\$0Hl$8H _H8uޛ 趛 ]x1; Ds)HcH PHƒHHkXHDtH,蔛 lHd$ E3E333 聚HH8HHXHpHxL` AUH HcLIL-֟HkXKt|3 u3O J|3 uHL3o#D3 tKLHL'LH\$0Ht$8H|$@Ld$HH A]HcH NHƒHHkXHHLH%KH\$H|$Ld$AUAVAWH@IEE3AL$ 诠uA 聡3|$$Hߞ@LcJHH\$0JH H;C{ u; ({ u HKOu DpDt$(C Eu HKKCt HKJHIEu?CL#L+K+H.袋.HLIIH?LDDl$ HXH\$0IH E;lj|$$H˝XJHD$0HttHcLIЃ I H H;s@L @ ` HXHD$0|$ HcHHHkXIDHADD|$ ŞAH\$`H|$hLd$pH@A_A^A]H8HI}H3HD$(LD$ AD$&nKu HL$ HL$(H3{H8@USVWATAUAVAWHHl$@H|H3HE0LE!3IH}LMDDH];HUI;}HUAI;}uzEAt`AHcHH;HL HwlHAH;w HH8H+H\$@Ht<NHxELúAω|$(H|$ Jo37VHHtH3HtLc3HMtLEE̺Aω|$(H\$ IE3A;M;t;L|$8L|$0D$(DL3ALt$ IA;ID9}u,L|$8L|$0DL3AD|$(L|$ HA;tWHc׹HI;tBL|$8L|$0DL3A͉|$(HD$ HA;u HMI AtHMHK9u+HHM0H3lyHeHA_A^A]A\_^[]3DB yLMt;tDD;~2}r8]HEt8XtA:r:HvH89~+}r8]HEt8Xz:r:HvH8MǺ A͉\$(H\$ >LcD;I~d3HBIHrUKL6Hw.HAH;wIH5-H+Ht$0H;HH;tHHH;pDMAADt$(Ht$ O>;DLǺ A͉\$(H\$ &>LcD;~g3HBIHrXKL$Hw1HAH;w HHg,H+H|$0H;t)HH;tHHH;tVDLEADd$(H|$ =;tUMELDd$(H|$ =HO9u軌HN9u誌HLD;u IDPDUDD;uID`AD;A;teLMNjẢ\$(H\$ HH;LELAẢ\$(H\$ LH;u H LLLEDUMD$(LD$ M<H;tHŋI轋HM(H3lHe8A_A^A]A\_^[]H\$Ht$WH`HHL$@IAlD$$HL$@D\$8D$0H$HD$($LDNj։D$ |$Xt HL$PH\$pHt$xH`_H\$Ht$WH`HHHL$@II[lHu8\$Xt HD$P3Hu=;Hd$ E3E333P|$Xt HD$PHtHwHD$@PuLL$@LHH>@HL$@LΉD$8\$0AH|$(\$ u複y|$Xt HL$PH\$pHt$xH`_H\$T$UVWATAUAVAWH0E3LAI;u$CE3E333Ll$ YL!M;=IHHD$pI;L;D8hH5~}EAH;5x}upHAI;u IUHL9.uHc蠇HHI;u 'mHHHHHEI;uL/H|$pl$xH5|I;A;t9L9-|t0fA;tj@H$H0A_A^A]A\_^]E;t3߹蔆H|I;tL(L9-|urH|I;tL(H5l|HI;tHHA+LcHt?HMIuHA|=A8\HHHuH5|H+HE3A;L9mHcHLևE;tfL9ltHLHHHDHL9luHcHH;H {AI;t|sH5{H+HrLdM.]E;A;}ߍG;LcHL;nH蛆I;XHcL$LlM.H{D9l$xIHHOHI;tlIMHHPHA;tE3E333Ll$ +HHI+HT$pD*HE;IE7A;u*HoE;t IbM.IPM.H\$Ht$WH0HHtF$HDBo L{P\jz*@R@^@g@H@@failed to get exit code from process. failed to create process. %s%sCould not exec %sCannot find Python executable %s #!python.exe#!Cannot open %s -script.pyCorExitProcessmscoree.dll(null)(null)EEE50P( 8PX700WP `h````xpxxxx8@8@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=runtime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program:  EEE00P('8PW700PP (`h`hhhxppwpp ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAUSER32.DLLSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecCONOUT$.com.exe.bat.cmd.\SystemRoot t d T 42 4 pP  0 d T 4 2p) 4RH p`P0bp`0*20 4R p ` Pr0042 p d4rp*C'L(  4 Rp**** d T 4 rpt42   20dT42p) 4dZ p`P  t d 4 *99h<  0 t dT42 d T 42pd 4R *A#B  t d R*gCC/.CC_td42td42*EEx  4 2pd 4 r p  $d4 pp  4 2p*MwM4r p`P8  t d 4R*QGR20*V-V  4 2p*VV W1W42p*XXXYdT pd T42p t 4R t d 42*__ B*Gaza za B*aaa d4r p*@eeA2P b*Tfcf]cfBd T 4Rpd 4 R p t d T 4 rB  4 2p4p ` Pbd42 p  4 Rp4 R p*Wuau/ 4qf p`P  d4 Rp*}}RP4 R p `*~~  4 p dT4p- Etd4C PXd4 p1 5#td43r P82 0  20 d4 Rp*6i T4r p ` tdT4d 4 Rp*cPdT 4 pdT42pT42 p  td42*ˣ t 4 r*Eb(' EC p`0Ppt d 4R*Q9  T pdT4pT 4 r p$ 53 p`0PXd4 p 4R p ` Pd 4R p  p ` P 0 d4 Rp*l! !4!p`PrPp`*O|0R0 t d T 424  p P 0#  p`P0xd 4  pHdz"*<J\j|&:Nh|.DP\l&4N^t,>P\jz*RGenerateConsoleCtrlEventGetExitCodeProcesshWaitForSingleObjectCreateProcessASetConsoleCtrlHandlerGetModuleFileNameAKERNEL32.dllEnterCriticalSectionLeaveCriticalSectionGetModuleHandleW%Sleep GetProcAddressExitProcesspGetCommandLineARtlUnwindExSetHandleCount;GetStdHandleGetFileType9GetStartupInfoADeleteCriticalSection1TerminateProcessGetCurrentProcessBUnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentRtlVirtualUnwindRtlLookupFunctionEntryRtlCaptureContextGetLastErrorHeapFreeHeapAlloc\GetCPInfoSGetACPGetOEMCPIsValidCodePageEncodePointerDecodePointer?FlsGetValue@FlsSetValue>FlsFreeSetLastErrorGetCurrentThreadId=FlsAllocWriteFileLoadLibraryAInitializeCriticalSectionAndSpinCountKFreeEnvironmentStringsAGetEnvironmentStringsLFreeEnvironmentStringsW~WideCharToMultiByteGetEnvironmentStringsWHeapSetInformationHeapCreateNQueryPerformanceCounterfGetTickCountGetCurrentProcessIdOGetSystemTimeAsFileTimeHeapReAllocGetConsoleCPGetConsoleModeBFlushFileBuffersLCMapStringAMultiByteToWideCharLCMapStringW=GetStringTypeA@GetStringTypeWGetLocaleInfoASetFilePointerHeapSizeCCloseHandleWriteConsoleAGetConsoleOutputCPWriteConsoleWSetStdHandleyCreateFileARCompareStringAUCompareStringWSetEnvironmentVariableAbReadFileSetEndOfFile#GetProcessHeapGetFileAttributesAE@E@2-+] f(@@@         ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ(@`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~@C@-@@-@@-@@-@@-@P2@@@@0@P-@P-@(@X@(@ @ `@(@@@@h@@@@@@@ @ @!@"P@x@@y0@z @@@@@@@@@@@@@ @@P@L@H@D@@@<@8@0@(@ @@@@@@@@@@@@@@@@@@@@@@@|@t@h@`@P@@@8@4@(@@@ 0@.@2@lB@lB@lB@lB@lB@lB@lB@lB@lB@P2@.pPSTPDT2@ 3@;Zx0Nm:Yw/Ml8@0@(@ @48 4xN8 P}xp AL p 7 8e hp p )  %p (O P!(!"|"i# l##@#$HX%% %% %% %'&P(&a&8 d&'8 '(\(?) @)***p *,,a-d---- -5.8...99<<< <=T=}>x >>p >?p ?N? P????@`@@@`@PAxPAA8 A@B@BB BC CCDDDE,EF FXF8 XFG G^Hx `HHD II IfJT hJJJL\ LMx M,N@,NP PR RRp R>T UU UMV lVVp VFW HWW8 WW W%Y< (YY YZp ZE\ H\m^ p^^p ^^ ^_ ``p `P`8 P``8 ``8 @aa aa aap acc5f PffP ff fgp g gp  gOhx Phjx jk kl lm mm mn Dnn nn@nCo@ p0r 0rDr Lrs ss srt|ttt uvu xu|( | ~L  ~    ɇ ̇b dΊ ЊYT0 ؐ8 ؐm0 pђԒE}8 @   p P P E Hʜ ̜ 8 О О   OP &,Pl\lE   GHp % ([\̮̮ۯְ$ذ4=T@UTXdw|xn| wxqt( & (<7 8D\pp]|h+ p| H H /H /UH _xH xH H H H H H  AH A]| ]H | | | H H H 0| 0|آpx TУ00ح8xȮ(8HXhxȯد0(8HPX`hpxȠРؠ (08@HPX`hpxȡСء 8PX`hpx`h (07070100062191000081a4000000000000000000000001513ff4b500000135000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.pyc ?Qc@s&dZddlZejdddS(s%(spec)riNs%(script_name)r(t __requires__t pkg_resourcest run_script(((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.pyts 07070100062152000081a4000000000000000000000001513ff4b500011000000000b600010002ffffffffffffffff0000005d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli-32.exeMZ@ !L!This program cannot be run in DOS mode. $G))))))R)()))Rich)PELM  ^$@P@,(@P @@.textM `.rdata` "@@.data+@.reloc@@Bt$t$@P jXUE H@uSV+W؍DjP4 3;ڋYY"wUU~gMEE\uE-"u%9U~uj\V; ueE 3\FUFE9]|9U~uj\V u"_F^[VWjVVt$WV _^U$t A3ʼnVW AGE_^[á At jP@Ã|$ujY3@UXVW3}쫫jD_3WEVPug jh"@}@EPEPVVVjVVuV @_^uh@-@PYY3ËEju A@EPu@uh@EUEH@uSVW3G+9}H~E P@u+F;uL|WQ^uh@S EH@u+9}~3E 43h@P E  H@u+G;}t|_^[]U$hA3ʼnSVWESPj@p@u+ƍ 8.tH;w퍽OGGu(@fjPqYYuPh@YYJSEPV)V|;EH@;st t ujEh@P t @}EPEPf0EPVKEu Vh@i]ÉE@jPu@3@ ;؍wE~EM4 E9]Y|䍅P3ۉC9Y~E4C;Y|&tWuuh@uWubP_^3[7Řjt$ t$ j h@3u3];;u :VVVVV39u ;tԉ]SYuC @uwS)Yttȃ *AAA$u)tt*AA@$tVVVVV(M9uu#SK EPVu SESW E EuLYøAá;AVj^u;}ƣ;AjP YY+AujV5;Ay YY+AujX^3ҹA+A  A|j^3ҹAW*At;tu1 BpA|_3^#=0 Ato!5+A YËUVuA;r"`Aw+Q$N Y V@^]ËUE}P$E H Y]ËE P@]ËUEA;r=`Aw` +P#Y]à P@]ËUME }` Qg#Y]à P@]ËUQeVEPu uK$ u9Et`t WM^̋T$ L$ti3D$ur=*Ate%Wr1كt +шuʃtt uD$_ËD$̋L$ WVSًt$|$u 't+t/uuatt7uD$[^_tuutu[^D$_Ét~Ѓ3‹t܄t,tt uĉ3҉3t 3uwD$[^_ËUuuuu ju %]ËUQQS3VW]9]t}M ;u9]uq9]tj9]u9]u`9]tY9]u9] uO9] tH9]$u>9](u>u3@8tHF;w>:u5;t}jujQ%&Fu9](uE;tu3]8tUP%YtFUVuVSP?YYt| ;u3@;u`3@ AF uNSW^^N 3_@[3^]ËU}t'Vu F tVf f&fY^]A @tyt$Ix  QP-YYu ËUVMEM >t} ^]ËUG @SVt2u,E+M}C>u8*uϰ?d}^[]ËUxA3ʼnES] Vu3W}u#u5M3PPPPPt `p F @u^V@ YAttȃ *AA$uttȃ*A@$g3;] C , If90t@@;u+(;u AI8t@;u+\@t2t ƅ-t ƅ+ tƅ Dž++ uSj p vYtuWSj0. tf~bPjEPFPF5u(9t MYuPY|tWSj tYtt `pM_^3[Ð)@'@'@Y(@(@(@(@$*@jThP@e3}EP@@Ej@j ^VuYY;*A5*A0@@ x@$@% @& x8@4@ *A;rf9} E;8X;E;|E[j@j YYtVM *A*A *@@ ``$@% @& `8@4@;rE9=*A|=*Ae~mEtVtQtKu Q<@t%uN@ uNhF P)YYt7F N@Cg5*A4@33@ËeEcËUEV3;uVVVVVE@^]ËUEP A]ËU(A3ʼnESjLjP(0 ,ffffffEMDž0IDžDžX@jT@(PP@u uj1YhL@PH@M3[(ËU5P A&Yt]j1Y]UE3;AtA-rHwj X]ËA]DjY;#]u@AÃuDAà ËUVMQY0^]h6@d5D$l$l$+SVWA1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35AWEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEt41E|@GE؃u΀}t$t N3 8VN V3 :FE_^[]EɋM9csmu)=*At h*A!tUjR*AM 0E 9X thAWӋ0E MH t N3 8N V3 :EHm09S RhAW0UVW3u0Yu'9T AvV$@;T Avuʋ_^]ËUVW3ju uE u'9T AvV$@;T AvuË_^]ËUVW3u u 1YYu,9E t'9T AvV$@;T Avu_^]ËUVW3uu u2 u,9Et'9T AvV$@;T Avu_^]j hp@utu=*AuCjYeV2YEt VP3YYE }u7u jYVj5t)A`@u \@PYjh@I3ۉ]jY]j_};=;A}W+A9tD@ tP{=YtE|(+A PD@+A4Y+AGE Ej7YËUSVuF Ȁ3ۀu@t9FW>+~,WPVeYPD ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVP EYY3^]jh@3}}jDY}3u;5;A+A98t^@ tVPVEYY3BU+AH t/9UuPJYtE9}utP/Yu E܉}F3uࡼ+A4VNYYE}EtE{jYjYËVW3X At~t WW&YhA|ܾHA_t ~uPӃhA|^[ËUE4HA@]j h@^3G}39t)AujhYYu4HA9tnj Y;u 3Qj YY]9u,hW YYuWY ] >WYE Ej (YËUEV4HA>uP"YujtY6@^]j h@hM3;v.jX3;E @u WWWWW3M u;u3F3ۉ]wi=*AuKu E;p*Aw7jLY}u5YEE_];tuWS6 ;uaVj5t)Ad@;uL9=)At3VYrE;P E3u jY;u E;t U}}M f$ffGfG fG0fG@fGPfG`fGpIuЋ}]U}E3+3+uF@8uE;t':t!.tG;} s.F G;} sF@8uG;} vElj"3_^[ËUuME MUTu}tMA#E3t3@}tMapËUjjuu ]ËUjjuj]ËUjuuu u?]ËU("A "A"A"A5"A="Af"Af "Af"Af"Af%"Af-"A"AE"AE"AE"A"A"A!A!A !AAAX@!Aj_$YjT@h@P@=!Auj;$Yh L@PH@-t"t t Ht3øøøøËVWh3FWP+3ȋ~~~  ~hA F+ο@Ou@Nu_^ËUA3ʼnESWPvh@3@;rƅ t.;w+@P j Rh CCujv vPWPjj*E3SvWPWPWv S CDSvWPWPhv SB$3EtLtL Ƅ@;rVDž3)ЍZ w Lр wL р A;r‹M_3[Oj h8@ AGptltwhuj Yj Yewhu;5At6tVp@uhAtVYAGh5AuVl@E뎋uj YËUS3SM$Au$Ax@8]tEMapEAD;FG;v}FF>uыuE}urlj{CgjC CAZf1Af0A@@JuL@;vFF~4C@IuCC Ss3ȋ {95$AXM_^3[JjhX@M}_huuE;CWh Y؅Fwh#SuYYEuvhp@uFh=hAtPcY^hS=l@FpAj tYeC$AC$AC $A3E}fLCf E$A@3E=} LA@3E=}A@5Ap@uA=hAtPYASE0j Y%u hAtStYeEÃ=+AujVY+A3ËUSVu3W;to=HAth;t^9uZ;t9uPLAYY;t9uP@YYYY;tD9u@-P+P+Puj=At9uP>7CYY~PEAt;t 9uPY9_tG;t 9uPYMuVY_^[]ËUSV5l@W}W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P_^[]ËUW}SV5p@W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P^[_]Åt7t3V0;t(W8YtVE>YuAtVYY^3j hx@c/AFpt"~ltpluj -Yvj YeFl=pAiEEj }YuËUV5A5@օt!AtP5AЅt't@V @u VnYthd@P(@tuЉEE^]jYËUV5A5@օt!AtP5AЅt't@V @u VYth@P(@tuЉEE^]@V5A@u5%AeYV5A@^áAtP5%A;YЃ AAtP@ Aj h@t@V @uV4YEuF\@3G~t$hd@P(@Ӊh@uӉ~pƆCƆKCFhhAj nYevhl@E>j MY}E FlupAFlvlYE 3Guj 5Yj ,Y̋VW\@5AЋuNhjYYt:V5A5%AYЅtjVYY@N V[Y3W@_^ËVujY^jh@ uF$tPYF,tPYF4tPYFHN+I;N~WPu * EM F yM tt*AA@ tjSSQ7>#ƒt%FM3GWEPu {* E9}t N E%_[^ËUQQS]VW33};At G}rwj@Y4jv@Yu =AAhp@S %AW=8 t VVVVVh9%AVj=&A@u&hX@hV7 t3PPPPPV@YYu=Auh)hYYËUQSVW5+A5+A}YY;+ߍCrwW>CY;sH;s;rPupYYuG;r@PuZYYt1P4Y+AuVY+AEY3_^[ËVjj V +A+AujX^Ã&3^j h@beuYEE E~ËUuYH]ËV@@W;stЃ;r_^ËV@@W;stЃ;r_^ËVW3@A6Y(r_^̋UMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDv} H ;r X;r B(;r3_^[]̋Ujh@h6@dPSVWA1E3PEdeEh@*tUE-@Ph@Pt;@$ЃEMd Y_^[]ËE3=‹ËeE3Md Y_^[]jh(@G@xte3@ËeE<`hY@Y4(AËUQQVSFV\tAW}S99tk ;rk ;s99u3t X]u3u `3@N`MM N`H hA=lA;}$k ~\d9=hAlAB߃ ;|]~d=u Fd^=u FdN=u Fd>=u Fd.=u Fd=u Fd=uFdvdjY~d`QӋEYF`[_^ËUE8(A<(A@(AD(A]ËUE tAV9Ptk u ;rk M^;s9Pt3]5@(AYj hH@:3}}؋] LtjY+t"+t+td+uDf}؅ua8(A8(A`w\]ZÃt<t+Ht~3PPPPP뮾@(A@(A<(A<(A D(AD(AEPEY3}9Euj9EtPY3Et tuO`MԉG`u@OdMGdu. hAM܋ lAhA9M}Mk W\DEnEuwdSUY]}؃}tjDYSUYt tuEԉG`uEЉGd3ËUEL(A]ËUEX(A]ËUE\(A]jhh@]eu u@E/EE3=Ëe}uj@eEEOËUE`(A]ËU5`(AlYtuYt3@]3]ËUE8csmu*xu$@= t=!t="t=@uC3]h~^@T@3Ã=+Au8V5< AW3u<=tGVYtujGWpYY= Atˋ5< ASBVRC>=Yt1jSBYYtNVSP|. t3PPPPP>u5< A%< A'+A3Y[_^5 A% AUQMS3VU 9Et ]EE>"u39E"FE<tBU PFYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#)Yt M E FM E  YtFU FVtBU ME^[t ËU S3VW9+Auhh(AVSl)A@+A5( A;tE8uuUEPSS} E =?sJMsB;r6PsY;t)UEPWV}E H A5 A3_^[ËUp)A SV5@W33;u.֋;t p)A#\@xu jXp)Ap)A;u֋;u3f9t@@f9u@@f9u5@SSS+S@PWSSE։E;t/PYE;t!SSuPuWSSօu uY]]W@\t;u@;r8t @8u@8u+@PE2Y;u V@EuVW+ V@_^[ËU39EjhP@t)Au]3@*A]ËUAeeSWN@;t t УA`VEP@u3u@3@3@3EP@E3E3;uO@ u 5A։5A^_[ËUEu 3]V3;|;*ArVVVVV ^3ȃ *AD@^]áA39x)A̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+ËUSVu 3W};u;vE;t3E;tvj^SSSSS0@VuMcE9XfEf;v6;t;v WSV( d*Y8]tMap_^[;t2;w,9j"^SSSSS08]yE`pmE;t8]%E`pM QSWVjMQS] p@;t9] ^M;t\@zD;g;_WSVQ OUjuuu u|]ËUu M*EMA%}tMapËUjuYY]VD$ u(L$D$ 3؋D$d$ȋd$Gȋ\$T$ D$ ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^%*ASVWT$D$L$URPQQhh@d5A3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhC1C1d_^[ËL$At3D$H3蒵Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëj_033333USVWjjhh@QQ_^[]Ul$RQt$ ]j h@qeu;5p*Aw"jYeVb YEE E}jYËUVuSW=d@=t)Autjh=YY*Aut3@Pu VSYuuFVj5t)A׋؅u.j ^9)AtuYtu{>070_[V{Y# 3^]jh@X]uu Yu u SSY=*A3}jgY}S6YE;;5p*AwIVSP t]5V YE;t'CH;rPSu:$SESP 9}uH;u3Fu u VW5t)Ad@E;t CH;rPSu#SuE.}u1uFu VSj5t)A@u ]jYË}9=)At,VY9}ul\@POY_9}th quFVSj5t)A@uV9)At4VYtvVY3 3 |u\@PYҋUM S3;v(j3X;EsSSSSS e3AMVW9]t u)YVuYYt;s+VjSH _^[]ËU h*Al*AkU+P r ;r3]ËUMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJM;v;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM DD )}uJM YJꍄ ED0E|)A |*A5@h@H SQ֋ |*A|)A P|)A@ |*A|)A@HC|)AHyCu `|)AxueSjp ֡|)Apj5t)A`@ h*A|)Akl*A+ȍLQHQP+E h*A;|)Avml*At*AE|)A=|*A[_^̡x*AV5h*AW3;u4kP5l*AW5t)A@;u3xx*A5h*Al*Ak5l*AhAj5t)Ad@F;tjh hW@F ;uvW5t)A`@뛃N>~h*AF_^ËUQQMASVqW3C}i0Dj?EZ@@Jujhy hW@upU;wC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[ËU MASVuW} +Q iDMOI;|9M]UE;;MIM?vj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M OL1?vj?_]][Y]YKYKY;YuWLML s}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN] K?vj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLML s}uοM 9DD }uNM yN ED3@_^[ËUh*AMkl*AMSI VW} M 3U t*AS;#U# u ];r;ul*AS;#U# u ];r;u[ {u ];r;u1l*A {u ];r;u؉]u3 S:YKC8tt*ACUt|D#M# u)eHD9#U# uEUiDMLD3#u#Mj _G}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uy>u;|)AuM; |*Au%|)AMB_^[ËUSVuW3;u褾WWWWW, BF t7VV(V袼P'}F;t PY~~ _^[]j h@膾M3u3;;u!WWWWW詽 F @t ~ E艾V膠Y}V*YEEՋuVԠYËU7*A3ʼnEE V34809uu3;u'藽0}VVVVVSW}4*ANJX$('tu0Mu&.30VVVVV蚼C@ tjjjubuYD@l39HP4 @`39 tP@43<9EBD'g (3  ǃx8tP4UM`8jEPKPYt:4+M3@;j@SP;( CDjS@P( 3PPjMQj@QPCD@\juMEMF9YtH9Ew D u+ȃ+N8]tMap^[ËUju uU ]ËUS3Vu9]u;u9] u3;t9] wj^SSSSS0聳9]uW};udzj^SSSSS0P(uMrE9XuuWu V L}U u@G:tJu@G:tJtMu9]u@;8t}u5x};rEPEPYYtM9us+E}uZE v:|};r!EPEP۾YYtM9usE +Mt\8]tE`pjPX覲j"^SSSSS0/8]tE`pd+΃|Mx};rEPEPXYYtM9us+EtCj*X8]tMap8]tE`p3_^[ËUEt8uPgY]ËUA3ʼnESV3W9)Au8SS3GWhd@hS@t=)A\@xu )A9]~"MEI8t@;uE+H;E}@E)A;]9] u@E 5@39]$SSuuPu ֋;~Cj3Xr7D?=w#;tP Y;t E]9]>Wuuuju օ5@SSWuu u֋ȉM;E t)9];MuuWuu u;~Ej3Xr9D =w";tjPIY;t 3;tAuVWuu u@t"SS9]uSSuuuVSu @EVYuEYY]]9]u@E9] u@E u YEu3!;E SSMQuPu = E;tԋ5@SSuPu u։E;u3~=w8=w!;tP3Y;t 3;tuSW诒 uWuuu u։E;u3%uEuPWu uu#uWYuuuuu u@9]t uYE;t 9EtPԱYƍe_^[M3ËUuMu(Mu$u uuuuu ( }tMapËUQQA3ʼnE)ASV3W;u:EP3FVhd@V@t5)A4\@xu jX)A)A;]9]u@E5@39] SSuu Pu֋;~<w4D?=w;tPOY;t ؅ti?PjS͐ WSuu juօtuPSu@ESEYu39]u@E9]u@Eu@Yu3G;EtSSMQu Puh;t܉u uuu uu@;tVկYǍe_^[M3ËUuMu$Mu uuuuu }tMapËUVuvev]v UvMvEv=66v .v$&v(v,v0v4vv8v<@v@vDۮvHӮvLˮvPîvT軮vX賮v\諮v`裮vd蛮vh蓮vl苮vp胮vt{vxsv|k@]RG<1&,^]ËUVut5;HAtP̭YF;LAtP躭Yv;5PAtV設Y^]ËUVut~F ;TAtP膭YF;XAtPtYF;\AtPbYF;`AtPPYF;dAtP>YF ;hAtP,Yv$;5lAtVY^]ËUES3VW;t} ;w萩j^0SSSSS 9M u H9U t @ff;u9M u8]tMap8]tE`p3^[ËUju u2 ]̍B[Í$d$3D$ST$t :tτtQu WV ؋ ~333ƃu%t%uu^_[3ËB:t6t:t't:tt:tt^_B[ÍB^_[ÍB^_[ÍB^_[%@UUS3;u{SSSSS${ 8tߋM ;t؋;t8tSQR []ËUUVujXEU;uS{ 8{ S3;|;5*Ar'){{SSSSS zQW<*AƊHuzz jwP];9] t7@$EHjYtHuШtUE EШu!wz]zSSSSSy4M;rEuj|YE;u%z -zhjSSu|D(ET,AHttI tl9]tg@MED 8]tNL% tC9]t>@M}ED% u$L& t9]t@MED& SMQuP4,@{M;p;MgMD};t M9 u ]EÉ]E;M<< t CAMEH;sA8 u AAM uEmEjEPjEP4,@u \@uE}t?DHt} t ML%;]u} tjjju} t CE9EGD@uC+E}EK xC3@;]rK @AtAu w*zA;u@AHt$CQ| T%Cu T&C+ؙjRPuE+]Pu Sujh@Eu4\@PuwYME;E tPzYEEE3;EL0;tMf9 u ]EÉ]E;Eff tf CC@@EM;sHf9 u Ej MEjEPjEP4,@u \@u[}tUDHt(f} tj XfMLML%D& *;]uf} tjjjuf} tj XfCCE9Et@uffCC+]]\@j^;uu u0imY]\3_[^jh@uEuu ~u 3;|;*Ar!pu0Vu VVVVVtɋ*A L9t;MAu"u0uPYuD8tuu u~ Et t0ME E>uuiYËU0S3EVW]]E ]t ]E E]EP Yt SSSSSrMu@u9EtM+útGHt.Ht&'t tj^SSSSS0sUtuE@}EjY+t7+t*+t+t@u9}EEE E]E#¹;;t0;t,;t==@E/E&E=t=t`;EEEt  A#MxE@tMMMt } tME릨tMurrE=@SuuEPuuu ׉EumM#;u+Et%eSuEuPuuu ׉Eu46*AD0 \@P/rYrtu<@;uD6*AD0 \@VqYu@;uq 룃uM@ uMu64Ѓ*AYYMLЃ*AD$ MeHMEtqjW6 E;u*q8tM6jEP6] u}uERP6 ;tSS6F ;tE0@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u E]EE@]E#=@=tw;E;yvv0fE3H&HREEjSS68 tSSS6'#ƒjEP6/ utk}uYEE;bPjSS6 CSSS6#ƒE%=u6Ynj^0d=uSj6X EASS6= EEE+PD=P6 9}ۋ *AD$2M0 *AD$M ʈ8]u!Etȃ *AD }#;u|Etvu@SuEjPuWu @u4\@Pmȃ *AD 6Y6 *A_^[jh@mM3u39u;u]mVVVVVlruuj@u uEPEEE};t< m839ut+9utEM*AD uYËE_mËUQQV39uulVVVVVAlJ9u tuEPEPuu |tuuujUuouo^ËUSW}3ۉ};u 9lSSSSSk8t܋E ;tՋ;t8tVj\W j/W ;;j:W=YY;usWIjV=n };ht@VWk t SSSSSjuVW t SSSSSiw} ;t;vMj.Vh YYt,Su YYuu u` Eu薙jVm E;uuVP t SSSSSPiuQ}YjEE+EAE0VWr t SSSSS iSu] YYtm}A}tjuMu u Eum}Y9}t umYE^_[ËUSVW3jSSu]]E#ƒUtYjSSuz#ʃtAu }+;Sj4@Pd@Eui i_^[huYYE| ;rPuu譫 t6+xӅwϋuuuFYYuj4@P`@3Gi8u *i u;q|;skSuu u#ƒDuYP0@HE#‰Uu)h h\@u#uSuuu#ƒ3UVuV"Yuih MWuju P@u\@3t PYhY*AD0 _^]ËUS] Vu*A 0A$Wy@tPtBt&tu=I L1$⁀'I L1$₀a I L1$!_^[u]%@]ËUEV3;u>gVVVVVfjX d*A3^]ËUhES3W]];tt~~ u EEE8ffSSSSS_f@8uH8t 8uVjD^VESPTJu5*A ;t+Fȋ *A8\uNH;u;@234kfEjPhYYE;;0E̍H|0]~9EЃ*APuEA9u|ʋE8]t,H3ҍD0}j_;} BAEeEPEPSuujSSuu  @\@űhY;u WeYX}uS$R5@9]uju@EPu@]}uu]u֋e ^_[ËU@A3ʼnEM ESVWx@}fMԋM3ۉMMjEȋM]܉]]^P2tY;ujVuguYY;u#Ed d/EPESP ;tuqSSSSSbbEP蹒GGY}9]tu褒Y}ЋE;tOj_P舒|Y;u< A;uC< A;u5u6MBgEYeE}ȋ6;FU]8t(=tVYML< A4M:u܋MM+8Xt-x:u'x=u!PݑYM؍D < AE8=t΋E+Eu}EP謑PEP6tM9u}jWeuYYM;26[fYb bMiEP+EPV t SSSSSa7t6PE+EPVI t SSSSS`7 FY;uËE^09]}؋E+Q < AQV+} }6EM7+PVѹ t SSSSSi`7kYt9u9]ug}ЍEPWV藹 t SSSSS/`h`@WV t SSSSS`9]tuWV t SSSSS_;t E;0uF< A;tPdY< A9]t udYE܋M_^3[HËUV39uu$2a0aVVVVV`jXUE uu8@u\@PaY`(u"tE t`` 3^]ËUSu3ۍM]\HM;u(`SSSSS `8]tE`p3qVu9^uu QjYY8]tWMapNWD7t!A:t 9E uAE 9]9E uMA:u_8]tE`pE^[ËUju u2 ]ËUS39]u3uMGE9Xu&uu u 8]mMapaW};t9] u.s_SSSSS^8]tE`p%VfMGDMtC:u]Xff fGMf;pr f;pwfp6f;pr0f;pw*fp$U At fʉMfuM f E DMtEU :u]Wff E ɉMf;Hr f;HwfH6f;Hr0f;Hw*fH$U At fʉMfMf;u!f;t 9]8]tE`p3^_[H8]tMapUjuu u#]UW}3كE 8t3_*BZnv*Fdx,6F\hx*8Rbx(:L^p|(8J@@@J@W@^@@y@failed to get exit code from process. failed to create process. %s%sCould not exec %sCannot find Python executable %s #!python.exe#!Cannot open %s -script.pyCorExitProcessmscoree.dll(null)(null)EEE50P( 8PX700WP `h````xpxxxx!A"A  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=EncodePointerKERNEL32.DLLDecodePointerFlsFreeFlsSetValueFlsGetValueFlsAllocruntime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program:  EEE00P('8PW700PP (`h`hhhxppwpp ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAUSER32.DLLSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecCONOUT$.com.exe.bat.cmd.\SystemRootHA@6h@"@$@$@4@ 4@9@:@<@;@=@>@?@@@ F@I@KM@O@O@RQ@^Q@X@Y@Y@Z@!Z@x]@^@^@i@*k@/x@?@ @@@D@@@@<@X@@T*BZnv*Fdx,6F\hx*8Rbx(:L^p|(8JQGenerateConsoleCtrlEventGetExitCodeProcessdWaitForSingleObjectCreateProcessASetConsoleCtrlHandlerGetModuleFileNameAKERNEL32.dllEnterCriticalSectionLeaveCriticalSectionGetModuleHandleW!Sleep GetProcAddressExitProcessoGetCommandLineASetHandleCount;GetStdHandleGetFileType9GetStartupInfoADeleteCriticalSection-TerminateProcessGetCurrentProcess>UnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentGetLastErrorHeapFreeHeapAlloc[GetCPInfoInterlockedIncrementInterlockedDecrementRGetACPGetOEMCPIsValidCodePage4TlsGetValue2TlsAlloc5TlsSetValue3TlsFreeSetLastErrorGetCurrentThreadIdWriteFileLoadLibraryAInitializeCriticalSectionAndSpinCountJFreeEnvironmentStringsAGetEnvironmentStringsKFreeEnvironmentStringsWzWideCharToMultiByteGetEnvironmentStringsWHeapCreateWVirtualFreeTQueryPerformanceCounterfGetTickCountGetCurrentProcessIdOGetSystemTimeAsFileTimeRtlUnwindHeapReAllocTVirtualAllocGetConsoleCPGetConsoleModeAFlushFileBuffersLCMapStringAMultiByteToWideCharLCMapStringW=GetStringTypeA@GetStringTypeWGetLocaleInfoASetFilePointerHeapSizeCCloseHandleWriteConsoleAGetConsoleOutputCPWriteConsoleWSetStdHandlexCreateFileARCompareStringAUCompareStringWSetEnvironmentVariableAhReadFileSetEndOfFile#GetProcessHeapGetFileAttributesA+A+AN@D"@l@\@         ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZhA`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~l@CAAAAAHAh@@p@AAAhA@@ @ @@@@\@$@@@@d@D@@ @!@"@x@y@z@@@@@@@@@@@@@x h@j@@@@@@@@x@p@h@\@P@H@<@8@4@0@,@(@$@ @@@@@ @@@@@(@@@@@@@@@@@|@p@ A.DA)A)A)A)A)A)A)A)A)AHA. pPSTPDTAA;Zx0Nm:Yw/Mll@d@\@T@x133_3h33333334L4444!5k5}55[66%7,7N7U777777 88"818=8J8n888888999B9q99==>>#>>> "0+0X0s0y0000 11%10151E1O1V1a1j111111112+2U2Z2e2j2293F3S3x3333333 444U4Z4a4g4 55S66797777;<===?0111111111122O22222 393z33344n44R5\5i5555556!6Q6n667777+8V8_8k8888889B9K9W9p999999:+:R:_:d:r:M;p;{;;;4<;P>>>>?@ 0U2[2a2g2m2s2z222222222222222223 33 3&3,3B3I3334x55555555/6:6D6]6g6z666 77777^8}8889#9>9F9N9e9~99999999:':J:;9;;;>'>.>F>R>X>d>s>y>>>>>>>>>>>>? ?0?E?k?????P 00>00001%1o1v1111111111111111112 2222(2>2I2N2Y2^2i2n2{222222244*5a5y55555566.6S6x666667 77777798>8_8d88H9M9_9}999:7:B:c::::;;;;;;; P>]>>>>>?!?q?|????`U1f1n1t1y111122)252B2I22223-3O3T3b3q333333333#4P4c4n4,6J6w77788889>9^9999":Z:::;";F;i;;;;;<<>>>>???)?4?F?Y?d?j?p?u?~????????????pT00 00"0(0B0S0Y0j00k4w444 5O5"7-7577J88c99s:::]>s>>>p???L0x00004$414=4G4O4Z444Q56$66s7788$8.868C8J8z899;;;;;;<#<5/?H?O?W?\?`?d???????????? >0D0H0L0P000000001;1m1t1x1|111111111112223F3u3%4}444444444444555#515q5555556V666667777Q8]8888Y;`;;;;;< <<<=$>(>,>0>4>8><>@>>>>>>>9?C?[????0000000001 11:11M22223?3O3j3333,4H44444435E555566T66667"7888;;;;;;;;;; '>>>??\+0h0002s333 4424D444777 8&818H8m889U:I;;6<=<<<=H==== >>q???,v0~00001122q223I44455L1P1T1X1\1h1l122d445(5D5H5d5h5555556,606P6p66666677 7<7@7`7|777778 8@8`8888889(9002229::;; ;0;T;`;d;h;l;p;x;|;;;;;;;;;;;;;;;;< <<<$<,<4<<<@T>????07070100062182000081ed000000000000000000000001513ff4b500001841000000b600010002ffffffffffffffff0000005d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/depends.pyfrom __future__ import generators import sys, imp, marshal from imp import PKG_DIRECTORY, PY_COMPILED, PY_SOURCE, PY_FROZEN from distutils.version import StrictVersion, LooseVersion __all__ = [ 'Require', 'find_module', 'get_module_constant', 'extract_constant' ] class Require: """A prerequisite to building or installing a distribution""" def __init__(self,name,requested_version,module,homepage='', attribute=None,format=None ): if format is None and requested_version is not None: format = StrictVersion if format is not None: requested_version = format(requested_version) if attribute is None: attribute = '__version__' self.__dict__.update(locals()) del self.self def full_name(self): """Return full package/distribution name, w/version""" if self.requested_version is not None: return '%s-%s' % (self.name,self.requested_version) return self.name def version_ok(self,version): """Is 'version' sufficiently up-to-date?""" return self.attribute is None or self.format is None or \ str(version)<>"unknown" and version >= self.requested_version def get_version(self, paths=None, default="unknown"): """Get version number of installed module, 'None', or 'default' Search 'paths' for module. If not found, return 'None'. If found, return the extracted version attribute, or 'default' if no version attribute was specified, or the value cannot be determined without importing the module. The version is formatted according to the requirement's version format (if any), unless it is 'None' or the supplied 'default'. """ if self.attribute is None: try: f,p,i = find_module(self.module,paths) if f: f.close() return default except ImportError: return None v = get_module_constant(self.module,self.attribute,default,paths) if v is not None and v is not default and self.format is not None: return self.format(v) return v def is_present(self,paths=None): """Return true if dependency is present on 'paths'""" return self.get_version(paths) is not None def is_current(self,paths=None): """Return true if dependency is present and up-to-date on 'paths'""" version = self.get_version(paths) if version is None: return False return self.version_ok(version) def _iter_code(code): """Yield '(op,arg)' pair for each operation in code object 'code'""" from array import array from dis import HAVE_ARGUMENT, EXTENDED_ARG bytes = array('b',code.co_code) eof = len(code.co_code) ptr = 0 extended_arg = 0 while ptr=HAVE_ARGUMENT: arg = bytes[ptr+1] + bytes[ptr+2]*256 + extended_arg ptr += 3 if op==EXTENDED_ARG: extended_arg = arg * 65536L continue else: arg = None ptr += 1 yield op,arg def find_module(module, paths=None): """Just like 'imp.find_module()', but with package support""" parts = module.split('.') while parts: part = parts.pop(0) f, path, (suffix,mode,kind) = info = imp.find_module(part, paths) if kind==PKG_DIRECTORY: parts = parts or ['__init__'] paths = [path] elif parts: raise ImportError("Can't find %r in %s" % (parts,module)) return info def get_module_constant(module, symbol, default=-1, paths=None): """Find 'module' by searching 'paths', and extract 'symbol' Return 'None' if 'module' does not exist on 'paths', or it does not define 'symbol'. If the module defines 'symbol' as a constant, return the constant. Otherwise, return 'default'.""" try: f, path, (suffix,mode,kind) = find_module(module,paths) except ImportError: # Module doesn't exist return None try: if kind==PY_COMPILED: f.read(8) # skip magic & date code = marshal.load(f) elif kind==PY_FROZEN: code = imp.get_frozen_object(module) elif kind==PY_SOURCE: code = compile(f.read(), path, 'exec') else: # Not something we can parse; we'll have to import it. :( if module not in sys.modules: imp.load_module(module,f,path,(suffix,mode,kind)) return getattr(sys.modules[module],symbol,None) finally: if f: f.close() return extract_constant(code,symbol,default) def extract_constant(code,symbol,default=-1): """Extract the constant value of 'symbol' from 'code' If the name 'symbol' is bound to a constant value by the Python code object 'code', return that value. If 'symbol' is bound to an expression, return 'default'. Otherwise, return 'None'. Return value is based on the first assignment to 'symbol'. 'symbol' must be a global, or at least a non-"fast" local in the code block. That is, only 'STORE_NAME' and 'STORE_GLOBAL' opcodes are checked, and 'symbol' must be present in 'code.co_names'. """ if symbol not in code.co_names: # name's not there, can't possibly be an assigment return None name_idx = list(code.co_names).index(symbol) STORE_NAME = 90 STORE_GLOBAL = 97 LOAD_CONST = 100 const = default for op, arg in _iter_code(code): if op==LOAD_CONST: const = code.co_consts[arg] elif arg==name_idx and (op==STORE_NAME or op==STORE_GLOBAL): return const else: const = default if sys.platform.startswith('java') or sys.platform == 'cli': # XXX it'd be better to test assertions about bytecode instead... del extract_constant, get_module_constant __all__.remove('extract_constant') __all__.remove('get_module_constant') 07070100062155000041ed000000000000000000000002513ff74300000000000000b600010002ffffffffffffffff0000005a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command07070100062158000081ed000000000000000000000001513ff4b5000009ad000000b600010002ffffffffffffffff0000006300000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyimport distutils, os from setuptools import Command from distutils.util import convert_path from distutils import log from distutils.errors import * from setuptools.command.setopt import edit_config, option_base, config_file def shquote(arg): """Quote an argument for later parsing by shlex.split()""" for c in '"', "'", "\\", "#": if c in arg: return repr(arg) if arg.split()<>[arg]: return repr(arg) return arg class alias(option_base): """Define a shortcut that invokes one or more commands""" description = "define a shortcut to invoke one or more commands" command_consumes_arguments = True user_options = [ ('remove', 'r', 'remove (unset) the alias'), ] + option_base.user_options boolean_options = option_base.boolean_options + ['remove'] def initialize_options(self): option_base.initialize_options(self) self.args = None self.remove = None def finalize_options(self): option_base.finalize_options(self) if self.remove and len(self.args)<>1: raise DistutilsOptionError( "Must specify exactly one argument (the alias name) when " "using --remove" ) def run(self): aliases = self.distribution.get_option_dict('aliases') if not self.args: print "Command Aliases" print "---------------" for alias in aliases: print "setup.py alias", format_alias(alias, aliases) return elif len(self.args)==1: alias, = self.args if self.remove: command = None elif alias in aliases: print "setup.py alias", format_alias(alias, aliases) return else: print "No alias definition found for %r" % alias return else: alias = self.args[0] command = ' '.join(map(shquote,self.args[1:])) edit_config(self.filename, {'aliases': {alias:command}}, self.dry_run) def format_alias(name, aliases): source, command = aliases[name] if source == config_file('global'): source = '--global-config ' elif source == config_file('user'): source = '--user-config ' elif source == config_file('local'): source = '' else: source = '--filename=%r' % source return source+name+' '+command 0707010006217b000081a4000000000000000000000001513ff4b6000018dd000000b600010002ffffffffffffffff0000006500000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyc ?Qc@sddlZddlZddlmZddlmZddlmZddlTdddd gZd d Z e d Z defd YZ d e fdYZ dS(iN(tCommand(t convert_path(tlog(t*t config_filet edit_configt option_basetsetopttlocalcCs|dkrdS|dkr>tjjtjjtjdS|dkrtjdkr_dpbd}tjjtd |St d |d S( sGet the filename of the distutils, local, global, or per-user config `kind` must be one of "local", "global", or "user" Rs setup.cfgtglobals distutils.cfgtusertposixt.ts~/%spydistutils.cfgs7config_file() type must be 'local', 'global', or 'user'N( tostpathtjointdirnamet distutilst__file__tnamet expanduserRt ValueError(tkindtdot((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyR s    c Csddlm}tjd||}|j|gx+|jD]\}}|d krtjd|||j|qF|j |stjd|||j |nx|jD]\}}|d kr3tjd||||j |||j |s_tjd|||j|q_qtjd|||||j |||qWqFWtjd ||st|d } |j| | jnd S( sYEdit a configuration file to include `settings` `settings` is a dictionary of dictionaries or ``None`` values, keyed by command/section name. A ``None`` value means to delete the entire section, while a dictionary lists settings to be changed or deleted in that section. A setting of ``None`` means to delete that setting. i(tRawConfigParsersReading configuration from %ssDeleting section [%s] from %ssAdding new section [%s] to %ssDeleting %s.%s from %ss#Deleting empty [%s] section from %ssSetting %s.%s to %r in %ss Writing %stwN(t ConfigParserRRtdebugtreadtitemstNonetinfotremove_sectiont has_sectiont add_sectiont remove_optiontoptionstsettopentwritetclose( tfilenametsettingstdry_runRtoptstsectionR%toptiontvaluetf((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyR*s:        cBs;eZdZd d dgZddgZd Zd ZRS(s<Abstract base class for commands that mess with config filess global-configtgs0save options to the site-wide distutils.cfg files user-configtus7save options to the current user's pydistutils.cfg files filename=R1s-configuration file to use (default=setup.cfg)cCsd|_d|_d|_dS(N(Rt global_configt user_configR*(tself((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pytinitialize_optionscs  cCsg}|jr%|jtdn|jrD|jtdn|jdk rf|j|jn|s|jtdnt|dkrtd|n|\|_dS(NR R Ris/Must specify only one configuration file option(R4tappendRR5R*RtlentDistutilsOptionError(R6t filenames((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pytfinalize_optionshs   (s global-configR2s0save options to the site-wide distutils.cfg file(s user-configR3s7save options to the current user's pydistutils.cfg file(s filename=R1s-configuration file to use (default=setup.cfg)(t__name__t __module__t__doc__t user_optionstboolean_optionsR7R<(((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyRSs   cBsXeZdZdZddddgejZejd gZdZdZdZ RS(s#Save command-line options to a files1set an option in setup.cfg or another config filescommand=tcscommand to set an option forsoption=tos option to sets set-value=tssvalue of the optiontremovetrsremove (unset) the valuecCs5tj|d|_d|_d|_d|_dS(N(RR7RtcommandR/t set_valueRE(R6((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyR7s     cCsftj||jdks+|jdkr:tdn|jdkrb|j rbtdndS(Ns%Must specify --command *and* --options$Must specify --set-value or --remove(RR<RGRR/R:RHRE(R6((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyR<s  cCs=t|jii|j|jjdd6|j6|jdS(Nt-t_(RR*RHR/treplaceRGR,(R6((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pytruns #(scommand=RBscommand to set an option for(soption=RCs option to set(s set-value=RDsvalue of the option(sremoveRFsremove (unset) the value( R=R>R?t descriptionRR@RAR7R<RL(((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyR|s   (RRt setuptoolsRtdistutils.utilRRtdistutils.errorst__all__RtFalseRRR(((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyts  ))0707010006215e000081ed000000000000000000000001513ff4b50000060c000000b600010002ffffffffffffffff0000006b00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyfrom distutils.command.bdist_wininst import bdist_wininst as _bdist_wininst import os, sys class bdist_wininst(_bdist_wininst): def create_exe(self, arcname, fullname, bitmap=None): _bdist_wininst.create_exe(self, arcname, fullname, bitmap) dist_files = getattr(self.distribution, 'dist_files', []) if self.target_version: installer_name = os.path.join(self.dist_dir, "%s.win32-py%s.exe" % (fullname, self.target_version)) pyversion = self.target_version # fix 2.5 bdist_wininst ignoring --target-version spec bad = ('bdist_wininst','any',installer_name) if bad in dist_files: dist_files.remove(bad) else: installer_name = os.path.join(self.dist_dir, "%s.win32.exe" % fullname) pyversion = 'any' good = ('bdist_wininst', pyversion, installer_name) if good not in dist_files: dist_files.append(good) def reinitialize_command (self, command, reinit_subcommands=0): cmd = self.distribution.reinitialize_command( command, reinit_subcommands) if command in ('install', 'install_lib'): cmd.install_lib = None # work around distutils bug return cmd def run(self): self._is_running = True try: _bdist_wininst.run(self) finally: self._is_running = False 0707010006215d000081a4000000000000000000000001513ff4b6000009c1000000b600010002ffffffffffffffff0000006800000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyc ?Qc@sBddlmZddlZddlZdefdYZdS(i(t bdist_rpmNRcBsAeZdZejdkr-ddZndZdZRS(cCstj|d|_dS(N(t _bdist_rpmtinitialize_optionstNonetno_egg(tself((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyR s s2.5ic Cstj||||||jkr|jdrt|jdgjd|jdradpktjd t j j |t j j |fndS(Ns.rpmt dist_filesRs.src.rpmtanyi( Rt move_filetdist_dirtendswithtgetattrt distributiontappendtsystversiontostpathtjointbasename(Rtsrctdsttlevel((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyRs cCs|jdtj|dS(Ntegg_info(t run_commandRtrun(R((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyRs cCs|jj}|jdd}tj|}d|}d|}g|D]<}|jddjddjdd j||^qK}|j|j|d d ||S( Nt-t_s%define version sSource0: %{name}-%{version}.tars)Source0: %{name}-%{unmangled_version}.tarssetup.py install s5setup.py install --single-version-externally-managed s%setups&%setup -n %{name}-%{unmangled_version}is%define unmangled_version (R t get_versiontreplaceRt_make_spec_filetinserttindex(RRt rpmversiontspectline23tline24tline((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyR*s   F!(t__name__t __module__RRRRRR(((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyR s   (tdistutils.command.bdist_rpmRRRR(((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.pyts0707010006217d000081a4000000000000000000000001513ff4b600001672000000b600010002ffffffffffffffff0000006300000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyc ?Qc@s|ddlmZddlmZddlZddlTddlmZmZdefdYZ defd YZ dS( i(tCommand(tDistutilsOptionErrorN(t*(t TestLoadertmaintScanningLoadercBseZdZRS(cCs&g}|jdkr1|jtj||nt|drV|j|jnt|drxt|jdD]|}|jdr|dkr|jd|d }n-t|j|d rx|jd|}nqx|j|j |qxWnt |d kr|j |S|d Sd S( sReturn a suite of all tests cases contained in the given module If the module is a package, load tests from all the modules in it. If the module has an ``additional_tests`` function, call it and add the return value to the tests. ssetuptools.tests.doctesttadditional_testst__path__ts.pys __init__.pyt.is /__init__.pyiiN( t__name__tappendRtloadTestsFromModulethasattrRtresource_listdirtendswithtresource_existstloadTestsFromNametlent suiteClass(tselftmoduletteststfilet submodule((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyR s" (R t __module__R (((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyRsttestcBsMeZdZdZd dgZdZd Zd Zd Zd Z RS(s.Command to run unit tests after in-place builds#run unit tests after in-place builds test-module=tms$Run 'test_suite' in specified modules test-suite=tss1Test suite to run (e.g. 'some_module.test_suite')cCsd|_d|_d|_dS(N(tNonet test_suitet test_modulet test_loader(R((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pytinitialize_options6s  cCs|jdkrC|jdkr0|jj|_q[|jd|_n|jr[tdn|jg|_|jr|jjddn|jdkrt |jdd|_n|jdkrd|_ndS(Ns .test_suites1You may specify a module or a suite, but not bothis --verboseR s&setuptools.command.test:ScanningLoader( RRRt distributionRt test_argstverbosetinsertR tgetattr(R((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pytfinalize_options<s   cCs|t|jdtr|jddd|jd|jd}t|j}|jdd||jd|jddd|jdn-|jd|jddd|jd|jd}tj }tj j }zXtj j dt|j tjtd td |j|jf|Wd|tj (tj jtj j|tjXdS( Ntuse_2to3tbuild_pytinplaceitegg_infotegg_baset build_exticSs |jS(N(tactivate(tdist((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pytsss%s==%s(R&R"tFalsetreinitialize_commandt run_commandtget_finalized_commandtnormalize_patht build_libtsystpathtmodulestcopyR%R,t working_sett__init__tadd_activation_listenertrequiretegg_namet egg_versiontcleartupdate(Rtfunctbpy_cmdt build_pathtei_cmdtold_patht old_modules((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pytwith_project_on_sys_pathSs2          cCs|jjr%|jj|jjn|jjrJ|jj|jjn|jrdj|j}|jr|jd|q|jd||j |j ndS(Nt s skipping "unittest %s" (dry run)srunning "unittest %s"( R"tinstall_requirestfetch_build_eggst tests_requireRtjoinR#tdry_runtannounceRIt run_tests(Rtcmd((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pytrun}s    cCsaddl}tjd|j}|jdt}|jdd|jg|j d|dS(Nisx=R>t testLoader( tunittestt EntryPointtparseR tloadR1RRt__file__R#(RRUt loader_ept loader_class((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyRQs  (s test-module=Rs$Run 'test_suite' in specified module(s test-suite=Rs1Test suite to run (e.g. 'some_module.test_suite')( R Rt__doc__t descriptiont user_optionsR!R'RIRSRQ(((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyR*s    * ( t setuptoolsRtdistutils.errorsRR7t pkg_resourcesRURRRR(((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyts   #0707010006216f000081a4000000000000000000000001513ff4b600000da4000000b600010002ffffffffffffffff0000006a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyc ?Qc@s6ddlmZddlZdefdYZdS(i(t install_libNRcBsGeZdZdZdZdZdddddZdZRS(s9Don't add compiled flags to filenames of non-Python filescCspg}xc|D][}|jds(q n|jrE|j|dn|jdkr |j|dq q W|S(Ns.pytcito(tendswithtcompiletappendtoptimize(tselft py_filenamestbytecode_filestpy_file((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyt_bytecode_filenamess  cCs6|j|j}|dk r2|j|ndS(N(tbuildtinstalltNonet byte_compile(Rtoutfiles((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pytruns   cCsi}|jj}|r|jdjrxy|D]n}|jd}xV|rtjj|j|}x'dD]}d|tjj||tj|||Sddlm}ddlmgfd}||||S(Ni(tunpack_directory(tlogcsP|kr jd|tSjd|tjj|j||S(Ns/Skipping installation of %s (namespace package)scopying %s -> %s(twarntFalsetinfoRRtdirnameR(tsrctdst(R%RR(sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pytpf;s   (tAssertionErrorR#t _install_libt copy_treetsetuptools.archive_utilR$t distutilsR%( Rtinfiletoutfilet preserve_modetpreserve_timestpreserve_symlinkstlevelR$R,((RRR%sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyR/*s  cCsHtj|}|j}|rDg|D]}||kr(|^q(S|S(N(R.t get_outputsR#(RtoutputsRR"((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyR8Gs  #(t__name__t __module__t__doc__R RR#R/R8(((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyRs   (tdistutils.command.install_libRR.R(((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyts 0707010006216c000081ed000000000000000000000001513ff4b500000ef9000000b600010002ffffffffffffffff0000006e00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyfrom setuptools import Command from setuptools.archive_util import unpack_archive from distutils import log, dir_util import os, shutil, pkg_resources class install_egg_info(Command): """Install an .egg-info directory for the package""" description = "Install an .egg-info directory for the package" user_options = [ ('install-dir=', 'd', "directory to install to"), ] def initialize_options(self): self.install_dir = None def finalize_options(self): self.set_undefined_options('install_lib',('install_dir','install_dir')) ei_cmd = self.get_finalized_command("egg_info") basename = pkg_resources.Distribution( None, None, ei_cmd.egg_name, ei_cmd.egg_version ).egg_name()+'.egg-info' self.source = ei_cmd.egg_info self.target = os.path.join(self.install_dir, basename) self.outputs = [self.target] def run(self): self.run_command('egg_info') target = self.target if os.path.isdir(self.target) and not os.path.islink(self.target): dir_util.remove_tree(self.target, dry_run=self.dry_run) elif os.path.exists(self.target): self.execute(os.unlink,(self.target,),"Removing "+self.target) if not self.dry_run: pkg_resources.ensure_directory(self.target) self.execute(self.copytree, (), "Copying %s to %s" % (self.source, self.target) ) self.install_namespaces() def get_outputs(self): return self.outputs def copytree(self): # Copy the .egg-info tree to site-packages def skimmer(src,dst): # filter out source-control directories; note that 'src' is always # a '/'-separated path, regardless of platform. 'dst' is a # platform-specific path. for skip in '.svn/','CVS/': if src.startswith(skip) or '/'+skip in src: return None self.outputs.append(dst) log.debug("Copying %s to %s", src, dst) return dst unpack_archive(self.source, self.target, skimmer) def install_namespaces(self): nsp = self._get_all_ns_packages() if not nsp: return filename,ext = os.path.splitext(self.target) filename += '-nspkg.pth'; self.outputs.append(filename) log.info("Installing %s",filename) if not self.dry_run: f = open(filename,'wt') for pkg in nsp: # ensure pkg is not a unicode string under Python 2.7 pkg = str(pkg) pth = tuple(pkg.split('.')) trailer = '\n' if '.' in pkg: trailer = ( "; m and setattr(sys.modules[%r], %r, m)\n" % ('.'.join(pth[:-1]), pth[-1]) ) f.write( "import sys,types,os; " "p = os.path.join(sys._getframe(1).f_locals['sitedir'], " "*%(pth)r); " "ie = os.path.exists(os.path.join(p,'__init__.py')); " "m = not ie and " "sys.modules.setdefault(%(pkg)r,types.ModuleType(%(pkg)r)); " "mp = (m or []) and m.__dict__.setdefault('__path__',[]); " "(p not in mp) and mp.append(p)%(trailer)s" % locals() ) f.close() def _get_all_ns_packages(self): nsp = {} for pkg in self.distribution.namespace_packages or []: pkg = pkg.split('.') while pkg: nsp['.'.join(pkg)] = 1 pkg.pop() nsp=list(nsp) nsp.sort() # set up shorter names first return nsp 07070100062175000081a4000000000000000000000001513ff4b600000bfa000000b600010002ffffffffffffffff0000006500000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pyc ?Qc@slddlZddlZddlmZddlmZddlmZddlTdefdYZdS(iN(tCommand(t convert_path(tlog(t*trotatecBsDeZdZdZdddgZgZd Zd Zd ZRS(sDelete older distributionss2delete older distributions, keeping N newest filessmatch=tmspatterns to match (required)s dist-dir=tds%directory where the distributions areskeep=tks(number of matching distributions to keepcCsd|_d|_d|_dS(N(tNonetmatchtdist_dirtkeep(tself((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pytinitialize_optionss  cCs|jdkrtdn|jdkr<tdnyt|j|_Wntk rqtdnXt|jtrg|jjdD]}t |j ^q|_n|j dddS(NsQMust specify one or more (comma-separated) match patterns (e.g. '.zip' or '.egg')s$Must specify number of files to keeps--keep must be an integert,tbdistR (sdist_dirsdist_dir( R RtDistutilsOptionErrorR tintt ValueErrort isinstancet basestringtsplitRtstriptset_undefined_options(R tp((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pytfinalize_optionss  7cCs|jdddlm}x|jD]}|jjd|}|tjj|j|}g|D]}tjj ||f^qi}|j |j t j dt||||j}x=|D]5\}}t j d||jstj|qqWq'WdS(Ntegg_infoi(tglobRs%d file(s) matching %ss Deleting %s(t run_commandRR t distributiontget_nametostpathtjoinR tgetmtimetsorttreverseRtinfotlenR tdry_runtunlink(R Rtpatterntfilestftt((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pytrun*s +    (smatch=Rspatterns to match (required)(s dist-dir=Rs%directory where the distributions are(skeep=Rs(number of matching distributions to keep( t__name__t __module__t__doc__t descriptiont user_optionstboolean_optionsR RR-(((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pyRs   ( t distutilsRt setuptoolsRtdistutils.utilRRtdistutils.errorsR(((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pyts  07070100062178000081ed000000000000000000000001513ff4b500001daf000000b600010002ffffffffffffffff0000006300000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyfrom distutils.command.sdist import sdist as _sdist from distutils.util import convert_path from distutils import log import os, re, sys, pkg_resources from glob import glob entities = [ ("<","<"), (">", ">"), (""", '"'), ("'", "'"), ("&", "&") ] def unescape(data): for old,new in entities: data = data.replace(old,new) return data def re_finder(pattern, postproc=None): def find(dirname, filename): f = open(filename,'rU') data = f.read() f.close() for match in pattern.finditer(data): path = match.group(1) if postproc: path = postproc(path) yield joinpath(dirname,path) return find def joinpath(prefix,suffix): if not prefix: return suffix return os.path.join(prefix,suffix) def walk_revctrl(dirname=''): """Find all files under revision control""" for ep in pkg_resources.iter_entry_points('setuptools.file_finders'): for item in ep.load()(dirname): yield item def _default_revctrl(dirname=''): for path, finder in finders: path = joinpath(dirname,path) if os.path.isfile(path): for path in finder(dirname,path): if os.path.isfile(path): yield path elif os.path.isdir(path): for item in _default_revctrl(path): yield item def externals_finder(dirname, filename): """Find any 'svn:externals' directories""" found = False f = open(filename,'rt') for line in iter(f.readline, ''): # can't use direct iter! parts = line.split() if len(parts)==2: kind,length = parts data = f.read(int(length)) if kind=='K' and data=='svn:externals': found = True elif kind=='V' and found: f.close() break else: f.close() return for line in data.splitlines(): parts = line.split() if parts: yield joinpath(dirname, parts[0]) entries_pattern = re.compile(r'name="([^"]+)"(?![^>]+deleted="true")', re.I) def entries_finder(dirname, filename): f = open(filename,'rU') data = f.read() f.close() if data.startswith('10') or data.startswith('9') or data.startswith('8'): for record in map(str.splitlines, data.split('\n\x0c\n')[1:]): # subversion 1.6/1.5/1.4 if not record or len(record)>=6 and record[5]=="delete": continue # skip deleted yield joinpath(dirname, record[0]) elif data.startswith('= (3,): data = data.encode("utf-8") if not self.dry_run: f = open(filename, 'wb') f.write(data) f.close() def delete_file(self, filename): """Delete `filename` (if not a dry run) after announcing it""" log.info("deleting %s", filename) if not self.dry_run: os.unlink(filename) def tagged_version(self): return safe_version(self.distribution.get_version() + self.vtags) def run(self): self.mkpath(self.egg_info) installer = self.distribution.fetch_build_egg for ep in iter_entry_points('egg_info.writers'): writer = ep.load(installer=installer) writer(self, ep.name, os.path.join(self.egg_info,ep.name)) # Get rid of native_libs.txt if it was put there by older bdist_egg nl = os.path.join(self.egg_info, "native_libs.txt") if os.path.exists(nl): self.delete_file(nl) self.find_sources() def tags(self): version = '' if self.tag_build: version+=self.tag_build if self.tag_svn_revision and ( os.path.exists('.svn') or os.path.exists('PKG-INFO') ): version += '-r%s' % self.get_svn_revision() if self.tag_date: import time; version += time.strftime("-%Y%m%d") return version def get_svn_revision(self): revision = 0 urlre = re.compile('url="([^"]+)"') revre = re.compile('committed-rev="(\d+)"') for base,dirs,files in os.walk(os.curdir): if '.svn' not in dirs: dirs[:] = [] continue # no sense walking uncontrolled subdirs dirs.remove('.svn') f = open(os.path.join(base,'.svn','entries')) data = f.read() f.close() if data.startswith('10') or data.startswith('9') or data.startswith('8'): data = map(str.splitlines,data.split('\n\x0c\n')) del data[0][0] # get rid of the '8' or '9' or '10' dirurl = data[0][3] localrev = max([int(d[9]) for d in data if len(d)>9 and d[9]]+[0]) elif data.startswith('= (3,): contents = contents.encode("utf-8") f = open(filename, "wb") # always write POSIX-style manifest f.write(contents) f.close() def write_pkg_info(cmd, basename, filename): log.info("writing %s", filename) if not cmd.dry_run: metadata = cmd.distribution.metadata metadata.version, oldver = cmd.egg_version, metadata.version metadata.name, oldname = cmd.egg_name, metadata.name try: # write unescaped data to PKG-INFO, so older pkg_resources # can still parse it metadata.write_pkg_info(cmd.egg_info) finally: metadata.name, metadata.version = oldname, oldver safe = getattr(cmd.distribution,'zip_safe',None) import bdist_egg; bdist_egg.write_safety_flag(cmd.egg_info, safe) def warn_depends_obsolete(cmd, basename, filename): if os.path.exists(filename): log.warn( "WARNING: 'depends.txt' is not used by setuptools 0.6!\n" "Use the install_requires/extras_require setup() args instead." ) def write_requirements(cmd, basename, filename): dist = cmd.distribution data = ['\n'.join(yield_lines(dist.install_requires or ()))] for extra,reqs in (dist.extras_require or {}).items(): data.append('\n\n[%s]\n%s' % (extra, '\n'.join(yield_lines(reqs)))) cmd.write_or_delete_file("requirements", filename, ''.join(data)) def write_toplevel_names(cmd, basename, filename): pkgs = dict.fromkeys( [k.split('.',1)[0] for k in cmd.distribution.iter_distribution_names() ] ) cmd.write_file("top-level names", filename, '\n'.join(pkgs)+'\n') def overwrite_arg(cmd, basename, filename): write_arg(cmd, basename, filename, True) def write_arg(cmd, basename, filename, force=False): argname = os.path.splitext(basename)[0] value = getattr(cmd.distribution, argname, None) if value is not None: value = '\n'.join(value)+'\n' cmd.write_or_delete_file(argname, filename, value, force) def write_entries(cmd, basename, filename): ep = cmd.distribution.entry_points if isinstance(ep,basestring) or ep is None: data = ep elif ep is not None: data = [] for section, contents in ep.items(): if not isinstance(contents,basestring): contents = EntryPoint.parse_group(section, contents) contents = '\n'.join(map(str,contents.values())) data.append('[%s]\n%s\n\n' % (section,contents)) data = ''.join(data) cmd.write_or_delete_file('entry points', filename, data, True) def get_pkg_info_revision(): # See if we can get a -r### off of PKG-INFO, in case this is an sdist of # a subversion revision # if os.path.exists('PKG-INFO'): f = open('PKG-INFO','rU') for line in f: match = re.match(r"Version:.*-r(\d+)\s*$", line) if match: return int(match.group(1)) f.close() return 0 # 07070100062163000081a4000000000000000000000001513ff4b60000313c000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyc ?Qc@sddlZddlZddlZddlmZddlmZddl m Z yrddlm Z ddl m Z ddlmZmZddlZdefd YZd e fd YZ Wn$ek rd dd YZ nXd ee fdYZdZdS(iN(tbuild_py(t convert_path(tglob(t Mixin2to3(tlog(tRefactoringTooltget_fixers_from_packagetDistutilsRefactoringToolcBs#eZdZdZdZRS(cOstj||dS(N(Rterror(tselftmsgtargstkw((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyt log_error scGstj||dS(N(Rtinfo(R R R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyt log_messagescGstj||dS(N(Rtdebug(R R R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyt log_debugs(t__name__t __module__R RR(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyR s  RcBs&eZedZdZdZRS(cCs|jjtk rdS|s dStjddj||j|j|rtj rt |j }|j |dtdtqnt j||dS(NsFixing t twritet doctests_only(t distributiontuse_2to3tTrueRRtjoint_Mixin2to3__build_fixer_namest_Mixin2to3__exclude_fixerst setuptoolstrun_2to3_on_doctestsRt fixer_namestrefactort _Mixin2to3trun_2to3(R tfilestdocteststr((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyR"s   cCs|jr dSg|_x'tjD]}|jjt|q W|jjdk rx-|jjD]}|jjt|q_WndS(N(RRtlib2to3_fixer_packagestextendRRtuse_2to3_fixerstNone(R tp((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyt__build_fixer_names(s  cCst|dg}|jjdk r:|j|jjnxC|D];}||jkrltjd|qAn|jj|qAWdS(Ntexclude_fixerssExcluded fixer %s not found( tgetattrRtuse_2to3_exclude_fixersR)R'RRtwarntremove(R texcluded_fixerst fixer_name((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyt__exclude_fixers1s (RRtFalseR"RR(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyRs  cBseZedZRS(cCsdS(N((R R#R$((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyR"=s(RRRR"(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyR<sRcBseZdZdZdZdZdZdZdZdZ dZ d Z e j d kr{d d Znd ZdZdZdZRS(sXEnhanced 'build_py' command that includes data files with packages The data files are specified via a 'package_data' argument to 'setup()'. See 'setuptools.dist.Distribution' for more details. Also, this version of the 'build_py' command allows you to specify both 'py_modules' and 'packages' in the same setup operation. cCsctj||jj|_|jjp+i|_d|jkrM|jd=ng|_g|_dS(Nt data_files(t _build_pytfinalize_optionsRt package_datatexclude_package_datat__dict__t_build_py__updated_filest_build_py__doctests_2to3(R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyR7Js   cCs|j r|j rdS|jr.|jn|jrN|j|jn|j|jt|j|jt|j|j t|j t j |dddS(s?Build modules, packages, and copy data files to build directoryNtinclude_bytecodei( t py_modulestpackagest build_modulestbuild_packagestbuild_package_dataR"R;R4RR<t byte_compileR6t get_outputs(R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pytrunRs     cCs3|dkr#|j|_}|Stj||S(NR5(t_get_data_filesR5R6t __getattr__(R tattrR#((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyRGfs cCsAtj||||\}}|r7|jj|n||fS(N(R6t build_moduleR;tappend(R tmodulet module_filetpackagetoutfiletcopied((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyRIkscCs|jg}x|jpdD]}|j|}tjj|jg|jd}t|d}g|j ||D]}||^q}}|j ||||fq W|S(s?Generate list of '(package,src_dir,build_dir,filenames)' tuplest.i(( tanalyze_manifestR?tget_package_dirtostpathRt build_libtsplittlentfind_data_filesRJ(R tdataRMtsrc_dirt build_dirtplentfilet filenames((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyRFqs %)cCs|jjdg|jj|g}|jj|g}x6|D].}|jttjj|t|qEW|j |||S(s6Return filenames for package's data files in 'src_dir't( R8tgettmanifest_filesR'RRSRTRRtexclude_data_files(R RMRZtglobsR#tpattern((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyRXs  ,c Csd}x|jD]\}}}}x|D]}tjj||}|jtjj|tjj||}|j||\} } tjj|}| r)||j j kr)|j j | q)q)WqWdS(s$Copy data files into build directoryN( R)R5RSRTRtmkpathtdirnamet copy_filetabspathRtconvert_2to3_doctestsR<RJ( R tlastdirRMRZR[R^tfilenamettargettsrcfiletoutfRO((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyRBs c Cs\i|_}|jjsdSi}x0|jp2dD]}||t|j|s$  % 0707010006215b000081a4000000000000000000000001513ff4b600004a56000000b600010002ffffffffffffffff0000006800000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyc ?Qc@sdZddlZddlZddlZddlmZddlmZmZyddl m Z m Z Wn1e k rddl m Z ddl m Z nXddlmZdd lmZdd lmZmZmZdd lmZdd lmZdd lmZdZdZdZdefdYZej dj!Z"dZ#dZ$dZ%ide&6de'6Z(dZ)dZ*dZ+ddddgZ,d d e-d!d"Z.dS(#s6setuptools.command.bdist_egg Build .egg distributionsiN(tCommand(t remove_treetmkpath(tget_python_versiontget_python_lib(R(R(tlog(tDistutilsSetupError(tget_build_platformt Distributiontensure_directory(t EntryPoint(tCodeType(tLibrarycCsEd|kr%tjj|d}n|jdrA|d }n|S(Nt.itmodulei(tostpathtsplitexttendswith(tfilename((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyt strip_modules   c CsOt|d}|jdjdddd|ddd d g|jdS( Ntws sdef __bootstrap__():s- global __bootstrap__, __loader__, __file__s! import sys, pkg_resources, imps: __file__ = pkg_resources.resource_filename(__name__,%r)s3 __loader__ = None; del __bootstrap__, __loader__s& imp.load_dynamic(__name__,__file__)s__bootstrap__()t(topentwritetjointclose(tresourcetpyfiletf((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyt write_stubs  s7__import__("pkg_resources").declare_namespace(__name__)t bdist_eggcBseZdZddddefd d d d d fd!d"gZd ddgZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZRS(#screate an "egg" distributions bdist-dir=tbs1temporary directory for creating the distributions plat-name=tps;platform name to embed in generated filenames (default: %s)sexclude-source-filess+remove all .py files from the generated eggs keep-temptks/keep the pseudo-installation tree around after s!creating the distribution archives dist-dir=tds-directory to put final built distributions ins skip-builds2skip rebuilding everything (for testing/debugging)cCsCd|_d|_d|_d|_d|_d|_d|_dS(Ni(tNonet bdist_dirt plat_namet keep_temptdist_dirt skip_buildt egg_outputtexclude_source_files(tself((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pytinitialize_optionsXs      cCs|jd}|_|j|_|jdkr^|jdj}tjj|d|_n|j dkr|t |_ n|j dd|j dkrt dd|j|jt|jjo|j j}tjj|j|d|_ ndS(Ntegg_infotbdistteggR(s.egg(sdist_dirsdist_dir(tget_finalized_commandtei_cmdR.R%R$t bdist_baseRRRR&Rtset_undefined_optionsR*Rtegg_namet egg_versionRt distributionthas_ext_modulesR((R,R2R3tbasename((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pytfinalize_optionsbs !cCs`|j|jd_tjjtjjt}|jj g}|j_ x|D]}t |t rt |dkrtjj |drtjj|d}tjj|}||ks|j|tjr|t |d|df}qqn|jj j|qVWz1tjd|j|jdddddWd||j_ XdS( Ntinstalliiisinstalling package data to %st install_datatforcetroot(R%R1t install_libRRtnormcasetrealpathRR7t data_filest isinstancettupletlentisabst startswithtseptappendRtinfot call_commandR$(R,t site_packagestoldtitemRAt normalized((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pytdo_install_datas ! !'cCs |jgS(N(R*(R,((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyt get_outputsscKsmx!tD]}|j||jqW|jd|j|jd|j|j||}|j||S(s8Invoke reinitialized command `cmdname` with keyword argsR)tdry_run(tINSTALL_DIRECTORY_ATTRSt setdefaultR%R)RRtreinitialize_commandt run_command(R,tcmdnametkwtdirnametcmd((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyRKs  c Cs|jdtjd|j|jd}|j}d|_|jddd}||_|j\}}g|_ g}xt |D]\}}t j j |\} } t j j|jt| d} |j j| tjd||jstt j j|| n|j| |jt jd ||R$RKtget_ext_outputststubst enumerateRRRRRRIRRRR9treplaceRHtextendtmake_init_filest byte_compileR7RBRPRR]tcopy_metadata_toR RRRtisfiletunlinktwrite_safety_flagtzip_safetexistsR.twarnR+t zap_pyfilest make_zipfileR*Rbt gen_headerR'RtgetattrR(R,tinstcmdtold_rootRZt all_outputst ext_outputst to_compileR!text_nameRtextRt archive_rootR.t script_dirt native_libst libs_file((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pytrunst    "            $    cCstjdxut|jD]d\}}}xR|D]J}|jdr3tjj||}tjd|tj |q3q3WqWdS(Ns+Removing .py files from temporary directorys.pys Deleting %s( RRJtwalk_eggR%RRRRtdebugRn(R,tbasetdirstfilestnameR((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyRss  cCsEt|jdd}|dk r%|Stjdt|j|jS(NRps4zip_safe flag not set; analyzing archive contents...(RvR7R$RRrt analyze_eggR%Rf(R,tsafe((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyRps   c Csg}xt|jD]\}}}||jkr:qnx|D]}|jdrAd|kr|t|jdjtjd}|jj|rt j d|tj j |d}|j st|d}|jt|jn|j|qnPqAqAWg|(qW|S(s%Create missing package __init__ filess.pys __init__.pyiR s#Creating missing __init__.py for %sR(RR%RRERhRRHR7thas_contents_forRRrRRRRRRt NS_PKG_STUBRRI( R,t init_filesRRRRtpkgRR((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyRj s&  &    c Cs!tj|jjpd}|jdijd}|dkrFdS|j sY|jrotd|fnt j d }|j }dj |j}|jd}t jj|j}d t}|jstt jj|jd |jt|jd} | j|| jnd S( NRssetuptools.installationt eggsecutableRsGeggsecutable entry point (%r) cannot have 'extras' or refer to a moduleiR isH#!/bin/sh if [ `basename $0` = "%(basename)s" ] then exec python%(pyver)s -c "import sys, os; sys.path.insert(0, os.path.abspath('$0')); from %(pkg)s import %(base)s; sys.exit(%(full)s())" "$@" else echo $0 is not the correct name for this egg file. echo Please rename it back to %(basename)s and try again. exec false fi RRta(R t parse_mapR7t entry_pointstgetR$tattrstextrasRtsystversiont module_nameRRRR9R*tlocalsRRRRYRRR( R,tepmteptpyverRtfullRR9theaderR((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyRu%s*      "  cCstjj|j}tjj|d}xb|jjjD]Q}|j|r:tjj||t |}t ||j ||q:q:WdS(s*Copy metadata (egg info) to the target_dirRN( RRtnormpathR.RR2tfilelistRRGRER t copy_file(R,t target_dirt norm_egg_infotprefixRttarget((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.pyRlNs c Csg}g}id|j6}xtj|jD]\}}}xH|D]@}tjj|djtkrE|j|||qEqEWx3|D]+}|||d|tjj||s@$   H    # / 07070100062179000081a4000000000000000000000001513ff4b60000235f000000b600010002ffffffffffffffff0000006400000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyc ?Qc@sSddlmZddlmZddlmZddlZddlZddl Z ddl Z ddl m Z d d!d"d#d$gZ dZ ddZdZddZddZdZejdejZdZedeejdejfedefedefedefgZdefdYZdS(%i(tsdist(t convert_path(tlogN(tglobs<ts"t"s't's&t&cCs-x&tD]\}}|j||}qW|S(N(tentitiestreplace(tdatatoldtnew((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pytunescape scsfd}|S(Nc3sut|d}|j}|jxIj|D]8}|jd}r_|}nt||Vq5WdS(NtrUi(topentreadtclosetfinditertgrouptjoinpath(tdirnametfilenametfR tmatchtpath(tpostproctpattern(s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pytfinds  ((RRR((RRs^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyt re_finders cCs|s |Stjj||S(N(tosRtjoin(tprefixtsuffix((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyRstccs@x9tjdD](}x|j|D] }|Vq)WqWdS(s%Find all files under revision controlssetuptools.file_findersN(t pkg_resourcestiter_entry_pointstload(Rteptitem((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyt walk_revctrl+sccsxtD]\}}t||}tjj|rxe|||D]Q}tjj|rd|VqDtjj|rDxt|D] }|VqWqDqDWqqWdS(N(tfindersRRRtisfiletisdirt_default_revctrl(RRtfinderR(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyR-1sc cst}t|d}xt|jdD]}|j}t|dkr(|\}}|jt|}|dkr|dkrt}q|dkr|r|j Pqq(q(W|j dSx;|j D]-}|j}|rt ||dVqqWdS( s$Find any 'svn:externals' directoriestrtR#itKs svn:externalstVNi( tFalseRtitertreadlinetsplittlenRtinttTrueRt splitlinesR( RRtfoundRtlinetpartstkindtlengthR ((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pytexternals_finder<s$       s%name="([^"]+)"(?![^>]+deleted="true")c cst|d}|j}|j|jdsR|jdsR|jdrxttj|jddD]G}| srt|dkr|dd krqrnt ||d VqrWnY|jd r xGt j |D]#}t |t |j dVqWntjd |dS( NRt10t9t8s iiitdeleteis|D]}tjj|r dSq W|jddj|dS(NR]s README.txts,standard file not found: should have one of s, (sREADMEs README.txt(RRReRHR (RYRoR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyRSs  cCstj|||tjj|d}ttdritjj|ritj||jd|n|j dj |dS(Ns setup.cfgtlinkRM( Rutmake_release_treeRRR thasattrRetunlinkt copy_fileRPtsave_version_info(RYtbase_dirRrtdest((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyR~s ! N(sformats=Ns6formats for source distribution (comma-separated list)(s dist-dir=RLsFdirectory to put the source distribution archive(s) in [default: dist](iii(ii(iii(ii(iii(t__name__t __module__t__doc__tNonet user_optionst negative_optR\Rst_sdist__read_template_hackRwt version_infoRvRSR~(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyR~s$   -   (s<R(s>R(s"R(s'R(s&R(tdistutils.command.sdistRRutdistutils.utilRt distutilsRRtreRwR$RR RRRRR)R-R?tcompiletIRGRJtMR*(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/sdist.pyts(0        07070100062171000081a4000000000000000000000001513ff4b600000ad3000000b600010002ffffffffffffffff0000006e00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyc ?Qc@sbddlmZddlmZmZmZddlZddlm Z defdYZdS(i(tinstall_scripts(t Distributiont PathMetadatatensure_directoryN(tlogRcBs,eZdZdZdZddZRS(s;Do normal script install, plus any egg_info wrapper scriptscCstj|t|_dS(N(t_install_scriptstinitialize_optionstFalsetno_ep(tself((sh/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyR s c Csddlm}ddlm}|jd|jjrItj|n g|_|j r_dS|j d}t |j t |j |j|j|j}|j d}t|d|}t|j ddt}x'||||D]}|j|qWdS( Ni(tget_script_args(tsys_executabletegg_infot build_scriptst executablet bdist_wininstt _is_running(tsetuptools.command.easy_installR R t run_commandt distributiontscriptsRtruntoutfilesRtget_finalized_commandRtegg_baseRR tegg_namet egg_versiontgetattrRt write_script( R R R tei_cmdtdisttbs_cmdRt is_wininsttargs((sh/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyRs$    ttc Gsddlm}m}tjd||jtjj|j|}|j j ||}|j st |t |d|} | j|| j||d|ndS(s1Write an executable file to the scripts directoryi(tchmodt current_umasksInstalling %s script to %stwiN(RR#R$Rtinfot install_dirtostpathtjoinRtappendtdry_runRtopentwritetclose( R t script_nametcontentstmodetignoredR#R$ttargettmasktf((sh/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyR(s     (t__name__t __module__t__doc__RRR(((sh/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyRs  ( t!distutils.command.install_scriptsRRt pkg_resourcesRRRR(t distutilsR(((sh/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyts 07070100062174000081ed000000000000000000000001513ff4b5000007e5000000b600010002ffffffffffffffff0000006400000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/rotate.pyimport distutils, os from setuptools import Command from distutils.util import convert_path from distutils import log from distutils.errors import * class rotate(Command): """Delete older distributions""" description = "delete older distributions, keeping N newest files" user_options = [ ('match=', 'm', "patterns to match (required)"), ('dist-dir=', 'd', "directory where the distributions are"), ('keep=', 'k', "number of matching distributions to keep"), ] boolean_options = [] def initialize_options(self): self.match = None self.dist_dir = None self.keep = None def finalize_options(self): if self.match is None: raise DistutilsOptionError( "Must specify one or more (comma-separated) match patterns " "(e.g. '.zip' or '.egg')" ) if self.keep is None: raise DistutilsOptionError("Must specify number of files to keep") try: self.keep = int(self.keep) except ValueError: raise DistutilsOptionError("--keep must be an integer") if isinstance(self.match, basestring): self.match = [ convert_path(p.strip()) for p in self.match.split(',') ] self.set_undefined_options('bdist',('dist_dir', 'dist_dir')) def run(self): self.run_command("egg_info") from glob import glob for pattern in self.match: pattern = self.distribution.get_name()+'*'+pattern files = glob(os.path.join(self.dist_dir,pattern)) files = [(os.path.getmtime(f),f) for f in files] files.sort() files.reverse() log.info("%d file(s) matching %s", len(files), pattern) files = files[self.keep:] for (t,f) in files: log.info("Deleting %s", f) if not self.dry_run: os.unlink(f) 07070100062167000081a4000000000000000000000001513ff4b600010b6b000000b600010002ffffffffffffffff0000006b00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyc ?Qc@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z m Z ddlmZddlmZmZddlmZddlmZmZdd lmZmZdd lmZmZmZmZdd lm Z m!Z!dd l"m#Z#dd l$m%Z%ddl&m'Z'ddl&m(Z(ddl"m)Z)m*Z*ddl+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:ej;j<ej=Z>ddddddgZ?ddl@Z@ejAdk o;e@jBZCddlDZDdZEdZFejGdfkrdZHdZIndZHdZIde fd YZJd!ZKd"ZLd#ZMd$ZNd%ZOde2fd&YZPe>eQd'ZRd(ZSd)ZTd*ZUd+d,ZVd-ZWd.ZXd/ZYydd0lmZZ[Wne\k rod1Z[nXd2ZZd3Z]e>eQd4Z^eQeSd5Z_d6Z`d7Zaebd8ZcdS(9sEasy Install ------------ A tool for doing automatic download/extract/build of distutils-based Python packages. For detailed documentation, see the accompanying EasyInstall.txt file, or visit the `EasyInstall home page`__. __ http://packages.python.org/distribute/easy_install.html iN(tglob(tCommandt_dont_write_bytecode(t run_setup(tlogtdir_util(t get_platform(t convert_patht subst_vars(tget_python_libtget_config_vars(tDistutilsArgErrortDistutilsOptionErrortDistutilsErrortDistutilsPlatformError(tINSTALL_SCHEMESt SCHEME_KEYS(tsetopt(tunpack_archive(t PackageIndex(t URL_SCHEME(t bdist_eggtegg_info(t yield_linestnormalize_pathtresource_stringtensure_directorytget_distributiontfind_distributionst Environmentt Requirementt Distributiont PathMetadatat EggMetadatat WorkingSettDistributionNotFoundtVersionConflictt DEVELOP_DISTtsamefilet easy_installtPthDistributionstextract_wininst_cfgtmaintget_exe_prefixess2.6cCstjddkS(NtPi(tstructtcalcsize(((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytis_64bit7scCsttjdrItjj|rItjj|rItjj||Stjjtjj|tjjtjj|kS(NR&(thasattrtostpathtexistsR&tnormpathtnormcase(tp1tp2((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR&:s $icCs|S(N((ts((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt _to_asciiEscCs.yt|dtSWntk r)tSXdS(Ntascii(tunicodetTruet UnicodeErrortFalse(R8((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytisasciiGs   cCs |jdS(NR:(tencode(R8((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR9NscCs.y|jdtSWntk r)tSXdS(NR:(R@R<R=R>(R8((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR?Ps   cBseZdZdZeZdzd{d|d}d~ddddddddddddddddddgZdddd ddd"d1d4d:d=g Ze rej dAdydBe j fej dAnidd+6Z eZdCZdDZdEZdFZdGZdHZdIZdJZdKZdLZdMZdNZdOZdPZdQZdRZe dSZ!e dTZ"dUZ#edVZ$dWZ%dXZ&dYZ'dydZZ(d[dd\Z)d]Z*d^Z+d_Z,d`Z-daZ.dbZ/dcZ0dddeZ1dfZ2dgZ3dhZ4diZ5djZ6dkZ7dlZ8dmZ9dnZ:doZ;dpZ<e=dqe=drdsdtduZ>e=drdvdtdwZ?dxZ@RS(s'Manage a download/build/install processs Find/get/install Python packagessprefix=sinstallation prefixszip-oktzsinstall package as a zipfiles multi-versiontms%make apps have to require() a versiontupgradetUs1force upgrade (searches PyPI for latest versions)s install-dir=tdsinstall package to DIRs script-dir=R8sinstall scripts to DIRsexclude-scriptstxsDon't install scriptss always-copytas'Copy all needed packages to install dirs index-url=tis base URL of Python Package Indexs find-links=tfs(additional URL(s) to search for packagessdelete-conflictingtDs no longer needed; don't use thissignore-conflicts-at-my-risksbuild-directory=tbs/download/extract/build in DIR; keep the resultss optimize=tOslalso compile with optimization: -O1 for "python -O", -O2 for "python -OO", and -O0 to disable [default: -O0]srecord=s3filename in which to record list of installed filess always-unziptZs*don't install as a zipfile, no matter whats site-dirs=tSs)list of directories where .pth files workteditabletes+Install specified packages in editable formsno-depstNsdon't install dependenciess allow-hosts=tHs$pattern(s) that hostnames must matchslocal-snapshots-oktls(allow building eggs from local checkoutstversions"print version information and exits no-find-linkss9Don't load find-links defined in packages being installedtusers!install in user site-package '%s'cCstr0tjjt}|jtj|_n d|_d|_ |_ d|_ |_ |_d|_d|_d|_d|_d|_|_d|_|_|_d|_|_|_d|_|_|_d|_d|_d|_ d|_!d|_"d|_#d|_$d|_%d|_&trKtj'|_(tj|_)nd|_(d|_)d|_*d|_+d|_,|_-d|_.d|_/d|_0i|_1t2|_3d|_4|j5j6|_6|j5j7||j5j8ddS(NiR'(9t HAS_USER_SITER1R2tabspatht__file__t startswithtsitet USER_SITERUtNonetzip_oktlocal_snapshots_okt install_dirt script_dirtexclude_scriptst index_urlt find_linkstbuild_directorytargstoptimizetrecordRCt always_copyt multi_versionROtno_depst allow_hoststroottprefixt no_reportRTtinstall_purelibtinstall_platlibtinstall_headerst install_libtinstall_scriptst install_datat install_basetinstall_platbaset USER_BASEtinstall_userbasetinstall_usersitet no_find_linkst package_indextpth_filetalways_copy_fromtdelete_conflictingtignore_conflicts_at_my_riskt site_dirstinstalled_projectsR>tsitepy_installedt_dry_runt distributiontverboset_set_command_optionstget_option_dict(tselftwhereami((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytinitialize_optionssP                          cCsx|D]}tjj|s1tjj|rtjd||jstjj|r|tjj| r|t|qtj |qqqWdS(Ns Deleting %s( R1R2R3tislinkRtinfotdry_runtisdirtrmtreetunlink(Rtblockerstfilename((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytdelete_blockerss $ % c Cs|jr(dtdjGHtjntjjd}tdd\}}i |jjd6|jjd6|jj d6|d 6|dd !d 6|d|d d 6|d6|d6|d6|d6t tddd6|_ t r |j |j d<|j|j d|j9n|jdd/t:|j?t@s=y>t@|j?|_?d|j?ko d knstAnWq=tAk r9t-d(q=Xn|jBr^|jCr^t-d)n|j/r|jD rtEd*n|jFstEd+ng|_GdS(0Ns distribute %st distributeiRmt exec_prefixt dist_namet dist_versiont dist_fullnamet py_versionitpy_version_shortitpy_version_nodott sys_prefixtsys_exec_prefixtabiflagsttuserbasetusersites$User base directory is not specifiedtposixt unix_usert_userR_R`RdRRrRstinstallRgt,s"%s (in --site-dirs) does not exists$ (in --site-dirs) is not on sys.pathshttp://pypi.python.org/simplet*t search_paththostsRfs--optimize must be 0, 1, or 2sVCan't use both --delete-conflicting and --ignore-conflicts-at-my-risk at the same times9Must specify a build directory (-b) when using --editables:No urls, filenames, or requirements specified (see --help)(s install_dirs install_dir(s install_dirs script_dir(srecordsrecord(soptimizesoptimize(HRTRtsystexittsplitR Rtget_namet get_versiont get_fullnametgetattrt config_varsRVRxRyRUtcreate_home_pathR\RRuRvR1tnamet select_schemetexpand_basedirst expand_dirst_expandR`R_RzR>tset_undefined_optionsRoRstmapRR2t get_site_dirst all_site_dirsRt expandusertstripRRtwarnR tappendROtcheck_site_dirRbt shadow_pathtinsertRkR{t create_indexRt local_indexRct isinstancet basestringR^tscan_egg_linkstadd_find_linksRftintt ValueErrorR~RRdR Retoutputs( RRRmRR4R8RREt path_itemR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytfinalize_optionss           7   . !         cCsx|D]y}t||}|dk rtjdksFtjdkr[tjj|}nt||j}t|||qqWdS(NRtnt( RR\R1RR2RRRtsetattr(Rtattrstattrtval((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt _expand_attrsMs  cCs|jdddgdS(sNCalls `os.path.expanduser` on install_base, install_platbase and root.RuRvRlN(R(R((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRVscCs#|jddddddgdS(s+Calls `os.path.expanduser` on install dirs.RoRpRrRqRsRtN(R(R((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR[s cCs|j|jjkr(tj|jnzx%|jD]}|j||j q5W|jr|j}|j rt |j }x/t t |D]}|||||( RRR|tok_filet ok_existsRRIRtbasenametaltR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRsP    $   cCsg|j rV|jdrVx:|jdD]&}|j|||jd|q)Wn|j|dS(s=Write all the scripts for `dist`, unless scripts are excludedtscriptssscripts/N(Ratmetadata_isdirtmetadata_listdirtinstall_scriptt get_metadatatinstall_wrapper_scripts(Rtdistt script_name((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytinstall_egg_scripts s cCs|tjj|rhxctj|D]?\}}}x-|D]%}|jjtjj||q8Wq"Wn|jj|dS(N(R1R2RtwalkRRR(RR2tbasetdirstfilesR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt add_outputs  *cCs#|jrtd|fndS(NsjInvalid argument %r: you can't use filenames or URLs with --editable (except via the --find-links option).(ROR (RR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt not_editables cCsW|js dStjjtjj|j|jrStd|j|jfndS(Ns2%r already exists in %s; can't do a checkout there(ROR1R2R3RRdtkeyR (RR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytcheck_editable#s  'cCstjdd}d}|js.|jnzYt|tst|r|j||j j ||}|j d|||t St jj|r|j||j d|||t St|}n|j||j j|||j|j|j |j}|dkrDd|}|jr5|d7}nt|nB|jtkrm|j|||d|S|j ||j||SWdt jj|rt|nXdS(NRms easy_install-s+Could not find suitable distribution for %rs2 (--always-copy skips system and development eggs)tUsing(ttempfiletmkdtempR\ROtinstall_site_pyRRRRR{tdownloadt install_itemR<R1R2R3tparse_requirement_argRtfetch_distributionRCRhRR t precedenceR%tprocess_distributiontlocationR(RRtdepsttmpdirRR R((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR'2s:           c Cs|p |j}|p*tjj||k}|p@|jd }|p||jdk o|tjjt|t|jk}|r| rx4|j|j D]}|j |krPqqWt }nt j dtjj||r!|j|||}xY|D]}|j|||qWn5|j|j|g}|j||d|d|dk rx!|D]}||kri|SqiWndS(Ns.eggs Processing %siR(RhR1R2RtendswithR}R\RRt project_nameR!R<RRRt install_eggsR tcheck_conflictstegg_distribution(RRRR#R"tinstall_neededR tdists((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR\s.      cCsUt|}xDtD]<}d|}t||dkrt||||qqWdS(s=Sets the install directories by applying the install schemes.tinstall_N(RRRR\R(RRtschemeRtattrname((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRs    c Gs$|j||jj||jj||jsF|j|n||j|jR#R?t setup_scripttsetups((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR&s4"  cCs[tjj|r3t|tjj|d}nttj|}tj |d|S(NsEGG-INFOtmetadata( R1R2RR RR!t zipimportt zipimporterRt from_filename(Rtegg_pathRb((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR(9s!cCstjj|jtjj|}tjj|}|jsLt|n|j|}|j |t ||stjj |rtjj | rt j|d|jn2tjj|r|jtj|fd|nt|tjj |r8|j|r%tjd}}qtjd}}na|j|rg|j||jd}}n2|j|rtjd}}ntjd}}|j|||f|dtjj|tjj|fn|j||j|S(NRs Removing tMovingtCopyingt Extractings %s to %s(R1R2RR_RRWRRR(R'R&RRRt remove_treeR3RRtuncache_zipdirRYR<R=tcopytreeR:tmkpathtunpack_and_compiletcopy2RR(RRfR#t destinationR RIRB((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRZ@s6$   %   ) cCst|}|dkr+td|ntdd|jddd|jdddt}tjj||j d}|_ |d}tjj|d }tjj|d }t |t |||_ |j||tjj|s}t|d } | jd xU|jdD]D\} } | d kr(| jd| jddj| fq(q(W| jntjj|d} |jgt|D]} tjj| | d^qtj||d|jd|j|j||S(Ns(%s is not a valid distutils Windows .exeR%RbRRTtplatforms.eggs.tmpsEGG-INFOsPKG-INFORsMetadata-Version: 1.0 ttarget_versions%s: %s t_t-RiRR(R)R\R RRRR1R2Rtegg_nameR!RR t _providert exe_to_eggR3RRtitemsRGttitleRRRCRt make_zipfileRRRZ(RR>R#tcfgR Rftegg_tmpRtpkg_infRItktvR`Re((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR[bs6   &    0 3c st|ggifd}t||g}xD]}|jjdrV|jd}|d}tj|dd|dR|RtstubstresRtresourcetpyfileRttxtRI((RRRR|Rse/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRws4       !cCs|Sddlm}m}ddlm}g}tj|jd}idd6dd6}x$|D]\}} } d||=%(version)s") # this version or higher s Note also that the installation directory must be on sys.path at runtime for this to work. (e.g. by being the application's script directory, by being on PYTHONPATH, or by being added to sys.path by your code.) R( RiRnR_RRRR2R!R%RTRP( RtreqR twhatRtegglocRRTR5((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR0s     cCs&tjj|}tj}dtS(Ns" Extracted editable version of %(spec)s to %(dirname)s If it uses setuptools in its setup script, you can activate it in "development" mode by going to that directory and running:: %(python)s setup.py develop See the setuptools documentation for the "develop" command for more info. (R1R2RRRRP(RRR`Rtpython((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR^$s cCstjjdttjjdtt|}|jdkrid|jd}|jdd|n"|jdkr|jddn|jr|jdd nt j d |t |dd j |yt ||Wn-tk r}td |jdfnXdS( Nsdistutils.command.bdist_eggsdistutils.command.egg_infoiRiiRts-qs-ns Running %s %st sSetup script exited with %s(Rtmodulest setdefaultRRtlistRRRRRRRRt SystemExitR Re(RR`R?ReR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR1s   $c Csddg}tjdddtjj|}z|jtjj||j||j|||t|g}g}x?|D]7}x.||D]"}|j|j |j |qWqW| r|j rt j d|n|SWdt|t j|jXdS(NRs --dist-dirRms egg-dist-tmp-tdirs+No eggs found in %s (setup script problem?)(RRR1R2Rt_set_fetcher_optionsRRRRZR!RRRRRR( RR`R?Retdist_dirtall_eggsteggsRR ((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR_Es$    $   c Cs|jjdj}d }i}xF|jD]8\}}||krOq1n|d||jdd R'RRR R:RBR R RDR&R(RZR[RwR'RR0R^RR_RR.R]RnRRRRRRRR(((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR'Ws     5     * ) ,    * & .    )  " ) 1 # )     #    ) '   cCstdtjjddjtj}tjg}tj tjkr[|j tj nx,|D]$}|rbtj dkr|j tj j |ddn|tjdkr|jtj j |dd tjd dtj j |dd gn%|j|tj j |ddgtj d krd |krtjjd}|r|j tj j |ddtjd dqqqqbqbWx6dD].}t|}||kr|j |qqWtr|j tjntt|}|S(NRRtos2emxtriscostLibs site-packagesRtlibRis site-pythontdarwinsPython.frameworktHOMEtLibrarytPythonii(sos2emxsriscos(ii(RR\R1RRRRRRmRRRqR2RtseptextendRTR RVRZR[RR(tsitedirsRRmRt plat_specifictsite_lib((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRSsD*  "      ccs^i}xQ|D]I}t|}||kr1q nd||RItendrect prependedR-RRttagtcfglentbmlenR{tpartt null_bytetconfig((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR)s:  $$   c Csdddddg}tj|}zSxL|jD]>}|j}|jd}t|d kr|d d kr|d jd r|jddj|d dfPqnt|d ks4|jd rq4n|jdrq4n|dj dkr4xkt |j |D]Q}|j j dd}|jds|jd|d|fdfqqWq4q4WWd|jXg|D]\}}|j|f^q}|j|j|S(s4Get exe->egg path translations for a given .exe filesPURELIB/RsPLATLIB/pywin32_system32sPLATLIB/sSCRIPTS/sEGG-INFO/scripts/sDATA/LIB/site-packagesRiisPKG-INFOis .egg-infois EGG-INFO/s.pths -nspkg.pthtPURELIBtPLATLIBs\Rs%s/%s/N(sPURELIB/R(sPLATLIB/pywin32_system32R(sPLATLIB/R(sSCRIPTS/sEGG-INFO/scripts/(sDATA/LIB/site-packagesR(sPURELIBsPLATLIB(RtZipFiletinfolistRRRR$RRtupperRRRRGRYRRRtsorttreverse( t exe_filenameRRARRRtpthRFty((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR+s6  "#"3 + cCs<ytj|SWn$tk r7td|fnXdS(Ns1Not a URL, existing file, or requirement spec: %r(RRRR (R((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRs  cBsMeZdZeZddZdZdZdZdZ dZ RS(s)A .pth file with Distribution paths in itcCs||_tt||_ttjj|j|_|jt j |gddx0t |j D]}t|jt|tqiWdS(N(RRRRR1R2Rtbasedirt_loadRt__init__R\RRR/RR<(RRRR2((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR s  cCsg|_t}tj|j}tjj|jr3t |jd}x|D]}|j drpt }qOn|j }|jj ||j sO|jj drqOnttjj|j|}|jdRRRR1R2R\RRRYR<RRRRRRR3tpoptdirtyR(Rt saw_importRRIRR2((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRs2   "&     cCs|js dSdjt|j|j}|rtjd|jd|}tj j |jrvtj |jnt |jd}|j ||jn;tj j|jrtjd|jtj |jnt|_dS(s$Write changed .pth file back to diskNs s Saving %ssimport sys; sys.__plen = len(sys.path) %s import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new) RsDeleting empty %s(RRRRRRRRR1R2RRRRRR3R>(RtdataRI((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR3s   cCsl|j|jkrX|j|jks9|jtjkrX|jj|jt|_ntj ||dS(s"Add `dist` to the distribution mapN( R!RRR1tgetcwdRR<RRR/(RR ((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR/Os  cCsIx2|j|jkr4|jj|jt|_qWtj||dS(s'Remove `dist` from the distribution mapN(R!RRR<RR(RR ((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRYs cCstjjt|\}}t|j}|g}tjdkrKdpQtj}xut||kr||jkr|jtj |j |j |Stjj|\}}|j|qWW|SdS(NR( R1R2RRRRtaltsepRRtcurdirR R(RR2tnpathtlasttbaselenRR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR`s   (( RRRR>RRRRR/RR(((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR(s    cCs)ddlm}t|jts=tj|jj}n|djd}|j |}d}|r|j dp~d}|rd|}qn|rd}n t |}d t }t |s |r|jjd rd |jd}qq d }nt||}d t }|S( s;Create a #! line, getting options (if any) from script_texti(t first_line_res iRiRs python.exes#!%(executable)s%(options)s Rts -x(tdistutils.command.build_scriptsRRtpatternRMtretcompileRFt splitlinestmatchtgroupt nt_quote_argRPR?RRYtfix_jython_executable(RQRtwininstRtfirstR%toptionsthdr((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyROos,      cCsy|tjkr8tjdkr8t|tj||Stj}|d|dd|ddd||ffdS(NRiis %s %s(R1RRRVRtS_IWRITERR(tfunctargtexc((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt auto_chmods   cCs1ddlm}t||t|tjdS(s?Ensure that the importer caches dont have stale info for `path`i(t_zip_directory_cacheN(RcR2t_uncacheRtpath_importer_cache(R2tzdc((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRks cCsT||kr||=n:t|}x+|D]#}t||kr)||=dSq)WdS(N(R(R2tcachetp((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR3s    scCs7yt||dWnttfk r.tSXtSdS(s%Is this string a valid Python script?texecN(R#t SyntaxErrort TypeErrorR>R<(ttextR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt is_pythons cCsNy)t|}|jd}|jWnttfk rC|SX|dkS(sCDetermine if the specified executable is a .sh (contains a #! line)is#!(RRRRR(Rtfptmagic((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytis_shs cCsg}t}d}d|kp'd|k}|r@|jdnx|D]z}|dkrf|d7}qG|dkr|jd|ddd}qG|r|jd|d}n|j|qGW|r|jd|n|r|jd||jdnd j|S( s@Quote a command line argument according to Windows parsing rulesiRs t"s\iis\"R(R>RR(R/tresultt needquotetnbtc((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR's,      cCsb|jds|jdr"tSt||r5tS|jdr^d|jdjkStS(sMIs this text, as a whole, a Python script? (as opposed to shell/bat/etc. s.pys.pyws#!Ri(R$R<R<RYR$RR>(RQR((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRNs(RVcGsdS(N((Re((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt_chmodscCsQtjd||yt||Wn&tjk rL}tjd|nXdS(Nschanging mode of %s to %oschmod failed: %s(RRRER1terror(R2RWRP((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRVs cCsCtjjdr?t|r?|r4tjdq?d|Sn|S(NtjavasWARNING: Unable to adapt shebang line for Jython, the following script is NOT executable see http://bugs.jython.org/issue1112 for more information.s/usr/bin/env %s(RRqRYR?RR(RR+((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR(s  c cst|j}td||}xdD]{}xr|j|jD][\}}dt}tjdksu|r|dkrd\} } dg} tj d d |} n0d\} } d ddg} tj dd|} t r| j dd} n| j dd} t j j| dd!s6tjdkr?| } n|} || | |dg| D]}||^q]fV|dtd| dfVqG|||fVqGWq+WdS(sEYield write_script() argument tuples for a distribution's entrypointsRtconsole_scriptst gui_scriptss# EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r __requires__ = %(spec)r import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.exit( load_entry_point(%(spec)r, %(group)r, %(name)r)() ) twin32s -script.pywsgui.exes.pyws(?i)python.exes pythonw.exes -script.pyscli.exes.pys.pycs.pyos(?i)pythonw.exes python.exet.s-64.s-32.iiRTs.exeRERKN(sconsole_scriptss gui_scripts(s -script.pywsgui.exe(s -script.pyscli.exe(RMR3ROt get_entry_mapRxRPRRqR"tsubR/RGR1R2R3R(R RR)RtheaderR&RtepRQRtlauncherRt new_headerR,RF((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRC s0 "      ( 0 cCsx|rd}n|dkr*d}ng}ytj|}Wn/tjk rt}|tj|tjnXx|D]}tjj||}ytj|j }Wntjk rd}nXt j |rt |||q|ytj |Wq|tjk r.}|tj |tjq|Xq|Wytj|Wn-tjk rs|tj|tjnXdS(sRecursively delete a directory tree. This code is taken from the Python 2.4 version of 'shutil', because the 2.3 version doesn't really work right. cWsdS(N((Re((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pytonerror>scWsdS(N((Re((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRRAsiN(R\R1R;RFRRR2Rtlstattst_modeRtS_ISDIRRRtrmdir(R2t ignore_errorsRRRterrRtfullnameRW((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR7s2     !cCs tjd}tj||S(Ni(R1tumask(ttmp((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRUZs cCsMddl}tjj|jd}|tjd~s((RReRj(RgR(RReRjse/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRi}scs/j|}d|kr+|jdn|S(Ns setup.cfg(tfind_config_filesR(RR(R(se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRls (RRt common_usageRiRl((RRg(se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRhzsic s6ddddgdtjdp)ddS(Nt script_argss-qR's-vR it distclass(RR]((R`RjRhR](se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyRks(RER`tsetuptools.distRtdistutils.coreR\RR](R]Rj(( RdRR`R]RjRcRRgRhse/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyR*ds  (dRRR1RcR<RRR"RRRRERRtsetuptools.sandboxRRRRRRRRtdistutils.sysconfigR R tdistutils.errorsR R R Rtdistutils.command.installRRtsetuptools.commandRtsetuptools.archive_utilRtsetuptools.package_indexRRRRt pkg_resourcesRRRRRRRRRR R!R"R#R$R%R2R4Rtsys_executablet__all__RZRTtENABLE_USER_SITERVR-R/R&RR9R?R'RRR)R+RR(R>ROR1RkR3R<R?R'RNRVRERR(RCRRUR_R\R*(((se/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.pyt s         "d           - ) 5 " g   )     .#  07070100062160000081ed000000000000000000000001513ff4b500002db8000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyfrom distutils.command.build_ext import build_ext as _du_build_ext try: # Attempt to use Pyrex for building extensions, if available from Pyrex.Distutils.build_ext import build_ext as _build_ext except ImportError: _build_ext = _du_build_ext import os, sys from distutils.file_util import copy_file from setuptools.extension import Library from distutils.ccompiler import new_compiler from distutils.sysconfig import customize_compiler, get_config_var get_config_var("LDSHARED") # make sure _config_vars is initialized from distutils.sysconfig import _config_vars from distutils import log from distutils.errors import * have_rtld = False use_stubs = False libtype = 'shared' if sys.platform == "darwin": use_stubs = True elif os.name != 'nt': try: from dl import RTLD_NOW have_rtld = True use_stubs = True except ImportError: pass def if_dl(s): if have_rtld: return s return '' class build_ext(_build_ext): def run(self): """Build extensions in build directory, then copy if --inplace""" old_inplace, self.inplace = self.inplace, 0 _build_ext.run(self) self.inplace = old_inplace if old_inplace: self.copy_extensions_to_source() def copy_extensions_to_source(self): build_py = self.get_finalized_command('build_py') for ext in self.extensions: fullname = self.get_ext_fullname(ext.name) filename = self.get_ext_filename(fullname) modpath = fullname.split('.') package = '.'.join(modpath[:-1]) package_dir = build_py.get_package_dir(package) dest_filename = os.path.join(package_dir,os.path.basename(filename)) src_filename = os.path.join(self.build_lib,filename) # Always copy, even if source is older than destination, to ensure # that the right extensions for the current Python/platform are # used. copy_file( src_filename, dest_filename, verbose=self.verbose, dry_run=self.dry_run ) if ext._needs_stub: self.write_stub(package_dir or os.curdir, ext, True) if _build_ext is not _du_build_ext and not hasattr(_build_ext,'pyrex_sources'): # Workaround for problems using some Pyrex versions w/SWIG and/or 2.4 def swig_sources(self, sources, *otherargs): # first do any Pyrex processing sources = _build_ext.swig_sources(self, sources) or sources # Then do any actual SWIG stuff on the remainder return _du_build_ext.swig_sources(self, sources, *otherargs) def get_ext_filename(self, fullname): filename = _build_ext.get_ext_filename(self,fullname) if fullname not in self.ext_map: return filename ext = self.ext_map[fullname] if isinstance(ext,Library): fn, ext = os.path.splitext(filename) return self.shlib_compiler.library_filename(fn,libtype) elif use_stubs and ext._links_to_dynamic: d,fn = os.path.split(filename) return os.path.join(d,'dl-'+fn) else: return filename def initialize_options(self): _build_ext.initialize_options(self) self.shlib_compiler = None self.shlibs = [] self.ext_map = {} def finalize_options(self): _build_ext.finalize_options(self) self.extensions = self.extensions or [] self.check_extensions_list(self.extensions) self.shlibs = [ext for ext in self.extensions if isinstance(ext,Library)] if self.shlibs: self.setup_shlib_compiler() for ext in self.extensions: ext._full_name = self.get_ext_fullname(ext.name) for ext in self.extensions: fullname = ext._full_name self.ext_map[fullname] = ext # distutils 3.1 will also ask for module names # XXX what to do with conflicts? self.ext_map[fullname.split('.')[-1]] = ext ltd = ext._links_to_dynamic = \ self.shlibs and self.links_to_dynamic(ext) or False ext._needs_stub = ltd and use_stubs and not isinstance(ext,Library) filename = ext._file_name = self.get_ext_filename(fullname) libdir = os.path.dirname(os.path.join(self.build_lib,filename)) if ltd and libdir not in ext.library_dirs: ext.library_dirs.append(libdir) if ltd and use_stubs and os.curdir not in ext.runtime_library_dirs: ext.runtime_library_dirs.append(os.curdir) def setup_shlib_compiler(self): compiler = self.shlib_compiler = new_compiler( compiler=self.compiler, dry_run=self.dry_run, force=self.force ) if sys.platform == "darwin": tmp = _config_vars.copy() try: # XXX Help! I don't have any idea whether these are right... _config_vars['LDSHARED'] = "gcc -Wl,-x -dynamiclib -undefined dynamic_lookup" _config_vars['CCSHARED'] = " -dynamiclib" _config_vars['SO'] = ".dylib" customize_compiler(compiler) finally: _config_vars.clear() _config_vars.update(tmp) else: customize_compiler(compiler) if self.include_dirs is not None: compiler.set_include_dirs(self.include_dirs) if self.define is not None: # 'define' option is a list of (name,value) tuples for (name,value) in self.define: compiler.define_macro(name, value) if self.undef is not None: for macro in self.undef: compiler.undefine_macro(macro) if self.libraries is not None: compiler.set_libraries(self.libraries) if self.library_dirs is not None: compiler.set_library_dirs(self.library_dirs) if self.rpath is not None: compiler.set_runtime_library_dirs(self.rpath) if self.link_objects is not None: compiler.set_link_objects(self.link_objects) # hack so distutils' build_extension() builds a library instead compiler.link_shared_object = link_shared_object.__get__(compiler) def get_export_symbols(self, ext): if isinstance(ext,Library): return ext.export_symbols return _build_ext.get_export_symbols(self,ext) def build_extension(self, ext): _compiler = self.compiler try: if isinstance(ext,Library): self.compiler = self.shlib_compiler _build_ext.build_extension(self,ext) if ext._needs_stub: self.write_stub( self.get_finalized_command('build_py').build_lib, ext ) finally: self.compiler = _compiler def links_to_dynamic(self, ext): """Return true if 'ext' links to a dynamic lib in the same package""" # XXX this should check to ensure the lib is actually being built # XXX as dynamic, and not just using a locally-found version or a # XXX static-compiled version libnames = dict.fromkeys([lib._full_name for lib in self.shlibs]) pkg = '.'.join(ext._full_name.split('.')[:-1]+['']) for libname in ext.libraries: if pkg+libname in libnames: return True return False def get_outputs(self): outputs = _build_ext.get_outputs(self) optimize = self.get_finalized_command('build_py').optimize for ext in self.extensions: if ext._needs_stub: base = os.path.join(self.build_lib, *ext._full_name.split('.')) outputs.append(base+'.py') outputs.append(base+'.pyc') if optimize: outputs.append(base+'.pyo') return outputs def write_stub(self, output_dir, ext, compile=False): log.info("writing stub loader for %s to %s",ext._full_name, output_dir) stub_file = os.path.join(output_dir, *ext._full_name.split('.'))+'.py' if compile and os.path.exists(stub_file): raise DistutilsError(stub_file+" already exists! Please delete.") if not self.dry_run: f = open(stub_file,'w') f.write('\n'.join([ "def __bootstrap__():", " global __bootstrap__, __file__, __loader__", " import sys, os, pkg_resources, imp"+if_dl(", dl"), " __file__ = pkg_resources.resource_filename(__name__,%r)" % os.path.basename(ext._file_name), " del __bootstrap__", " if '__loader__' in globals():", " del __loader__", if_dl(" old_flags = sys.getdlopenflags()"), " old_dir = os.getcwd()", " try:", " os.chdir(os.path.dirname(__file__))", if_dl(" sys.setdlopenflags(dl.RTLD_NOW)"), " imp.load_dynamic(__name__,__file__)", " finally:", if_dl(" sys.setdlopenflags(old_flags)"), " os.chdir(old_dir)", "__bootstrap__()", "" # terminal \n ])) f.close() if compile: from distutils.util import byte_compile byte_compile([stub_file], optimize=0, force=True, dry_run=self.dry_run) optimize = self.get_finalized_command('install_lib').optimize if optimize > 0: byte_compile([stub_file], optimize=optimize, force=True, dry_run=self.dry_run) if os.path.exists(stub_file) and not self.dry_run: os.unlink(stub_file) if use_stubs or os.name=='nt': # Build shared libraries # def link_shared_object(self, objects, output_libname, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None ): self.link( self.SHARED_LIBRARY, objects, output_libname, output_dir, libraries, library_dirs, runtime_library_dirs, export_symbols, debug, extra_preargs, extra_postargs, build_temp, target_lang ) else: # Build static libraries everywhere else libtype = 'static' def link_shared_object(self, objects, output_libname, output_dir=None, libraries=None, library_dirs=None, runtime_library_dirs=None, export_symbols=None, debug=0, extra_preargs=None, extra_postargs=None, build_temp=None, target_lang=None ): # XXX we need to either disallow these attrs on Library instances, # or warn/abort here if set, or something... #libraries=None, library_dirs=None, runtime_library_dirs=None, #export_symbols=None, extra_preargs=None, extra_postargs=None, #build_temp=None assert output_dir is None # distutils build_ext doesn't pass this output_dir,filename = os.path.split(output_libname) basename, ext = os.path.splitext(filename) if self.library_filename("x").startswith('lib'): # strip 'lib' prefix; this is kludgy if some platform uses # a different prefix basename = basename[3:] self.create_static_lib( objects, basename, output_dir, debug, target_lang ) 07070100062169000081a4000000000000000000000001513ff4b600004641000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyc ?Qc@shdZddlZddlZddlZddlmZddlTddlmZddl m Z ddl m Z ddl mZdd lmZmZmZmZmZmZmZmZdd l mZd efd YZd efdYZde fdYZdZdZdZdZdZdZ e!dZ"dZ#dZ$dS(sUsetuptools.command.egg_info Create a distribution's .egg-info directory and contentsiN(tCommand(t*(tlog(tsdist(t convert_path(tFileList(tparse_requirementst safe_namet parse_versiont safe_versiont yield_linest EntryPointtiter_entry_pointst to_filename(t walk_revctrltegg_infocBseZdZdd d!d"d#d$gZddgZidd 6dd6ZdZdZdZe dZ dZ dZ dZ dZdZdZdZdZRS(%s+create a distribution's .egg-info directorys egg-base=tesLdirectory containing .egg-info directories (default: top of the source tree)stag-svn-revisiontrs,Add subversion revision ID to version numberstag-datetds0Add date stamp (e.g. 20050528) to version numbers tag-build=tbs-Specify explicit tag to add to version numbersno-svn-revisiontRs*Don't add subversion revision ID [default]sno-datetDs"Don't include date stamp [default]cCsUd|_d|_d|_d|_d|_d|_d|_t|_ d|_ dS(Ni( tNonetegg_namet egg_versiontegg_baseRt tag_buildttag_svn_revisionttag_datetFalsetbroken_egg_infotvtags(tself((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytinitialize_options*s        cCsCddlm}||iidd6dd6|jd6d6dS(Ni(t edit_configiRRRR(tsetoptR"ttags(R tfilenameR"((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytsave_version_info5s cCst|jj|_|j|_|j|_y$tt d|j|jfWn-t k rt d|j|jfnX|j dkr|jj}|pijdtj|_ n|jdt|jd|_|j tjkrtjj|j |j|_nd|jkr8|jn|j|jj_|jj}|dk r|j|jjkr|j|_t|j|_d|j_ndS(Ns%s==%ss2Invalid distribution name or version syntax: %s-%stRs .egg-infot-( Rt distributiontget_nameRR$Rttagged_versionRtlistRt ValueErrortDistutilsOptionErrorRRt package_dirtgettostcurdirtensure_dirnameR Rtpathtjointcheck_broken_egg_infotmetadatatversiont _patched_disttkeytlowert_versionRt_parsed_version(R tdirstpd((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytfinalize_optionsSs2!  ! !  $ cCsl|r|j|||nLtjj|rh|dkrX| rXtjd||dS|j|ndS(sWrite `data` to `filename` or delete if empty If `data` is non-empty, this routine is the same as ``write_file()``. If `data` is empty but not ``None``, this is the same as calling ``delete_file(filename)`. If `data` is ``None``, then this is a no-op unless `filename` exists, in which case a warning is issued about the orphaned file (if `force` is false), or deleted (if `force` is true). s$%s not set in setup(), but %s existsN(t write_fileR1R4texistsRRtwarnt delete_file(R twhatR%tdatatforce((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytwrite_or_delete_file|s  cCsjtjd||tjdkr4|jd}n|jsft|d}|j||jndS(sWrite `data` to `filename` (if not a dry run) after announcing it `what` is used in a log message to identify what is being written to the file. swriting %s to %sisutf-8twbN(i( Rtinfotsyst version_infotencodetdry_runtopentwritetclose(R RER%RFtf((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRAs  cCs-tjd||js)tj|ndS(s8Delete `filename` (if not a dry run) after announcing its deleting %sN(RRJRNR1tunlink(R R%((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRDs cCst|jj|jS(N(R R)t get_versionR(R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR+scCs|j|j|jj}xNtdD]@}|jd|}|||jtjj |j|jq)Wtjj |jd}tjj |r|j |n|j dS(Nsegg_info.writerst installersnative_libs.txt( tmkpathRR)tfetch_build_eggR tloadtnameR1R4R5RBRDt find_sources(R RUteptwritertnl((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytruns ,cCsd}|jr||j7}n|jrctjjdsLtjjdrc|d|j7}n|jrddl}||jd7}n|S(NR's.svnsPKG-INFOs-r%sis-%Y%m%d( RRR1R4RBtget_svn_revisionRttimetstrftime(R R8R`((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR$s  $  c Cs0d}tjd}tjd}xtjtjD]\}}}d|kr_g|(q7n|jdttjj|dd}|j }|j |j ds|j ds|j drPt t j|jd }|dd=|dd } tg|D]2} t| d kr | d r t| d ^q dg} n|j d r|j|jd } tg|j|D]} t| jd ^qdg} ntjd|g|(q7|tjkr| d} n| j | s g|(q7nt|| }q7Wt |p,tS(Nis url="([^"]+)"scommitted-rev="(\d+)"s.svntentriest10t9t8s ii stfilesRRRFtdirurlRtlocalrevtmtbase_url((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR_s:"    - OA cCsJtjj|jd}t|j}||_|j|j|_dS(s"Generate SOURCES.txt manifest files SOURCES.txtN( R1R4R5Rtmanifest_makerR)tmanifestR^tfilelist(R tmanifest_filenametmm((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRZs   cCs|jd}|jtjkr:tjj|j|}ntjj|rtjddddd||j |j |_ ||_ ndS(Ns .egg-infoR(iNs Note: Your current .egg-info directory has a '-' in its name; this will not work correctly with "setup.py develop". Please rename %s to %s to correct this problem. ( RRR1R2R4R5RBRRCRR(R tbei((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR6s   (s egg-base=RsLdirectory containing .egg-info directories (default: top of the source tree)(stag-svn-revisionRs,Add subversion revision ID to version number(stag-dateRs0Add date stamp (e.g. 20050528) to version number(s tag-build=Rs-Specify explicit tag to add to version number(sno-svn-revisionRs*Don't add subversion revision ID [default](sno-dateRs"Don't include date stamp [default](t__name__t __module__t descriptiont user_optionstboolean_optionst negative_optR!R&R@RRHRARDR+R^R$R_RZR6(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRs0      )       ) RcBseZdZdZRS(s@File list that accepts only existing, platform-independent pathscCsQ|jdr|d }nt|}tjj|rM|jj|ndS(Ns i(tendswithRR1R4RBR|tappend(R titemR4((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRs   (RRt__doc__R(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRsRcBsMeZdZdZdZdZdZdZdZdZ RS(s MANIFEST.incCs(d|_d|_d|_d|_dS(Ni(t use_defaultstprunet manifest_onlytforce_manifest(R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR!&s   cCsdS(N((R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR@,scCst|_tjj|js.|jn|jj|jtjj|j rg|j n|j |jj |jj |jdS(N(RRR1R4RBRtwrite_manifesttfindallt add_defaultsttemplatet read_templatetprune_file_listtsorttremove_duplicates(R ((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR^/s        cCsm|jj}tjdkrFg|D]}|jtjd^q"}n|jt|j|fd|jdS(sWrite the file list in 'self.filelist' (presumably as filled in by 'add_defaults()' and 'read_template()') to the manifest file named by 'self.manifest'. Rfswriting manifest file '%s'N(RR|R1tseptreplacetexecuteRAR(R R|RR((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR<s  +cCs&|jds"tj||ndS(Nsstandard file not found:(RlRRC(R tmsg((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRCGscCstj||jj|j|jj|jtt}|r[|jj|n"t j j |jr}|j n|j d}|jjdd|jdS(NRRtprefix(RRRRRRR,RtextendR1R4RBt read_manifesttget_finalized_commandtinclude_patternR(R trcfilestei_cmd((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRKs  cCs|jd}|jj}|jjdd|j|jjdd|tjt j }|jj|d|dddS(NtbuildRs(RCS|CVS|\.svn)tis_regexi( RR)t get_fullnameRtexclude_patternRt build_baseRgtescapeR1R(R Rtbase_dirR((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRWs ( RRRR!R@R^RRCRR(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyR"s    cCsZdj|}tjdkr0|jd}nt|d}|j||jdS(s{Create a file with the specified name and write 'contents' (a sequence of strings without line terminators) to it. s isutf-8RIN(i(R5RKRLRMRORPRQ(R%tcontentsRR((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRA`s  cCstjd||js|jj}|j|j|_}|j|j|_}z|j |j Wd|||_|_Xt |jdd}ddl }|j|j |ndS(Ns writing %stzip_safei(RRJRNR)R7RR8RRYtwrite_pkg_infoRtgetattrRt bdist_eggtwrite_safety_flag(tcmdtbasenameR%R7toldvertoldnametsafeR((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRws   cCs&tjj|r"tjdndS(NssWARNING: 'depends.txt' is not used by setuptools 0.6! Use the install_requires/extras_require setup() args instead.(R1R4RBRRC(RRR%((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytwarn_depends_obsoletesc Cs|j}djt|jpdg}xI|jp9ijD]2\}}|jd|djt|fq@W|jd|dj|dS(Ns s [%s] %st requirementsR'((R)R5R tinstall_requirestextras_requiretitemsRRH(RRR%tdistRFtextratreqs((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytwrite_requirementss  !"*cCs_tjg|jjD]}|jddd^q}|jd|dj|ddS(Nt.iistop-level namess (tdicttfromkeysR)titer_distribution_namesRpRAR5(RRR%tktpkgs((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pytwrite_toplevel_namess2cCst|||tdS(N(t write_argtTrue(RRR%((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyt overwrite_argscCsgtjj|d}t|j|d}|dk rMdj|d}n|j||||dS(Nis (R1R4tsplitextRR)RR5RH(RRR%RGtargnametvalue((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRs  cCs|jj}t|ts'|dkr0|}n|dk rg}xs|jD]e\}}t|tstj||}djt t |j }n|j d||fqOWdj|}n|j d||tdS(Ns s [%s] %s R's entry points(R)t entry_pointst isinstancet basestringRRR t parse_groupR5RmRntvaluesRRHR(RRR%R[RFtsectionR((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyt write_entriess   !cCsntjjdrjtdd}x9|D]1}tjd|}|r(t|jdSq(W|jndS(NsPKG-INFOtrUsVersion:.*-r(\d+)\s*$ii( R1R4RBRORgtmatchRsRuRQ(RRtlineR((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyRws  (%RR1RgRKt setuptoolsRtdistutils.errorst distutilsRtsetuptools.command.sdistRtdistutils.utilRtdistutils.filelistRt pkg_resourcesRRRR R R R R RRRRARRRRRRRRRw(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/egg_info.pyts*$ :>       0707010006215a000081ed000000000000000000000001513ff4b5000048a2000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_egg.py"""setuptools.command.bdist_egg Build .egg distributions""" # This module should be kept compatible with Python 2.3 import sys, os, marshal from setuptools import Command from distutils.dir_util import remove_tree, mkpath try: from distutils.sysconfig import get_python_version, get_python_lib except ImportError: from sysconfig import get_python_version from distutils.sysconfig import get_python_lib from distutils import log from distutils.errors import DistutilsSetupError from pkg_resources import get_build_platform, Distribution, ensure_directory from pkg_resources import EntryPoint from types import CodeType from setuptools.extension import Library def strip_module(filename): if '.' in filename: filename = os.path.splitext(filename)[0] if filename.endswith('module'): filename = filename[:-6] return filename def write_stub(resource, pyfile): f = open(pyfile,'w') f.write('\n'.join([ "def __bootstrap__():", " global __bootstrap__, __loader__, __file__", " import sys, pkg_resources, imp", " __file__ = pkg_resources.resource_filename(__name__,%r)" % resource, " __loader__ = None; del __bootstrap__, __loader__", " imp.load_dynamic(__name__,__file__)", "__bootstrap__()", "" # terminal \n ])) f.close() # stub __init__.py for packages distributed without one NS_PKG_STUB = '__import__("pkg_resources").declare_namespace(__name__)' class bdist_egg(Command): description = "create an \"egg\" distribution" user_options = [ ('bdist-dir=', 'b', "temporary directory for creating the distribution"), ('plat-name=', 'p', "platform name to embed in generated filenames " "(default: %s)" % get_build_platform()), ('exclude-source-files', None, "remove all .py files from the generated egg"), ('keep-temp', 'k', "keep the pseudo-installation tree around after " + "creating the distribution archive"), ('dist-dir=', 'd', "directory to put final built distributions in"), ('skip-build', None, "skip rebuilding everything (for testing/debugging)"), ] boolean_options = [ 'keep-temp', 'skip-build', 'exclude-source-files' ] def initialize_options (self): self.bdist_dir = None self.plat_name = None self.keep_temp = 0 self.dist_dir = None self.skip_build = 0 self.egg_output = None self.exclude_source_files = None def finalize_options(self): ei_cmd = self.ei_cmd = self.get_finalized_command("egg_info") self.egg_info = ei_cmd.egg_info if self.bdist_dir is None: bdist_base = self.get_finalized_command('bdist').bdist_base self.bdist_dir = os.path.join(bdist_base, 'egg') if self.plat_name is None: self.plat_name = get_build_platform() self.set_undefined_options('bdist',('dist_dir', 'dist_dir')) if self.egg_output is None: # Compute filename of the output egg basename = Distribution( None, None, ei_cmd.egg_name, ei_cmd.egg_version, get_python_version(), self.distribution.has_ext_modules() and self.plat_name ).egg_name() self.egg_output = os.path.join(self.dist_dir, basename+'.egg') def do_install_data(self): # Hack for packages that install data to install's --install-lib self.get_finalized_command('install').install_lib = self.bdist_dir site_packages = os.path.normcase(os.path.realpath(get_python_lib())) old, self.distribution.data_files = self.distribution.data_files,[] for item in old: if isinstance(item,tuple) and len(item)==2: if os.path.isabs(item[0]): realpath = os.path.realpath(item[0]) normalized = os.path.normcase(realpath) if normalized==site_packages or normalized.startswith( site_packages+os.sep ): item = realpath[len(site_packages)+1:], item[1] # XXX else: raise ??? self.distribution.data_files.append(item) try: log.info("installing package data to %s" % self.bdist_dir) self.call_command('install_data', force=0, root=None) finally: self.distribution.data_files = old def get_outputs(self): return [self.egg_output] def call_command(self,cmdname,**kw): """Invoke reinitialized command `cmdname` with keyword args""" for dirname in INSTALL_DIRECTORY_ATTRS: kw.setdefault(dirname,self.bdist_dir) kw.setdefault('skip_build',self.skip_build) kw.setdefault('dry_run', self.dry_run) cmd = self.reinitialize_command(cmdname, **kw) self.run_command(cmdname) return cmd def run(self): # Generate metadata first self.run_command("egg_info") # We run install_lib before install_data, because some data hacks # pull their data path from the install_lib command. log.info("installing library code to %s" % self.bdist_dir) instcmd = self.get_finalized_command('install') old_root = instcmd.root; instcmd.root = None cmd = self.call_command('install_lib', warn_dir=0) instcmd.root = old_root all_outputs, ext_outputs = self.get_ext_outputs() self.stubs = [] to_compile = [] for (p,ext_name) in enumerate(ext_outputs): filename,ext = os.path.splitext(ext_name) pyfile = os.path.join(self.bdist_dir, strip_module(filename)+'.py') self.stubs.append(pyfile) log.info("creating stub loader for %s" % ext_name) if not self.dry_run: write_stub(os.path.basename(ext_name), pyfile) to_compile.append(pyfile) ext_outputs[p] = ext_name.replace(os.sep,'/') to_compile.extend(self.make_init_files()) if to_compile: cmd.byte_compile(to_compile) if self.distribution.data_files: self.do_install_data() # Make the EGG-INFO directory archive_root = self.bdist_dir egg_info = os.path.join(archive_root,'EGG-INFO') self.mkpath(egg_info) if self.distribution.scripts: script_dir = os.path.join(egg_info, 'scripts') log.info("installing scripts to %s" % script_dir) self.call_command('install_scripts',install_dir=script_dir,no_ep=1) self.copy_metadata_to(egg_info) native_libs = os.path.join(egg_info, "native_libs.txt") if all_outputs: log.info("writing %s" % native_libs) if not self.dry_run: ensure_directory(native_libs) libs_file = open(native_libs, 'wt') libs_file.write('\n'.join(all_outputs)) libs_file.write('\n') libs_file.close() elif os.path.isfile(native_libs): log.info("removing %s" % native_libs) if not self.dry_run: os.unlink(native_libs) write_safety_flag( os.path.join(archive_root,'EGG-INFO'), self.zip_safe() ) if os.path.exists(os.path.join(self.egg_info,'depends.txt')): log.warn( "WARNING: 'depends.txt' will not be used by setuptools 0.6!\n" "Use the install_requires/extras_require setup() args instead." ) if self.exclude_source_files: self.zap_pyfiles() # Make the archive make_zipfile(self.egg_output, archive_root, verbose=self.verbose, dry_run=self.dry_run, mode=self.gen_header()) if not self.keep_temp: remove_tree(self.bdist_dir, dry_run=self.dry_run) # Add to 'Distribution.dist_files' so that the "upload" command works getattr(self.distribution,'dist_files',[]).append( ('bdist_egg',get_python_version(),self.egg_output)) def zap_pyfiles(self): log.info("Removing .py files from temporary directory") for base,dirs,files in walk_egg(self.bdist_dir): for name in files: if name.endswith('.py'): path = os.path.join(base,name) log.debug("Deleting %s", path) os.unlink(path) def zip_safe(self): safe = getattr(self.distribution,'zip_safe',None) if safe is not None: return safe log.warn("zip_safe flag not set; analyzing archive contents...") return analyze_egg(self.bdist_dir, self.stubs) def make_init_files(self): """Create missing package __init__ files""" init_files = [] for base,dirs,files in walk_egg(self.bdist_dir): if base==self.bdist_dir: # don't put an __init__ in the root continue for name in files: if name.endswith('.py'): if '__init__.py' not in files: pkg = base[len(self.bdist_dir)+1:].replace(os.sep,'.') if self.distribution.has_contents_for(pkg): log.warn("Creating missing __init__.py for %s",pkg) filename = os.path.join(base,'__init__.py') if not self.dry_run: f = open(filename,'w'); f.write(NS_PKG_STUB) f.close() init_files.append(filename) break else: # not a package, don't traverse to subdirectories dirs[:] = [] return init_files def gen_header(self): epm = EntryPoint.parse_map(self.distribution.entry_points or '') ep = epm.get('setuptools.installation',{}).get('eggsecutable') if ep is None: return 'w' # not an eggsecutable, do it the usual way. if not ep.attrs or ep.extras: raise DistutilsSetupError( "eggsecutable entry point (%r) cannot have 'extras' " "or refer to a module" % (ep,) ) pyver = sys.version[:3] pkg = ep.module_name full = '.'.join(ep.attrs) base = ep.attrs[0] basename = os.path.basename(self.egg_output) header = ( "#!/bin/sh\n" 'if [ `basename $0` = "%(basename)s" ]\n' 'then exec python%(pyver)s -c "' "import sys, os; sys.path.insert(0, os.path.abspath('$0')); " "from %(pkg)s import %(base)s; sys.exit(%(full)s())" '" "$@"\n' 'else\n' ' echo $0 is not the correct name for this egg file.\n' ' echo Please rename it back to %(basename)s and try again.\n' ' exec false\n' 'fi\n' ) % locals() if not self.dry_run: mkpath(os.path.dirname(self.egg_output), dry_run=self.dry_run) f = open(self.egg_output, 'w') f.write(header) f.close() return 'a' def copy_metadata_to(self, target_dir): "Copy metadata (egg info) to the target_dir" # normalize the path (so that a forward-slash in egg_info will # match using startswith below) norm_egg_info = os.path.normpath(self.egg_info) prefix = os.path.join(norm_egg_info,'') for path in self.ei_cmd.filelist.files: if path.startswith(prefix): target = os.path.join(target_dir, path[len(prefix):]) ensure_directory(target) self.copy_file(path, target) def get_ext_outputs(self): """Get a list of relative paths to C extensions in the output distro""" all_outputs = [] ext_outputs = [] paths = {self.bdist_dir:''} for base, dirs, files in os.walk(self.bdist_dir): for filename in files: if os.path.splitext(filename)[1].lower() in NATIVE_EXTENSIONS: all_outputs.append(paths[base]+filename) for filename in dirs: paths[os.path.join(base,filename)] = paths[base]+filename+'/' if self.distribution.has_ext_modules(): build_cmd = self.get_finalized_command('build_ext') for ext in build_cmd.extensions: if isinstance(ext,Library): continue fullname = build_cmd.get_ext_fullname(ext.name) filename = build_cmd.get_ext_filename(fullname) if not os.path.basename(filename).startswith('dl-'): if os.path.exists(os.path.join(self.bdist_dir,filename)): ext_outputs.append(filename) return all_outputs, ext_outputs NATIVE_EXTENSIONS = dict.fromkeys('.dll .so .dylib .pyd'.split()) def walk_egg(egg_dir): """Walk an unpacked egg's contents, skipping the metadata directory""" walker = os.walk(egg_dir) base,dirs,files = walker.next() if 'EGG-INFO' in dirs: dirs.remove('EGG-INFO') yield base,dirs,files for bdf in walker: yield bdf def analyze_egg(egg_dir, stubs): # check for existing flag in EGG-INFO for flag,fn in safety_flags.items(): if os.path.exists(os.path.join(egg_dir,'EGG-INFO',fn)): return flag if not can_scan(): return False safe = True for base, dirs, files in walk_egg(egg_dir): for name in files: if name.endswith('.py') or name.endswith('.pyw'): continue elif name.endswith('.pyc') or name.endswith('.pyo'): # always scan, even if we already know we're not safe safe = scan_module(egg_dir, base, name, stubs) and safe return safe def write_safety_flag(egg_dir, safe): # Write or remove zip safety flag file(s) for flag,fn in safety_flags.items(): fn = os.path.join(egg_dir, fn) if os.path.exists(fn): if safe is None or bool(safe)<>flag: os.unlink(fn) elif safe is not None and bool(safe)==flag: f=open(fn,'wt'); f.write('\n'); f.close() safety_flags = { True: 'zip-safe', False: 'not-zip-safe', } def scan_module(egg_dir, base, name, stubs): """Check whether module possibly uses unsafe-for-zipfile stuff""" filename = os.path.join(base,name) if filename[:-1] in stubs: return True # Extension module pkg = base[len(egg_dir)+1:].replace(os.sep,'.') module = pkg+(pkg and '.' or '')+os.path.splitext(name)[0] f = open(filename,'rb'); f.read(8) # skip magic & date try: code = marshal.load(f); f.close() except ValueError: f.seek(0); f.read(12) # skip magic & date & file size; file size added in Python 3.3 code = marshal.load(f); f.close() safe = True symbols = dict.fromkeys(iter_symbols(code)) for bad in ['__file__', '__path__']: if bad in symbols: log.warn("%s: module references %s", module, bad) safe = False if 'inspect' in symbols: for bad in [ 'getsource', 'getabsfile', 'getsourcefile', 'getfile' 'getsourcelines', 'findsource', 'getcomments', 'getframeinfo', 'getinnerframes', 'getouterframes', 'stack', 'trace' ]: if bad in symbols: log.warn("%s: module MAY be using inspect.%s", module, bad) safe = False if '__name__' in symbols and '__main__' in symbols and '.' not in module: if sys.version[:3]=="2.4": # -m works w/zipfiles in 2.5 log.warn("%s: top-level module may be 'python -m' script", module) safe = False return safe def iter_symbols(code): """Yield names and strings used by `code` and its nested code objects""" for name in code.co_names: yield name for const in code.co_consts: if isinstance(const,basestring): yield const elif isinstance(const,CodeType): for name in iter_symbols(const): yield name def can_scan(): if sys.version_info > (3, 3): return False # Can't scan recent formats if not sys.platform.startswith('java') and sys.platform != 'cli': # CPython, PyPy, etc. return True log.warn("Unable to analyze compiled code on this platform.") log.warn("Please ask the author to include a 'zip_safe'" " setting (either True or False) in the package's setup.py") # Attribute names of options for commands that might need to be convinced to # install to the egg build directory INSTALL_DIRECTORY_ATTRS = [ 'install_lib', 'install_dir', 'install_data', 'install_base' ] def make_zipfile(zip_filename, base_dir, verbose=0, dry_run=0, compress=None, mode='w' ): """Create a zip file from all the files under 'base_dir'. The output zip file will be named 'base_dir' + ".zip". Uses either the "zipfile" Python module (if available) or the InfoZIP "zip" utility (if installed and found on the default search path). If neither tool is available, raises DistutilsExecError. Returns the name of the output zip file. """ import zipfile mkpath(os.path.dirname(zip_filename), dry_run=dry_run) log.info("creating '%s' and adding '%s' to it", zip_filename, base_dir) def visit(z, dirname, names): for name in names: path = os.path.normpath(os.path.join(dirname, name)) if os.path.isfile(path): p = path[len(base_dir)+1:] if not dry_run: z.write(path, p) log.debug("adding '%s'" % p) if compress is None: compress = (sys.version>="2.4") # avoid 2.3 zipimport bug when 64 bits compression = [zipfile.ZIP_STORED, zipfile.ZIP_DEFLATED][bool(compress)] if not dry_run: z = zipfile.ZipFile(zip_filename, mode, compression=compression) for dirname, dirs, files in os.walk(base_dir): visit(z, dirname, files) z.close() else: for dirname, dirs, files in os.walk(base_dir): visit(None, dirname, files) return zip_filename # 07070100062181000081a4000000000000000000000001513ff4b600001a4e000000b600010002ffffffffffffffff0000006a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyc ?Qc@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z yddl mZWn!ek rddlmZnXejdkZyeWnek reZnXdZdefd YZdS( ssupload_docs Implements a Distutils 'upload_docs' subcommand (upload documentation to PyPI's packages.python.org). iN(tlog(tDistutilsOptionError(tuploadt3cCs$t|ts|jdS|SdS(s^Return bytes by either encoding the argument as ASCII or simply return the argument as-is.tasciiN(t isinstancetbytestencode(t str_or_bytes((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pytb s t upload_docscBsceZdZdddejfddgZejZdZd Z d Z d Z d Z RS(sUpload documentation to PyPIs repository=trsurl of repository [default: %s]s show-responses&display full response text from servers upload-dir=sdirectory to uploadcCstj|d|_dS(N(Rtinitialize_optionstNonet upload_dir(tself((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyR 6s cCs~tj||jdkrY|jd}tjj|jd|_|j |jn|j d|j d|jdS(NtbuildtdocsRsUsing upload directory %s( Rtfinalize_optionsRR tget_finalized_commandtostpathtjoint build_basetmkpathtensure_dirnametannounce(RR((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyR:s  c Cs|jjj}tj}tjj|d|}tj |d}xtj |j D]\}}}||j kr| rt d|j nxj|D]b}tjj||}|t |j jtjj} tjj| |} |j|| qWq\W|j|S(Ns%s.ziptws'no files found in upload directory '%s'(t distributiontmetadatatget_namettempfiletmkdtempRRRtzipfiletZipFiletwalkRRtlentlstriptseptwritetclose( Rtnamettmp_dirttmp_filetzip_filetroottdirstfilestfulltrelativetdest((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pytcreate_zipfileCs  " " cCs|j}|j|dS(N(R3t upload_file(RR,((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pytrunUs cCs}t|dj}|jj}idd6|jd6tjj||fd6}|jd|j }t rt j |j d}td}nt j|}d}||j7}td }td |} | td } g} x|jD] \} } t| tgkr)| g} nx| D]}t|tkritd |d }|d}n td}| j| | jtd| | j|| jtd| jt||r0|dtdkr0| jtdq0q0WqW| j| | jtdtdj| } |jd|jtjtj|j\}}}}}}| r| r| st|dkrtj|}n.|dkrtj|}ntd|d}tj}yu|j |j!d||j"dd||j"dt#t$| |j"d||j%|j&| Wn0t'j(k r}|jt#|tj)dSX|j*}|j+dkr|jd|j+|j,ftjnz|j+d kr/|j-d!}|dkrd"|j}n|jd#|tjn#|jd$|j+|j,ftj)|j/ryd%d&G|jGd%d&GHndS('Ntrbt doc_uploads:actionR)tcontentt:tutf8sBasic s3--------------GHSKFJDLGDS7543FJKLFHRE75642756743254s --s--s;filename="%s"iits* Content-Disposition: form-data; name="%s"s is s sSubmitting documentation to %sthttpthttpssunsupported schema tPOSTs Content-types multipart/form-data; boundary=%ssContent-lengtht AuthorizationisServer response (%s): %si-tLocationshttp://packages.python.org/%s/sUpload successful. Visit %ssUpload failed (%s): %st-iK(0topentreadRRRRRtbasenametusernametpasswordt _IS_PYTHON3tbase64t encodebytesRRt encodestringtstripR titemsttypettupletappendRRt repositoryRtINFOturlparsetAssertionErrorthttplibtHTTPConnectiontHTTPSConnectiontconnectt putrequestt putheadertstrR$t endheaderstsendtsocketterrortERRORt getresponsetstatustreasont getheaderR t show_response(RtfilenameR8tmetatdatat credentialst encoded_credstauthtboundaryt sep_boundaryt end_boundarytbodytkeytvaluestvaluetfntschematnetlocturltparamstqueryt fragmentstconntloglevelteR tlocation((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyR4Ys           $              N(s show-responseNs&display full response text from server(s upload-dir=Nsdirectory to upload( t__name__t __module__t descriptionRtDEFAULT_REPOSITORYR t user_optionstboolean_optionsR RR3R5R4(((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyR )s      (t__doc__RR]R!RTRHRRRtsyst distutilsRtdistutils.errorsRtdistutils.command.uploadRt ImportErrortsetuptools.command.uploadtversionRGRt NameErrorRZR R (((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.pyts*            07070100062156000081ed000000000000000000000001513ff4b5000002b1000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/__init__.py__all__ = [ 'alias', 'bdist_egg', 'bdist_rpm', 'build_ext', 'build_py', 'develop', 'easy_install', 'egg_info', 'install', 'install_lib', 'rotate', 'saveopts', 'sdist', 'setopt', 'test', 'upload', 'install_egg_info', 'install_scripts', 'register', 'bdist_wininst', 'upload_docs', ] from setuptools.command import install_scripts import sys if sys.version>='2.5': # In Python 2.5 and above, distutils includes its own upload command __all__.remove('upload') from distutils.command.bdist import bdist if 'egg' not in bdist.format_commands: bdist.format_command['egg'] = ('bdist_egg', "Python .egg file") bdist.format_commands.append('egg') del bdist, sys 07070100062177000081a4000000000000000000000001513ff4b600000559000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/saveopts.pyc ?Qc@sXddlZddlZddlmZddlmZmZdefdYZdS(iN(tCommand(t edit_configt option_basetsaveoptscBseZdZdZdZRS(s#Save command-line options to a files7save supplied options to setup.cfg or other config filecCs|j}|jj}i}xq|D]i}|dkr=q%nxN|j|jD]7\}\}}|dkrS||j|i|s07070100062172000081ed000000000000000000000001513ff4b500000115000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyfrom distutils.command.register import register as _register class register(_register): __doc__ = _register.__doc__ def run(self): # Make sure that we are using valid current name/version info self.run_command('egg_info') _register.run(self) 07070100062161000081a4000000000000000000000001513ff4b600002a33000000b600010002ffffffffffffffff0000006800000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyc ?Qc @sddlmZyddlmZWnek r=eZnXddlZddlZddlm Z ddl m Z ddl m Z ddlmZmZedddlmZdd lmZdd lTeZeZd Zejd kreZnFejd kr@y ddlmZeZeZWq@ek r<q@XndZdefdYZestejd krddddddddddd Z n-dZddddddddddd Z dS(i(t build_extN(t copy_file(tLibrary(t new_compiler(tcustomize_compilertget_config_vartLDSHARED(t _config_vars(tlog(t*tsharedtdarwintnt(tRTLD_NOWcCstr |SdS(Nt(t have_rtld(ts((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pytif_dl sRcBseZdZdZeek r@eed r@dZndZdZ dZ dZ dZ d Z d Zd Zed ZRS( cCs@|jd}|_tj|||_|r<|jndS(s;Build extensions in build directory, then copy if --inplaceiN(tinplacet _build_exttruntcopy_extensions_to_source(tselft old_inplace((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyR+s   c Cs|jd}x|jD]}|j|j}|j|}|jd}dj|d }|j|}tj j|tj j |}tj j|j |} t | |d|j d|j|jr|j|ptj|tqqWdS(Ntbuild_pyt.itverbosetdry_run(tget_finalized_commandt extensionstget_ext_fullnametnametget_ext_filenametsplittjointget_package_dirtostpathtbasenamet build_libRRRt _needs_stubt write_stubtcurdirtTrue( RRtexttfullnametfilenametmodpathtpackaget package_dirt dest_filenamet src_filename((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyR3s!  t pyrex_sourcescGs+tj||p|}tj|||S(N(Rt swig_sourcest _du_build_ext(Rtsourcest otherargs((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyR5KscCstj||}||jkr%|S|j|}t|trltjj|\}}|jj |t St r|j rtjj |\}}tjj|d|S|SdS(Nsdl-(RR text_mapt isinstanceRR$R%tsplitexttshlib_compilertlibrary_filenametlibtypet use_stubst_links_to_dynamicR!R"(RR-R.R,tfntd((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyR Ss cCs,tj|d|_g|_i|_dS(N(Rtinitialize_optionstNoneR<tshlibsR9(R((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyRCas   c Cstj||jpg|_|j|jg|jD]}t|tr9|^q9|_|jrs|jnx&|jD]}|j|j |_ q}Wx|jD]}|j }||j |<||j |j dd<|jr|j |pt}|_|otot|t |_|j|}|_tjjtjj|j|}|r||jkr|jj|n|rtrtj|jkr|jjtjqqWdS(NRi(Rtfinalize_optionsRtcheck_extensions_listR:RREtsetup_shlib_compilerRRt _full_nameR9R!tlinks_to_dynamictFalseR@R?R(R t _file_nameR$R%tdirnameR"R't library_dirstappendR*truntime_library_dirs(RR,R-tltdR.tlibdir((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pyRFgs*     %$cCstd|jd|jd|j}|_tjdkrtj}z,dtdRXR+RtdlR RRDRi(((sb/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_ext.pytsJ             07070100062176000081ed000000000000000000000001513ff4b5000002e4000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/saveopts.pyimport distutils, os from setuptools import Command from setuptools.command.setopt import edit_config, option_base class saveopts(option_base): """Save command-line options to a file""" description = "save supplied options to setup.cfg or other config file" def run(self): dist = self.distribution commands = dist.command_options.keys() settings = {} for cmd in commands: if cmd=='saveopts': continue # don't save our own options! for opt,(src,val) in dist.get_option_dict(cmd).items(): if src=="command line": settings.setdefault(cmd,{})[opt] = val edit_config(self.filename, settings, self.dry_run) 07070100062159000081a4000000000000000000000001513ff4b600000d89000000b600010002ffffffffffffffff0000006400000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyc ?Qc@sddlZddlZddlmZddlmZddlmZddlTddlm Z m Z m Z dZ de fd YZ d ZdS( iN(tCommand(t convert_path(tlog(t*(t edit_configt option_baset config_filecCsJx$dD]}||krt|SqW|j|gkrFt|S|S(s4Quote an argument for later parsing by shlex.split()t"t's\t#(RRs\R (treprtsplit(targtc((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pytshquotes    taliascBsUeZdZdZeZdgejZejdgZdZ dZ dZ RS( s3Define a shortcut that invokes one or more commandss0define a shortcut to invoke one or more commandstremovetrsremove (unset) the aliascCs#tj|d|_d|_dS(N(Rtinitialize_optionstNonetargsR(tself((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyRs  cCs>tj||jr:t|jdkr:tdndS(NisFMust specify exactly one argument (the alias name) when using --remove(Rtfinalize_optionsRtlenRtDistutilsOptionError(R((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyR"s cCs|jjd}|jsLdGHdGHx |D]}dGt||GHq,WdSt|jdkr|j\}|jrd}q||krdGt||GHdSd|GHdSn,|jd}djtt |jd}t |j ii||6d6|j dS( NtaliasessCommand Aliasess---------------ssetup.py aliasis No alias definition found for %rit ( t distributiontget_option_dictRt format_aliasRRRtjointmapRRtfilenametdry_run(RRRtcommand((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pytrun*s&        (sremoveRsremove (unset) the alias( t__name__t __module__t__doc__t descriptiontTruetcommand_consumes_argumentsRt user_optionstboolean_optionsRRR#(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyRs   cCs{||\}}|tdkr+d}n@|tdkrFd}n%|tdkrad}n d|}||d|S( Ntglobals--global-config tusers--user-config tlocalts --filename=%rR(R(tnameRtsourceR"((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyREs    (t distutilstost setuptoolsRtdistutils.utilRRtdistutils.errorstsetuptools.command.setoptRRRRRR(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/alias.pyts  40707010006216a000081ed000000000000000000000001513ff4b500000fe1000000b600010002ffffffffffffffff0000006500000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyimport setuptools, sys, glob from distutils.command.install import install as _install from distutils.errors import DistutilsArgError class install(_install): """Use easy_install to install the package, w/dependencies""" user_options = _install.user_options + [ ('old-and-unmanageable', None, "Try not to use this!"), ('single-version-externally-managed', None, "used by system package builders to create 'flat' eggs"), ] boolean_options = _install.boolean_options + [ 'old-and-unmanageable', 'single-version-externally-managed', ] new_commands = [ ('install_egg_info', lambda self: True), ('install_scripts', lambda self: True), ] _nc = dict(new_commands) def initialize_options(self): _install.initialize_options(self) self.old_and_unmanageable = None self.single_version_externally_managed = None self.no_compile = None # make DISTUTILS_DEBUG work right! def finalize_options(self): _install.finalize_options(self) if self.root: self.single_version_externally_managed = True elif self.single_version_externally_managed: if not self.root and not self.record: raise DistutilsArgError( "You must specify --record or --root when building system" " packages" ) def handle_extra_path(self): if self.root or self.single_version_externally_managed: # explicit backward-compatibility mode, allow extra_path to work return _install.handle_extra_path(self) # Ignore extra_path when installing an egg (or being run by another # command without --root or --single-version-externally-managed self.path_file = None self.extra_dirs = '' def run(self): # Explicit request for old-style install? Just do it if self.old_and_unmanageable or self.single_version_externally_managed: return _install.run(self) # Attempt to detect whether we were called from setup() or by another # command. If we were called by setup(), our caller will be the # 'run_command' method in 'distutils.dist', and *its* caller will be # the 'run_commands' method. If we were called any other way, our # immediate caller *might* be 'run_command', but it won't have been # called by 'run_commands'. This is slightly kludgy, but seems to # work. # caller = sys._getframe(2) caller_module = caller.f_globals.get('__name__','') caller_name = caller.f_code.co_name if caller_module != 'distutils.dist' or caller_name!='run_commands': # We weren't called from the command line or setup(), so we # should run in backward-compatibility mode to support bdist_* # commands. _install.run(self) else: self.do_egg_install() def do_egg_install(self): easy_install = self.distribution.get_command_class('easy_install') cmd = easy_install( self.distribution, args="x", root=self.root, record=self.record, ) cmd.ensure_finalized() # finalize before bdist_egg munges install cmd cmd.always_copy_from = '.' # make sure local-dir eggs get installed # pick up setup-dir .egg files only: no .egg-info cmd.package_index.scan(glob.glob('*.egg')) self.run_command('bdist_egg') args = [self.distribution.get_command_obj('bdist_egg').egg_output] if setuptools.bootstrap_install_from: # Bootstrap self-installation of setuptools args.insert(0, setuptools.bootstrap_install_from) cmd.args = args cmd.run() setuptools.bootstrap_install_from = None # XXX Python 3.1 doesn't see _nc if this is inside the class install.sub_commands = [ cmd for cmd in _install.sub_commands if cmd[0] not in install._nc ] + install.new_commands # 07070100062162000081ed000000000000000000000001513ff4b500002934000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/build_py.pyimport os.path, sys, fnmatch from distutils.command.build_py import build_py as _build_py from distutils.util import convert_path from glob import glob try: from distutils.util import Mixin2to3 as _Mixin2to3 # add support for converting doctests that is missing in 3.1 distutils from distutils import log from lib2to3.refactor import RefactoringTool, get_fixers_from_package import setuptools class DistutilsRefactoringTool(RefactoringTool): def log_error(self, msg, *args, **kw): log.error(msg, *args) def log_message(self, msg, *args): log.info(msg, *args) def log_debug(self, msg, *args): log.debug(msg, *args) class Mixin2to3(_Mixin2to3): def run_2to3(self, files, doctests = False): # See of the distribution option has been set, otherwise check the # setuptools default. if self.distribution.use_2to3 is not True: return if not files: return log.info("Fixing "+" ".join(files)) self.__build_fixer_names() self.__exclude_fixers() if doctests: if setuptools.run_2to3_on_doctests: r = DistutilsRefactoringTool(self.fixer_names) r.refactor(files, write=True, doctests_only=True) else: _Mixin2to3.run_2to3(self, files) def __build_fixer_names(self): if self.fixer_names: return self.fixer_names = [] for p in setuptools.lib2to3_fixer_packages: self.fixer_names.extend(get_fixers_from_package(p)) if self.distribution.use_2to3_fixers is not None: for p in self.distribution.use_2to3_fixers: self.fixer_names.extend(get_fixers_from_package(p)) def __exclude_fixers(self): excluded_fixers = getattr(self, 'exclude_fixers', []) if self.distribution.use_2to3_exclude_fixers is not None: excluded_fixers.extend(self.distribution.use_2to3_exclude_fixers) for fixer_name in excluded_fixers: if fixer_name not in self.fixer_names: log.warn("Excluded fixer %s not found", fixer_name) continue self.fixer_names.remove(fixer_name) except ImportError: class Mixin2to3: def run_2to3(self, files, doctests=True): # Nothing done in 2.x pass class build_py(_build_py, Mixin2to3): """Enhanced 'build_py' command that includes data files with packages The data files are specified via a 'package_data' argument to 'setup()'. See 'setuptools.dist.Distribution' for more details. Also, this version of the 'build_py' command allows you to specify both 'py_modules' and 'packages' in the same setup operation. """ def finalize_options(self): _build_py.finalize_options(self) self.package_data = self.distribution.package_data self.exclude_package_data = self.distribution.exclude_package_data or {} if 'data_files' in self.__dict__: del self.__dict__['data_files'] self.__updated_files = [] self.__doctests_2to3 = [] def run(self): """Build modules, packages, and copy data files to build directory""" if not self.py_modules and not self.packages: return if self.py_modules: self.build_modules() if self.packages: self.build_packages() self.build_package_data() self.run_2to3(self.__updated_files, False) self.run_2to3(self.__updated_files, True) self.run_2to3(self.__doctests_2to3, True) # Only compile actual .py files, using our base class' idea of what our # output files are. self.byte_compile(_build_py.get_outputs(self, include_bytecode=0)) def __getattr__(self,attr): if attr=='data_files': # lazily compute data files self.data_files = files = self._get_data_files(); return files return _build_py.__getattr__(self,attr) def build_module(self, module, module_file, package): outfile, copied = _build_py.build_module(self, module, module_file, package) if copied: self.__updated_files.append(outfile) return outfile, copied def _get_data_files(self): """Generate list of '(package,src_dir,build_dir,filenames)' tuples""" self.analyze_manifest() data = [] for package in self.packages or (): # Locate package source directory src_dir = self.get_package_dir(package) # Compute package build directory build_dir = os.path.join(*([self.build_lib] + package.split('.'))) # Length of path to strip from found files plen = len(src_dir)+1 # Strip directory from globbed filenames filenames = [ file[plen:] for file in self.find_data_files(package, src_dir) ] data.append( (package, src_dir, build_dir, filenames) ) return data def find_data_files(self, package, src_dir): """Return filenames for package's data files in 'src_dir'""" globs = (self.package_data.get('', []) + self.package_data.get(package, [])) files = self.manifest_files.get(package, [])[:] for pattern in globs: # Each pattern has to be converted to a platform-specific path files.extend(glob(os.path.join(src_dir, convert_path(pattern)))) return self.exclude_data_files(package, src_dir, files) def build_package_data(self): """Copy data files into build directory""" lastdir = None for package, src_dir, build_dir, filenames in self.data_files: for filename in filenames: target = os.path.join(build_dir, filename) self.mkpath(os.path.dirname(target)) srcfile = os.path.join(src_dir, filename) outf, copied = self.copy_file(srcfile, target) srcfile = os.path.abspath(srcfile) if copied and srcfile in self.distribution.convert_2to3_doctests: self.__doctests_2to3.append(outf) def analyze_manifest(self): self.manifest_files = mf = {} if not self.distribution.include_package_data: return src_dirs = {} for package in self.packages or (): # Locate package source directory src_dirs[assert_relative(self.get_package_dir(package))] = package self.run_command('egg_info') ei_cmd = self.get_finalized_command('egg_info') for path in ei_cmd.filelist.files: d,f = os.path.split(assert_relative(path)) prev = None oldf = f while d and d!=prev and d not in src_dirs: prev = d d, df = os.path.split(d) f = os.path.join(df, f) if d in src_dirs: if path.endswith('.py') and f==oldf: continue # it's a module, not data mf.setdefault(src_dirs[d],[]).append(path) def get_data_files(self): pass # kludge 2.4 for lazy computation if sys.version<"2.4": # Python 2.4 already has this code def get_outputs(self, include_bytecode=1): """Return complete list of files copied to the build directory This includes both '.py' files and data files, as well as '.pyc' and '.pyo' files if 'include_bytecode' is true. (This method is needed for the 'install_lib' command to do its job properly, and to generate a correct installation manifest.) """ return _build_py.get_outputs(self, include_bytecode) + [ os.path.join(build_dir, filename) for package, src_dir, build_dir,filenames in self.data_files for filename in filenames ] def check_package(self, package, package_dir): """Check namespace packages' __init__ for declare_namespace""" try: return self.packages_checked[package] except KeyError: pass init_py = _build_py.check_package(self, package, package_dir) self.packages_checked[package] = init_py if not init_py or not self.distribution.namespace_packages: return init_py for pkg in self.distribution.namespace_packages: if pkg==package or pkg.startswith(package+'.'): break else: return init_py f = open(init_py,'rU') if 'declare_namespace' not in f.read(): from distutils import log log.warn( "WARNING: %s is a namespace package, but its __init__.py does\n" "not declare_namespace(); setuptools 0.7 will REQUIRE this!\n" '(See the setuptools manual under "Namespace Packages" for ' "details.)\n", package ) f.close() return init_py def initialize_options(self): self.packages_checked={} _build_py.initialize_options(self) def get_package_dir(self, package): res = _build_py.get_package_dir(self, package) if self.distribution.src_root is not None: return os.path.join(self.distribution.src_root, res) return res def exclude_data_files(self, package, src_dir, files): """Filter filenames for package's data files in 'src_dir'""" globs = (self.exclude_package_data.get('', []) + self.exclude_package_data.get(package, [])) bad = [] for pattern in globs: bad.extend( fnmatch.filter( files, os.path.join(src_dir, convert_path(pattern)) ) ) bad = dict.fromkeys(bad) seen = {} return [ f for f in files if f not in bad and f not in seen and seen.setdefault(f,1) # ditch dupes ] def assert_relative(path): if not os.path.isabs(path): return path from distutils.errors import DistutilsSetupError raise DistutilsSetupError( """Error: setup script specifies an absolute path: %s setup() arguments must *always* be /-separated paths relative to the setup.py directory, *never* absolute paths. """ % path ) 0707010006216e000081ed000000000000000000000001513ff4b5000009b6000000b600010002ffffffffffffffff0000006900000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_lib.pyfrom distutils.command.install_lib import install_lib as _install_lib import os class install_lib(_install_lib): """Don't add compiled flags to filenames of non-Python files""" def _bytecode_filenames (self, py_filenames): bytecode_files = [] for py_file in py_filenames: if not py_file.endswith('.py'): continue if self.compile: bytecode_files.append(py_file + "c") if self.optimize > 0: bytecode_files.append(py_file + "o") return bytecode_files def run(self): self.build() outfiles = self.install() if outfiles is not None: # always compile, in case we have any extension stubs to deal with self.byte_compile(outfiles) def get_exclusions(self): exclude = {} nsp = self.distribution.namespace_packages if (nsp and self.get_finalized_command('install') .single_version_externally_managed ): for pkg in nsp: parts = pkg.split('.') while parts: pkgdir = os.path.join(self.install_dir, *parts) for f in '__init__.py', '__init__.pyc', '__init__.pyo': exclude[os.path.join(pkgdir,f)] = 1 parts.pop() return exclude def copy_tree( self, infile, outfile, preserve_mode=1, preserve_times=1, preserve_symlinks=0, level=1 ): assert preserve_mode and preserve_times and not preserve_symlinks exclude = self.get_exclusions() if not exclude: return _install_lib.copy_tree(self, infile, outfile) # Exclude namespace package __init__.py* files from the output from setuptools.archive_util import unpack_directory from distutils import log outfiles = [] def pf(src, dst): if dst in exclude: log.warn("Skipping installation of %s (namespace package)",dst) return False log.info("copying %s -> %s", src, os.path.dirname(dst)) outfiles.append(dst) return dst unpack_directory(infile, outfile, pf) return outfiles def get_outputs(self): outputs = _install_lib.get_outputs(self) exclude = self.get_exclusions() if exclude: return [f for f in outputs if f not in exclude] return outputs 0707010006216b000081a4000000000000000000000001513ff4b600000fe5000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyc ?Qc@sddlZddlZddlZddlmZddlmZdefdYZgejD]Z e dej krde ^qdej e_dS(iN(tinstall(tDistutilsArgErrorRcBseZdZejddgZejddgZddfddfgZeeZ d Z d Z d Z d Z d ZRS(s7Use easy_install to install the package, w/dependenciessold-and-unmanageablesTry not to use this!s!single-version-externally-manageds5used by system package builders to create 'flat' eggstinstall_egg_infocCstS(N(tTrue(tself((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pytstinstall_scriptscCstS(N(R(R((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyRscCs,tj|d|_d|_d|_dS(N(t_installtinitialize_optionstNonetold_and_unmanageablet!single_version_externally_managedt no_compile(R((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyRs   cCsUtj||jr"t|_n/|jrQ|j rQ|j rQtdqQndS(NsAYou must specify --record or --root when building system packages(Rtfinalize_optionstrootRR trecordR(R((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyR s    cCs5|js|jrtj|Sd|_d|_dS(Nt(RR Rthandle_extra_pathR t path_filet extra_dirs(R((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyR's  cCs|js|jrtj|Stjd}|jjdd}|jj }|dksg|dkrwtj|n |j dS(Nit__name__Rsdistutils.distt run_commands( R R Rtruntsyst _getframet f_globalstgettf_codetco_nametdo_egg_install(Rtcallert caller_modulet caller_name((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyR2s  cCs|jjd}||jddd|jd|j}|jd|_|jjtjd|j d|jj dj g}t j r|jd t j n||_|jdt _ dS( Nt easy_installtargstxRRt.s*.eggt bdist_eggi(t distributiontget_command_classRRtensure_finalizedtalways_copy_fromt package_indextscantglobt run_commandtget_command_objt egg_outputt setuptoolstbootstrap_install_fromtinsertR"RR (RR!tcmdR"((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyRPs$      N(sold-and-unmanageableNsTry not to use this!(s!single-version-externally-managedNs5used by system package builders to create 'flat' eggs(Rt __module__t__doc__Rt user_optionsR tboolean_optionst new_commandstdictt_ncRR RRR(((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyRs      i( R0RR,tdistutils.command.installRRtdistutils.errorsRt sub_commandsR3R:R8(((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install.pyts $e,0707010006217e000081ed000000000000000000000001513ff4b500001a1b000000b600010002ffffffffffffffff0000006400000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.py"""distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).""" from distutils.errors import * from distutils.core import Command from distutils.spawn import spawn from distutils import log try: from hashlib import md5 except ImportError: from md5 import md5 import os import socket import platform import ConfigParser import httplib import base64 import urlparse import cStringIO as StringIO class upload(Command): description = "upload binary package to PyPI" DEFAULT_REPOSITORY = 'http://pypi.python.org/pypi' user_options = [ ('repository=', 'r', "url of repository [default: %s]" % DEFAULT_REPOSITORY), ('show-response', None, 'display full response text from server'), ('sign', 's', 'sign files to upload using gpg'), ('identity=', 'i', 'GPG identity used to sign files'), ] boolean_options = ['show-response', 'sign'] def initialize_options(self): self.username = '' self.password = '' self.repository = '' self.show_response = 0 self.sign = False self.identity = None def finalize_options(self): if self.identity and not self.sign: raise DistutilsOptionError( "Must use --sign for --identity to have meaning" ) if os.environ.has_key('HOME'): rc = os.path.join(os.environ['HOME'], '.pypirc') if os.path.exists(rc): self.announce('Using PyPI login from %s' % rc) config = ConfigParser.ConfigParser({ 'username':'', 'password':'', 'repository':''}) config.read(rc) if not self.repository: self.repository = config.get('server-login', 'repository') if not self.username: self.username = config.get('server-login', 'username') if not self.password: self.password = config.get('server-login', 'password') if not self.repository: self.repository = self.DEFAULT_REPOSITORY def run(self): if not self.distribution.dist_files: raise DistutilsOptionError("No dist file created in earlier command") for command, pyversion, filename in self.distribution.dist_files: self.upload_file(command, pyversion, filename) def upload_file(self, command, pyversion, filename): # Sign if requested if self.sign: gpg_args = ["gpg", "--detach-sign", "-a", filename] if self.identity: gpg_args[2:2] = ["--local-user", self.identity] spawn(gpg_args, dry_run=self.dry_run) # Fill in the data f = open(filename,'rb') content = f.read() f.close() basename = os.path.basename(filename) comment = '' if command=='bdist_egg' and self.distribution.has_ext_modules(): comment = "built on %s" % platform.platform(terse=1) data = { ':action':'file_upload', 'protocol_version':'1', 'name':self.distribution.get_name(), 'version':self.distribution.get_version(), 'content':(basename,content), 'filetype':command, 'pyversion':pyversion, 'md5_digest':md5(content).hexdigest(), } if command == 'bdist_rpm': dist, version, id = platform.dist() if dist: comment = 'built for %s %s' % (dist, version) elif command == 'bdist_dumb': comment = 'built for %s' % platform.platform(terse=1) data['comment'] = comment if self.sign: data['gpg_signature'] = (os.path.basename(filename) + ".asc", open(filename+".asc").read()) # set up the authentication auth = "Basic " + base64.encodestring(self.username + ":" + self.password).strip() # Build up the MIME payload for the POST data boundary = '--------------GHSKFJDLGDS7543FJKLFHRE75642756743254' sep_boundary = '\n--' + boundary end_boundary = sep_boundary + '--' body = StringIO.StringIO() for key, value in data.items(): # handle multiple entries for the same name if type(value) != type([]): value = [value] for value in value: if type(value) is tuple: fn = ';filename="%s"' % value[0] value = value[1] else: fn = "" value = str(value) body.write(sep_boundary) body.write('\nContent-Disposition: form-data; name="%s"'%key) body.write(fn) body.write("\n\n") body.write(value) if value and value[-1] == '\r': body.write('\n') # write an extra newline (lurve Macs) body.write(end_boundary) body.write("\n") body = body.getvalue() self.announce("Submitting %s to %s" % (filename, self.repository), log.INFO) # build the Request # We can't use urllib2 since we need to send the Basic # auth right with the first request schema, netloc, url, params, query, fragments = \ urlparse.urlparse(self.repository) assert not params and not query and not fragments if schema == 'http': http = httplib.HTTPConnection(netloc) elif schema == 'https': http = httplib.HTTPSConnection(netloc) else: raise AssertionError, "unsupported schema "+schema data = '' loglevel = log.INFO try: http.connect() http.putrequest("POST", url) http.putheader('Content-type', 'multipart/form-data; boundary=%s'%boundary) http.putheader('Content-length', str(len(body))) http.putheader('Authorization', auth) http.endheaders() http.send(body) except socket.error, e: self.announce(str(e), log.ERROR) return r = http.getresponse() if r.status == 200: self.announce('Server response (%s): %s' % (r.status, r.reason), log.INFO) else: self.announce('Upload failed (%s): %s' % (r.status, r.reason), log.ERROR) if self.show_response: print '-'*75, r.read(), '-'*75 07070100062165000081a4000000000000000000000001513ff4b6000015cf000000b600010002ffffffffffffffff0000006600000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyc ?Qc@sddlmZddlmZmZddlmZmZmZddl m Z ddl m Z m Z ddlZddlZddlZdefdYZdS( i(t easy_install(t convert_patht subst_vars(t Distributiont PathMetadatatnormalize_path(tlog(tDistutilsErrortDistutilsOptionErrorNtdevelopcBsseZdZdZejd dgZejdgZeZ dZ dZ d Z d Z d Zd ZRS(sSet up package for developments%install package in 'development mode't uninstalltusUninstall this source packages egg-path=s-Set the path to be used in the .egg-link filecCs7|jrt|_|jn |j|jdS(N(R tTruet multi_versiontuninstall_linktinstall_for_developmenttwarn_deprecated_options(tself((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pytruns     cCs5d|_d|_tj|d|_d|_dS(Nt.(tNoneR tegg_pathRtinitialize_optionst setup_pathtalways_copy_from(R((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyRs     cCs|jd}|jr7td|j|jfn|jg|_tj||j|j |j j t j dt jj|j|jd|_|j|_|jdkrt jj|j|_nt|j}tt jj|j|j|kr!td|nt|t|t jj|jd|j|_|jjt jd}|t jkrd|jdd }n||_tt jj|j|j|}|tt jkrtd |tt jndS( Ntegg_infos-Please rename %r to %r before using 'develop's*.eggs .egg-linksA--egg-path must be a relative path from the install directory to t project_namet/s../isGCan't get a consistent path to setup script from installation directory( tget_finalized_commandtbroken_egg_infoRRtegg_nametargsRtfinalize_optionstexpand_basedirst expand_dirst package_indextscantglobtostpathtjoint install_dirtegg_linktegg_baseRRtabspathRRRRtdisttreplacetseptcurdirtcountR(Rteittargettp((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyR 's@    " '  $cCs|jd|jddd|jd|jtjr\|jtjdt_ntjd|j |j |j st |j d}|j |jd|j|jn|jd|j|j dS(NRt build_exttinplaceisCreating %s (link to %s)tws (t run_commandtreinitialize_commandtinstall_site_pyt setuptoolstbootstrap_install_fromRRRtinfoR*R+tdry_runtopentwriteRRtclosetprocess_distributionR-tno_deps(Rtf((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyRVs       cCstjj|jrtjd|j|jgt|jD]}|j^q>}||j g|j |j gfkrtj d|dS|j stj |jqn|j s|j|jn|jjrtj dndS(NsRemoving %s (link to %s)s$Link points to %s: uninstall aborteds5Note: you must uninstall or replace scripts manually!(R&R'texistsR*RR=R+R?trstripRRtwarnR>tunlinkt update_pthR-t distributiontscripts(Rtlinetcontents((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyRls($   cCs||jk rtj||S|j|x|jjp>gD]k}tjjt |}tjj |}t |d}|j }|j |j||||q?WdS(NtrU(R-Rtinstall_egg_scriptstinstall_wrapper_scriptsRJRKR&R'R,RtbasenameR?treadRAtinstall_script(RR-t script_namet script_pathRDt script_text((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyRO{s   (s uninstallR sUninstall this source packageN(s egg-path=Ns-Set the path to be used in the .egg-link file(t__name__t __module__t__doc__t descriptionRt user_optionsRtboolean_optionstFalsetcommand_consumes_argumentsRRR RRRO(((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyR s   /  (tsetuptools.command.easy_installRtdistutils.utilRRt pkg_resourcesRRRt distutilsRtdistutils.errorsRRR&R;R%R (((s`/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyts $0707010006217c000081ed000000000000000000000001513ff4b5000013f6000000b600010002ffffffffffffffff0000006200000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/test.pyfrom setuptools import Command from distutils.errors import DistutilsOptionError import sys from pkg_resources import * from unittest import TestLoader, main class ScanningLoader(TestLoader): def loadTestsFromModule(self, module): """Return a suite of all tests cases contained in the given module If the module is a package, load tests from all the modules in it. If the module has an ``additional_tests`` function, call it and add the return value to the tests. """ tests = [] if module.__name__!='setuptools.tests.doctest': # ugh tests.append(TestLoader.loadTestsFromModule(self,module)) if hasattr(module, "additional_tests"): tests.append(module.additional_tests()) if hasattr(module, '__path__'): for file in resource_listdir(module.__name__, ''): if file.endswith('.py') and file!='__init__.py': submodule = module.__name__+'.'+file[:-3] else: if resource_exists( module.__name__, file+'/__init__.py' ): submodule = module.__name__+'.'+file else: continue tests.append(self.loadTestsFromName(submodule)) if len(tests)!=1: return self.suiteClass(tests) else: return tests[0] # don't create a nested suite for only one return class test(Command): """Command to run unit tests after in-place build""" description = "run unit tests after in-place build" user_options = [ ('test-module=','m', "Run 'test_suite' in specified module"), ('test-suite=','s', "Test suite to run (e.g. 'some_module.test_suite')"), ] def initialize_options(self): self.test_suite = None self.test_module = None self.test_loader = None def finalize_options(self): if self.test_suite is None: if self.test_module is None: self.test_suite = self.distribution.test_suite else: self.test_suite = self.test_module+".test_suite" elif self.test_module: raise DistutilsOptionError( "You may specify a module or a suite, but not both" ) self.test_args = [self.test_suite] if self.verbose: self.test_args.insert(0,'--verbose') if self.test_loader is None: self.test_loader = getattr(self.distribution,'test_loader',None) if self.test_loader is None: self.test_loader = "setuptools.command.test:ScanningLoader" def with_project_on_sys_path(self, func): if getattr(self.distribution, 'use_2to3', False): # If we run 2to3 we can not do this inplace: # Ensure metadata is up-to-date self.reinitialize_command('build_py', inplace=0) self.run_command('build_py') bpy_cmd = self.get_finalized_command("build_py") build_path = normalize_path(bpy_cmd.build_lib) # Build extensions self.reinitialize_command('egg_info', egg_base=build_path) self.run_command('egg_info') self.reinitialize_command('build_ext', inplace=0) self.run_command('build_ext') else: # Without 2to3 inplace works fine: self.run_command('egg_info') # Build extensions in-place self.reinitialize_command('build_ext', inplace=1) self.run_command('build_ext') ei_cmd = self.get_finalized_command("egg_info") old_path = sys.path[:] old_modules = sys.modules.copy() try: sys.path.insert(0, normalize_path(ei_cmd.egg_base)) working_set.__init__() add_activation_listener(lambda dist: dist.activate()) require('%s==%s' % (ei_cmd.egg_name, ei_cmd.egg_version)) func() finally: sys.path[:] = old_path sys.modules.clear() sys.modules.update(old_modules) working_set.__init__() def run(self): if self.distribution.install_requires: self.distribution.fetch_build_eggs(self.distribution.install_requires) if self.distribution.tests_require: self.distribution.fetch_build_eggs(self.distribution.tests_require) if self.test_suite: cmd = ' '.join(self.test_args) if self.dry_run: self.announce('skipping "unittest %s" (dry run)' % cmd) else: self.announce('running "unittest %s"' % cmd) self.with_project_on_sys_path(self.run_tests) def run_tests(self): import unittest loader_ep = EntryPoint.parse("x="+self.test_loader) loader_class = loader_ep.load(require=False) unittest.main( None, None, [unittest.__file__]+self.test_args, testLoader = loader_class() ) 0707010006217f000081a4000000000000000000000001513ff4b600001998000000b600010002ffffffffffffffff0000006500000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.pyc ?Qc@sdZddlTddlmZddlmZddlmZyddlm Z Wn!e k rwddl m Z nXddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZdefd YZdS( s`distutils.command.upload Implements the Distutils 'upload' subcommand (upload package to PyPI).i(t*(tCommand(tspawn(tlog(tmd5NtuploadcBsceZdZdZdddefdddgZddgZd ZdZdZ dZ RS(supload binary package to PyPIshttp://pypi.python.org/pypis repository=trsurl of repository [default: %s]s show-responses&display full response text from servertsigntsssign files to upload using gpgs identity=tisGPG identity used to sign filescCs:d|_d|_d|_d|_t|_d|_dS(Nti(tusernametpasswordt repositoryt show_responsetFalseRtNonetidentity(tself((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.pytinitialize_options's      cCs)|jr"|j r"tdntjjdr tjjtjdd}tjj|r |j d|t j idd6dd6dd6}|j ||j s|j d d|_ n|js|j d d|_n|js |j d d|_q q n|j s%|j|_ ndS( Ns.Must use --sign for --identity to have meaningtHOMEs.pypircsUsing PyPI login from %sR R R R s server-login(RRtDistutilsOptionErrortostenvironthas_keytpathtjointexiststannouncet ConfigParsertreadR tgetR R tDEFAULT_REPOSITORY(Rtrctconfig((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.pytfinalize_options/s(        cCsR|jjstdnx0|jjD]"\}}}|j|||q(WdS(Ns'No dist file created in earlier command(t distributiont dist_filesRt upload_file(Rtcommandt pyversiontfilename((s_/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload.pytrunFs cCs+|jrSddd|g}|jr=d|jg|dd+nt|d|jnt|d}|j}|jtjj |}d}|d kr|j j rd t j d d }nid d6dd6|j j d6|j jd6||fd6|d6|d6t|jd6} |dkrct j\} } } | rd| | f}qn%|dkrdt j d d }n|| d<|jrtjj |dt|djf| ds"          07070100062170000081ed000000000000000000000001513ff4b50000080b000000b600010002ffffffffffffffff0000006d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_scripts.pyfrom distutils.command.install_scripts import install_scripts \ as _install_scripts from pkg_resources import Distribution, PathMetadata, ensure_directory import os from distutils import log class install_scripts(_install_scripts): """Do normal script install, plus any egg_info wrapper scripts""" def initialize_options(self): _install_scripts.initialize_options(self) self.no_ep = False def run(self): from setuptools.command.easy_install import get_script_args from setuptools.command.easy_install import sys_executable self.run_command("egg_info") if self.distribution.scripts: _install_scripts.run(self) # run first to set up self.outfiles else: self.outfiles = [] if self.no_ep: # don't install entry point scripts into .egg file! return ei_cmd = self.get_finalized_command("egg_info") dist = Distribution( ei_cmd.egg_base, PathMetadata(ei_cmd.egg_base, ei_cmd.egg_info), ei_cmd.egg_name, ei_cmd.egg_version, ) bs_cmd = self.get_finalized_command('build_scripts') executable = getattr(bs_cmd,'executable',sys_executable) is_wininst = getattr( self.get_finalized_command("bdist_wininst"), '_is_running', False ) for args in get_script_args(dist, executable, is_wininst): self.write_script(*args) def write_script(self, script_name, contents, mode="t", *ignored): """Write an executable file to the scripts directory""" from setuptools.command.easy_install import chmod, current_umask log.info("Installing %s script to %s", script_name, self.install_dir) target = os.path.join(self.install_dir, script_name) self.outfiles.append(target) mask = current_umask() if not self.dry_run: ensure_directory(target) f = open(target,"w"+mode) f.write(contents) f.close() chmod(target, 0777-mask) 07070100062173000081a4000000000000000000000001513ff4b60000031a000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyc ?Qc@s*ddlmZdefdYZdS(i(tregisterRcBseZejZdZRS(cCs|jdtj|dS(Ntegg_info(t run_commandt _registertrun(tself((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyRs (t__name__t __module__Rt__doc__R(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyRs N(tdistutils.command.registerRR(((sa/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/register.pyts07070100062166000081ed000000000000000000000001513ff4b500011aed000000b600010002ffffffffffffffff0000006a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/easy_install.py#!python """\ Easy Install ------------ A tool for doing automatic download/extract/build of distutils-based Python packages. For detailed documentation, see the accompanying EasyInstall.txt file, or visit the `EasyInstall home page`__. __ http://packages.python.org/distribute/easy_install.html """ import sys import os import zipimport import shutil import tempfile import zipfile import re import stat import random from glob import glob from setuptools import Command, _dont_write_bytecode from setuptools.sandbox import run_setup from distutils import log, dir_util from distutils.util import get_platform from distutils.util import convert_path, subst_vars from distutils.sysconfig import get_python_lib, get_config_vars from distutils.errors import DistutilsArgError, DistutilsOptionError, \ DistutilsError, DistutilsPlatformError from distutils.command.install import INSTALL_SCHEMES, SCHEME_KEYS from setuptools.command import setopt from setuptools.archive_util import unpack_archive from setuptools.package_index import PackageIndex from setuptools.package_index import URL_SCHEME from setuptools.command import bdist_egg, egg_info from pkg_resources import yield_lines, normalize_path, resource_string, \ ensure_directory, get_distribution, find_distributions, \ Environment, Requirement, Distribution, \ PathMetadata, EggMetadata, WorkingSet, \ DistributionNotFound, VersionConflict, \ DEVELOP_DIST sys_executable = os.path.normpath(sys.executable) __all__ = [ 'samefile', 'easy_install', 'PthDistributions', 'extract_wininst_cfg', 'main', 'get_exe_prefixes', ] import site HAS_USER_SITE = not sys.version < "2.6" and site.ENABLE_USER_SITE import struct def is_64bit(): return struct.calcsize("P") == 8 def samefile(p1,p2): if hasattr(os.path,'samefile') and ( os.path.exists(p1) and os.path.exists(p2) ): return os.path.samefile(p1,p2) return ( os.path.normpath(os.path.normcase(p1)) == os.path.normpath(os.path.normcase(p2)) ) if sys.version_info <= (3,): def _to_ascii(s): return s def isascii(s): try: unicode(s, 'ascii') return True except UnicodeError: return False else: def _to_ascii(s): return s.encode('ascii') def isascii(s): try: s.encode('ascii') return True except UnicodeError: return False class easy_install(Command): """Manage a download/build/install process""" description = "Find/get/install Python packages" command_consumes_arguments = True user_options = [ ('prefix=', None, "installation prefix"), ("zip-ok", "z", "install package as a zipfile"), ("multi-version", "m", "make apps have to require() a version"), ("upgrade", "U", "force upgrade (searches PyPI for latest versions)"), ("install-dir=", "d", "install package to DIR"), ("script-dir=", "s", "install scripts to DIR"), ("exclude-scripts", "x", "Don't install scripts"), ("always-copy", "a", "Copy all needed packages to install dir"), ("index-url=", "i", "base URL of Python Package Index"), ("find-links=", "f", "additional URL(s) to search for packages"), ("delete-conflicting", "D", "no longer needed; don't use this"), ("ignore-conflicts-at-my-risk", None, "no longer needed; don't use this"), ("build-directory=", "b", "download/extract/build in DIR; keep the results"), ('optimize=', 'O', "also compile with optimization: -O1 for \"python -O\", " "-O2 for \"python -OO\", and -O0 to disable [default: -O0]"), ('record=', None, "filename in which to record list of installed files"), ('always-unzip', 'Z', "don't install as a zipfile, no matter what"), ('site-dirs=','S',"list of directories where .pth files work"), ('editable', 'e', "Install specified packages in editable form"), ('no-deps', 'N', "don't install dependencies"), ('allow-hosts=', 'H', "pattern(s) that hostnames must match"), ('local-snapshots-ok', 'l', "allow building eggs from local checkouts"), ('version', None, "print version information and exit"), ('no-find-links', None, "Don't load find-links defined in packages being installed") ] boolean_options = [ 'zip-ok', 'multi-version', 'exclude-scripts', 'upgrade', 'always-copy', 'delete-conflicting', 'ignore-conflicts-at-my-risk', 'editable', 'no-deps', 'local-snapshots-ok', 'version' ] if HAS_USER_SITE: user_options.append(('user', None, "install in user site-package '%s'" % site.USER_SITE)) boolean_options.append('user') negative_opt = {'always-unzip': 'zip-ok'} create_index = PackageIndex def initialize_options(self): if HAS_USER_SITE: whereami = os.path.abspath(__file__) self.user = whereami.startswith(site.USER_SITE) else: self.user = 0 self.zip_ok = self.local_snapshots_ok = None self.install_dir = self.script_dir = self.exclude_scripts = None self.index_url = None self.find_links = None self.build_directory = None self.args = None self.optimize = self.record = None self.upgrade = self.always_copy = self.multi_version = None self.editable = self.no_deps = self.allow_hosts = None self.root = self.prefix = self.no_report = None self.version = None self.install_purelib = None # for pure module distributions self.install_platlib = None # non-pure (dists w/ extensions) self.install_headers = None # for C/C++ headers self.install_lib = None # set to either purelib or platlib self.install_scripts = None self.install_data = None self.install_base = None self.install_platbase = None if HAS_USER_SITE: self.install_userbase = site.USER_BASE self.install_usersite = site.USER_SITE else: self.install_userbase = None self.install_usersite = None self.no_find_links = None # Options not specifiable via command line self.package_index = None self.pth_file = self.always_copy_from = None self.delete_conflicting = None self.ignore_conflicts_at_my_risk = None self.site_dirs = None self.installed_projects = {} self.sitepy_installed = False # Always read easy_install options, even if we are subclassed, or have # an independent instance created. This ensures that defaults will # always come from the standard configuration file(s)' "easy_install" # section, even if this is a "develop" or "install" command, or some # other embedding. self._dry_run = None self.verbose = self.distribution.verbose self.distribution._set_command_options( self, self.distribution.get_option_dict('easy_install') ) def delete_blockers(self, blockers): for filename in blockers: if os.path.exists(filename) or os.path.islink(filename): log.info("Deleting %s", filename) if not self.dry_run: if os.path.isdir(filename) and not os.path.islink(filename): rmtree(filename) else: os.unlink(filename) def finalize_options(self): if self.version: print 'distribute %s' % get_distribution('distribute').version sys.exit() py_version = sys.version.split()[0] prefix, exec_prefix = get_config_vars('prefix', 'exec_prefix') self.config_vars = {'dist_name': self.distribution.get_name(), 'dist_version': self.distribution.get_version(), 'dist_fullname': self.distribution.get_fullname(), 'py_version': py_version, 'py_version_short': py_version[0:3], 'py_version_nodot': py_version[0] + py_version[2], 'sys_prefix': prefix, 'prefix': prefix, 'sys_exec_prefix': exec_prefix, 'exec_prefix': exec_prefix, # Only python 3.2+ has abiflags 'abiflags': getattr(sys, 'abiflags', ''), } if HAS_USER_SITE: self.config_vars['userbase'] = self.install_userbase self.config_vars['usersite'] = self.install_usersite # fix the install_dir if "--user" was used #XXX: duplicate of the code in the setup command if self.user and HAS_USER_SITE: self.create_home_path() if self.install_userbase is None: raise DistutilsPlatformError( "User base directory is not specified") self.install_base = self.install_platbase = self.install_userbase if os.name == 'posix': self.select_scheme("unix_user") else: self.select_scheme(os.name + "_user") self.expand_basedirs() self.expand_dirs() self._expand('install_dir','script_dir','build_directory','site_dirs') # If a non-default installation directory was specified, default the # script directory to match it. if self.script_dir is None: self.script_dir = self.install_dir if self.no_find_links is None: self.no_find_links = False # Let install_dir get set by install_lib command, which in turn # gets its info from the install command, and takes into account # --prefix and --home and all that other crud. self.set_undefined_options('install_lib', ('install_dir','install_dir') ) # Likewise, set default script_dir from 'install_scripts.install_dir' self.set_undefined_options('install_scripts', ('install_dir', 'script_dir') ) if self.user and self.install_purelib: self.install_dir = self.install_purelib self.script_dir = self.install_scripts # default --record from the install command self.set_undefined_options('install', ('record', 'record')) normpath = map(normalize_path, sys.path) self.all_site_dirs = get_site_dirs() if self.site_dirs is not None: site_dirs = [ os.path.expanduser(s.strip()) for s in self.site_dirs.split(',') ] for d in site_dirs: if not os.path.isdir(d): log.warn("%s (in --site-dirs) does not exist", d) elif normalize_path(d) not in normpath: raise DistutilsOptionError( d+" (in --site-dirs) is not on sys.path" ) else: self.all_site_dirs.append(normalize_path(d)) if not self.editable: self.check_site_dir() self.index_url = self.index_url or "http://pypi.python.org/simple" self.shadow_path = self.all_site_dirs[:] for path_item in self.install_dir, normalize_path(self.script_dir): if path_item not in self.shadow_path: self.shadow_path.insert(0, path_item) if self.allow_hosts is not None: hosts = [s.strip() for s in self.allow_hosts.split(',')] else: hosts = ['*'] if self.package_index is None: self.package_index = self.create_index( self.index_url, search_path = self.shadow_path, hosts=hosts, ) self.local_index = Environment(self.shadow_path+sys.path) if self.find_links is not None: if isinstance(self.find_links, basestring): self.find_links = self.find_links.split() else: self.find_links = [] if self.local_snapshots_ok: self.package_index.scan_egg_links(self.shadow_path+sys.path) if not self.no_find_links: self.package_index.add_find_links(self.find_links) self.set_undefined_options('install_lib', ('optimize','optimize')) if not isinstance(self.optimize,int): try: self.optimize = int(self.optimize) if not (0 <= self.optimize <= 2): raise ValueError except ValueError: raise DistutilsOptionError("--optimize must be 0, 1, or 2") if self.delete_conflicting and self.ignore_conflicts_at_my_risk: raise DistutilsOptionError( "Can't use both --delete-conflicting and " "--ignore-conflicts-at-my-risk at the same time" ) if self.editable and not self.build_directory: raise DistutilsArgError( "Must specify a build directory (-b) when using --editable" ) if not self.args: raise DistutilsArgError( "No urls, filenames, or requirements specified (see --help)") self.outputs = [] def _expand_attrs(self, attrs): for attr in attrs: val = getattr(self, attr) if val is not None: if os.name == 'posix' or os.name == 'nt': val = os.path.expanduser(val) val = subst_vars(val, self.config_vars) setattr(self, attr, val) def expand_basedirs(self): """Calls `os.path.expanduser` on install_base, install_platbase and root.""" self._expand_attrs(['install_base', 'install_platbase', 'root']) def expand_dirs(self): """Calls `os.path.expanduser` on install dirs.""" self._expand_attrs(['install_purelib', 'install_platlib', 'install_lib', 'install_headers', 'install_scripts', 'install_data',]) def run(self): if self.verbose != self.distribution.verbose: log.set_verbosity(self.verbose) try: for spec in self.args: self.easy_install(spec, not self.no_deps) if self.record: outputs = self.outputs if self.root: # strip any package prefix root_len = len(self.root) for counter in xrange(len(outputs)): outputs[counter] = outputs[counter][root_len:] from distutils import file_util self.execute( file_util.write_file, (self.record, outputs), "writing list of installed files to '%s'" % self.record ) self.warn_deprecated_options() finally: log.set_verbosity(self.distribution.verbose) def pseudo_tempname(self): """Return a pseudo-tempname base in the install directory. This code is intentionally naive; if a malicious party can write to the target directory you're already in deep doodoo. """ try: pid = os.getpid() except: pid = random.randint(0,sys.maxint) return os.path.join(self.install_dir, "test-easy-install-%s" % pid) def warn_deprecated_options(self): if self.delete_conflicting or self.ignore_conflicts_at_my_risk: log.warn( "Note: The -D, --delete-conflicting and" " --ignore-conflicts-at-my-risk no longer have any purpose" " and should not be used." ) def check_site_dir(self): """Verify that self.install_dir is .pth-capable dir, if needed""" instdir = normalize_path(self.install_dir) pth_file = os.path.join(instdir,'easy-install.pth') # Is it a configured, PYTHONPATH, implicit, or explicit site dir? is_site_dir = instdir in self.all_site_dirs if not is_site_dir: # No? Then directly test whether it does .pth file processing is_site_dir = self.check_pth_processing() else: # make sure we can write to target dir testfile = self.pseudo_tempname()+'.write-test' test_exists = os.path.exists(testfile) try: if test_exists: os.unlink(testfile) open(testfile,'w').close() os.unlink(testfile) except (OSError,IOError): self.cant_write_to_target() if not is_site_dir and not self.multi_version: # Can't install non-multi to non-site dir raise DistutilsError(self.no_default_version_msg()) if is_site_dir: if self.pth_file is None: self.pth_file = PthDistributions(pth_file, self.all_site_dirs) else: self.pth_file = None PYTHONPATH = os.environ.get('PYTHONPATH','').split(os.pathsep) if instdir not in map(normalize_path, filter(None,PYTHONPATH)): # only PYTHONPATH dirs need a site.py, so pretend it's there self.sitepy_installed = True elif self.multi_version and not os.path.exists(pth_file): self.sitepy_installed = True # don't need site.py in this case self.pth_file = None # and don't create a .pth file self.install_dir = instdir def cant_write_to_target(self): msg = """can't create or remove files in install directory The following error occurred while trying to add or remove files in the installation directory: %s The installation directory you specified (via --install-dir, --prefix, or the distutils default setting) was: %s """ % (sys.exc_info()[1], self.install_dir,) if not os.path.exists(self.install_dir): msg += """ This directory does not currently exist. Please create it and try again, or choose a different installation directory (using the -d or --install-dir option). """ else: msg += """ Perhaps your account does not have write access to this directory? If the installation directory is a system-owned directory, you may need to sign in as the administrator or "root" account. If you do not have administrative access to this machine, you may wish to choose a different installation directory, preferably one that is listed in your PYTHONPATH environment variable. For information on other options, you may wish to consult the documentation at: http://packages.python.org/distribute/easy_install.html Please make the appropriate changes for your system and try again. """ raise DistutilsError(msg) def check_pth_processing(self): """Empirically verify whether .pth files are supported in inst. dir""" instdir = self.install_dir log.info("Checking .pth file support in %s", instdir) pth_file = self.pseudo_tempname()+".pth" ok_file = pth_file+'.ok' ok_exists = os.path.exists(ok_file) try: if ok_exists: os.unlink(ok_file) dirname = os.path.dirname(ok_file) if not os.path.exists(dirname): os.makedirs(dirname) f = open(pth_file,'w') except (OSError,IOError): self.cant_write_to_target() else: try: f.write("import os;open(%r,'w').write('OK')\n" % (ok_file,)) f.close(); f=None executable = sys.executable if os.name=='nt': dirname,basename = os.path.split(executable) alt = os.path.join(dirname,'pythonw.exe') if basename.lower()=='python.exe' and os.path.exists(alt): # use pythonw.exe to avoid opening a console window executable = alt from distutils.spawn import spawn spawn([executable,'-E','-c','pass'],0) if os.path.exists(ok_file): log.info( "TEST PASSED: %s appears to support .pth files", instdir ) return True finally: if f: f.close() if os.path.exists(ok_file): os.unlink(ok_file) if os.path.exists(pth_file): os.unlink(pth_file) if not self.multi_version: log.warn("TEST FAILED: %s does NOT support .pth files", instdir) return False def install_egg_scripts(self, dist): """Write all the scripts for `dist`, unless scripts are excluded""" if not self.exclude_scripts and dist.metadata_isdir('scripts'): for script_name in dist.metadata_listdir('scripts'): self.install_script( dist, script_name, dist.get_metadata('scripts/'+script_name) ) self.install_wrapper_scripts(dist) def add_output(self, path): if os.path.isdir(path): for base, dirs, files in os.walk(path): for filename in files: self.outputs.append(os.path.join(base,filename)) else: self.outputs.append(path) def not_editable(self, spec): if self.editable: raise DistutilsArgError( "Invalid argument %r: you can't use filenames or URLs " "with --editable (except via the --find-links option)." % (spec,) ) def check_editable(self,spec): if not self.editable: return if os.path.exists(os.path.join(self.build_directory, spec.key)): raise DistutilsArgError( "%r already exists in %s; can't do a checkout there" % (spec.key, self.build_directory) ) def easy_install(self, spec, deps=False): tmpdir = tempfile.mkdtemp(prefix="easy_install-") download = None if not self.editable: self.install_site_py() try: if not isinstance(spec,Requirement): if URL_SCHEME(spec): # It's a url, download it to tmpdir and process self.not_editable(spec) download = self.package_index.download(spec, tmpdir) return self.install_item(None, download, tmpdir, deps, True) elif os.path.exists(spec): # Existing file or directory, just process it directly self.not_editable(spec) return self.install_item(None, spec, tmpdir, deps, True) else: spec = parse_requirement_arg(spec) self.check_editable(spec) dist = self.package_index.fetch_distribution( spec, tmpdir, self.upgrade, self.editable, not self.always_copy, self.local_index ) if dist is None: msg = "Could not find suitable distribution for %r" % spec if self.always_copy: msg+=" (--always-copy skips system and development eggs)" raise DistutilsError(msg) elif dist.precedence==DEVELOP_DIST: # .egg-info dists don't need installing, just process deps self.process_distribution(spec, dist, deps, "Using") return dist else: return self.install_item(spec, dist.location, tmpdir, deps) finally: if os.path.exists(tmpdir): rmtree(tmpdir) def install_item(self, spec, download, tmpdir, deps, install_needed=False): # Installation is also needed if file in tmpdir or is not an egg install_needed = install_needed or self.always_copy install_needed = install_needed or os.path.dirname(download) == tmpdir install_needed = install_needed or not download.endswith('.egg') install_needed = install_needed or ( self.always_copy_from is not None and os.path.dirname(normalize_path(download)) == normalize_path(self.always_copy_from) ) if spec and not install_needed: # at this point, we know it's a local .egg, we just don't know if # it's already installed. for dist in self.local_index[spec.project_name]: if dist.location==download: break else: install_needed = True # it's not in the local index log.info("Processing %s", os.path.basename(download)) if install_needed: dists = self.install_eggs(spec, download, tmpdir) for dist in dists: self.process_distribution(spec, dist, deps) else: dists = [self.check_conflicts(self.egg_distribution(download))] self.process_distribution(spec, dists[0], deps, "Using") if spec is not None: for dist in dists: if dist in spec: return dist def select_scheme(self, name): """Sets the install directories by applying the install schemes.""" # it's the caller's problem if they supply a bad name! scheme = INSTALL_SCHEMES[name] for key in SCHEME_KEYS: attrname = 'install_' + key if getattr(self, attrname) is None: setattr(self, attrname, scheme[key]) def process_distribution(self, requirement, dist, deps=True, *info): self.update_pth(dist) self.package_index.add(dist) self.local_index.add(dist) if not self.editable: self.install_egg_scripts(dist) self.installed_projects[dist.key] = dist log.info(self.installation_report(requirement, dist, *info)) if (dist.has_metadata('dependency_links.txt') and not self.no_find_links): self.package_index.add_find_links( dist.get_metadata_lines('dependency_links.txt') ) if not deps and not self.always_copy: return elif requirement is not None and dist.key != requirement.key: log.warn("Skipping dependencies for %s", dist) return # XXX this is not the distribution we were looking for elif requirement is None or dist not in requirement: # if we wound up with a different version, resolve what we've got distreq = dist.as_requirement() requirement = requirement or distreq requirement = Requirement( distreq.project_name, distreq.specs, requirement.extras ) log.info("Processing dependencies for %s", requirement) try: distros = WorkingSet([]).resolve( [requirement], self.local_index, self.easy_install ) except DistributionNotFound, e: raise DistutilsError( "Could not find required distribution %s" % e.args ) except VersionConflict, e: raise DistutilsError( "Installed distribution %s conflicts with requirement %s" % e.args ) if self.always_copy or self.always_copy_from: # Force all the relevant distros to be copied or activated for dist in distros: if dist.key not in self.installed_projects: self.easy_install(dist.as_requirement()) log.info("Finished processing dependencies for %s", requirement) def should_unzip(self, dist): if self.zip_ok is not None: return not self.zip_ok if dist.has_metadata('not-zip-safe'): return True if not dist.has_metadata('zip-safe'): return True return True def maybe_move(self, spec, dist_filename, setup_base): dst = os.path.join(self.build_directory, spec.key) if os.path.exists(dst): log.warn( "%r already exists in %s; build directory %s will not be kept", spec.key, self.build_directory, setup_base ) return setup_base if os.path.isdir(dist_filename): setup_base = dist_filename else: if os.path.dirname(dist_filename)==setup_base: os.unlink(dist_filename) # get it out of the tmp dir contents = os.listdir(setup_base) if len(contents)==1: dist_filename = os.path.join(setup_base,contents[0]) if os.path.isdir(dist_filename): # if the only thing there is a directory, move it instead setup_base = dist_filename ensure_directory(dst); shutil.move(setup_base, dst) return dst def install_wrapper_scripts(self, dist): if not self.exclude_scripts: for args in get_script_args(dist): self.write_script(*args) def install_script(self, dist, script_name, script_text, dev_path=None): """Generate a legacy script wrapper and install it""" spec = str(dist.as_requirement()) is_script = is_python_script(script_text, script_name) def get_template(filename): """ There are a couple of template scripts in the package. This function loads one of them and prepares it for use. These templates use triple-quotes to escape variable substitutions so the scripts get the 2to3 treatment when build on Python 3. The templates cannot use triple-quotes naturally. """ raw_bytes = resource_string('setuptools', template_name) template_str = raw_bytes.decode('utf-8') clean_template = template_str.replace('"""', '') return clean_template if is_script: template_name = 'script_template.py' if dev_path: template_name = template_name.replace('.py', '_dev.py') script_text = (get_script_header(script_text) + get_template(template_name) % locals()) self.write_script(script_name, _to_ascii(script_text), 'b') def write_script(self, script_name, contents, mode="t", blockers=()): """Write an executable file to the scripts directory""" self.delete_blockers( # clean up old .py/.pyw w/o a script [os.path.join(self.script_dir,x) for x in blockers]) log.info("Installing %s script to %s", script_name, self.script_dir) target = os.path.join(self.script_dir, script_name) self.add_output(target) mask = current_umask() if not self.dry_run: ensure_directory(target) f = open(target,"w"+mode) f.write(contents) f.close() chmod(target, 0777-mask) def install_eggs(self, spec, dist_filename, tmpdir): # .egg dirs or files are already built, so just return them if dist_filename.lower().endswith('.egg'): return [self.install_egg(dist_filename, tmpdir)] elif dist_filename.lower().endswith('.exe'): return [self.install_exe(dist_filename, tmpdir)] # Anything else, try to extract and build setup_base = tmpdir if os.path.isfile(dist_filename) and not dist_filename.endswith('.py'): unpack_archive(dist_filename, tmpdir, self.unpack_progress) elif os.path.isdir(dist_filename): setup_base = os.path.abspath(dist_filename) if (setup_base.startswith(tmpdir) # something we downloaded and self.build_directory and spec is not None ): setup_base = self.maybe_move(spec, dist_filename, setup_base) # Find the setup.py file setup_script = os.path.join(setup_base, 'setup.py') if not os.path.exists(setup_script): setups = glob(os.path.join(setup_base, '*', 'setup.py')) if not setups: raise DistutilsError( "Couldn't find a setup script in %s" % os.path.abspath(dist_filename) ) if len(setups)>1: raise DistutilsError( "Multiple setup scripts in %s" % os.path.abspath(dist_filename) ) setup_script = setups[0] # Now run it, and return the result if self.editable: log.info(self.report_editable(spec, setup_script)) return [] else: return self.build_and_install(setup_script, setup_base) def egg_distribution(self, egg_path): if os.path.isdir(egg_path): metadata = PathMetadata(egg_path,os.path.join(egg_path,'EGG-INFO')) else: metadata = EggMetadata(zipimport.zipimporter(egg_path)) return Distribution.from_filename(egg_path,metadata=metadata) def install_egg(self, egg_path, tmpdir): destination = os.path.join(self.install_dir,os.path.basename(egg_path)) destination = os.path.abspath(destination) if not self.dry_run: ensure_directory(destination) dist = self.egg_distribution(egg_path) self.check_conflicts(dist) if not samefile(egg_path, destination): if os.path.isdir(destination) and not os.path.islink(destination): dir_util.remove_tree(destination, dry_run=self.dry_run) elif os.path.exists(destination): self.execute(os.unlink,(destination,),"Removing "+destination) uncache_zipdir(destination) if os.path.isdir(egg_path): if egg_path.startswith(tmpdir): f,m = shutil.move, "Moving" else: f,m = shutil.copytree, "Copying" elif self.should_unzip(dist): self.mkpath(destination) f,m = self.unpack_and_compile, "Extracting" elif egg_path.startswith(tmpdir): f,m = shutil.move, "Moving" else: f,m = shutil.copy2, "Copying" self.execute(f, (egg_path, destination), (m+" %s to %s") % (os.path.basename(egg_path),os.path.dirname(destination))) self.add_output(destination) return self.egg_distribution(destination) def install_exe(self, dist_filename, tmpdir): # See if it's valid, get data cfg = extract_wininst_cfg(dist_filename) if cfg is None: raise DistutilsError( "%s is not a valid distutils Windows .exe" % dist_filename ) # Create a dummy distribution object until we build the real distro dist = Distribution(None, project_name=cfg.get('metadata','name'), version=cfg.get('metadata','version'), platform=get_platform() ) # Convert the .exe to an unpacked egg egg_path = dist.location = os.path.join(tmpdir, dist.egg_name()+'.egg') egg_tmp = egg_path+'.tmp' egg_info = os.path.join(egg_tmp, 'EGG-INFO') pkg_inf = os.path.join(egg_info, 'PKG-INFO') ensure_directory(pkg_inf) # make sure EGG-INFO dir exists dist._provider = PathMetadata(egg_tmp, egg_info) # XXX self.exe_to_egg(dist_filename, egg_tmp) # Write EGG-INFO/PKG-INFO if not os.path.exists(pkg_inf): f = open(pkg_inf,'w') f.write('Metadata-Version: 1.0\n') for k,v in cfg.items('metadata'): if k<>'target_version': f.write('%s: %s\n' % (k.replace('_','-').title(), v)) f.close() script_dir = os.path.join(egg_info,'scripts') self.delete_blockers( # delete entry-point scripts to avoid duping [os.path.join(script_dir,args[0]) for args in get_script_args(dist)] ) # Build .egg file from tmpdir bdist_egg.make_zipfile( egg_path, egg_tmp, verbose=self.verbose, dry_run=self.dry_run ) # install the .egg return self.install_egg(egg_path, tmpdir) def exe_to_egg(self, dist_filename, egg_tmp): """Extract a bdist_wininst to the directories an egg would use""" # Check for .pth file and set up prefix translations prefixes = get_exe_prefixes(dist_filename) to_compile = [] native_libs = [] top_level = {} def process(src,dst): s = src.lower() for old,new in prefixes: if s.startswith(old): src = new+src[len(old):] parts = src.split('/') dst = os.path.join(egg_tmp, *parts) dl = dst.lower() if dl.endswith('.pyd') or dl.endswith('.dll'): parts[-1] = bdist_egg.strip_module(parts[-1]) top_level[os.path.splitext(parts[0])[0]] = 1 native_libs.append(src) elif dl.endswith('.py') and old!='SCRIPTS/': top_level[os.path.splitext(parts[0])[0]] = 1 to_compile.append(dst) return dst if not src.endswith('.pth'): log.warn("WARNING: can't process %s", src) return None # extract, tracking .pyd/.dll->native_libs and .py -> to_compile unpack_archive(dist_filename, egg_tmp, process) stubs = [] for res in native_libs: if res.lower().endswith('.pyd'): # create stubs for .pyd's parts = res.split('/') resource = parts[-1] parts[-1] = bdist_egg.strip_module(parts[-1])+'.py' pyfile = os.path.join(egg_tmp, *parts) to_compile.append(pyfile); stubs.append(pyfile) bdist_egg.write_stub(resource, pyfile) self.byte_compile(to_compile) # compile .py's bdist_egg.write_safety_flag(os.path.join(egg_tmp,'EGG-INFO'), bdist_egg.analyze_egg(egg_tmp, stubs)) # write zip-safety flag for name in 'top_level','native_libs': if locals()[name]: txt = os.path.join(egg_tmp, 'EGG-INFO', name+'.txt') if not os.path.exists(txt): f = open(txt,'w') f.write('\n'.join(locals()[name])+'\n') f.close() def check_conflicts(self, dist): """Verify that there are no conflicting "old-style" packages""" return dist # XXX temporarily disable until new strategy is stable from imp import find_module, get_suffixes from glob import glob blockers = [] names = dict.fromkeys(dist._get_metadata('top_level.txt')) # XXX private attr exts = {'.pyc':1, '.pyo':1} # get_suffixes() might leave one out for ext,mode,typ in get_suffixes(): exts[ext] = 1 for path,files in expand_paths([self.install_dir]+self.all_site_dirs): for filename in files: base,ext = os.path.splitext(filename) if base in names: if not ext: # no extension, check for package try: f, filename, descr = find_module(base, [path]) except ImportError: continue else: if f: f.close() if filename not in blockers: blockers.append(filename) elif ext in exts and base!='site': # XXX ugh blockers.append(os.path.join(path,filename)) if blockers: self.found_conflicts(dist, blockers) return dist def found_conflicts(self, dist, blockers): if self.delete_conflicting: log.warn("Attempting to delete conflicting packages:") return self.delete_blockers(blockers) msg = """\ ------------------------------------------------------------------------- CONFLICT WARNING: The following modules or packages have the same names as modules or packages being installed, and will be *before* the installed packages in Python's search path. You MUST remove all of the relevant files and directories before you will be able to use the package(s) you are installing: %s """ % '\n '.join(blockers) if self.ignore_conflicts_at_my_risk: msg += """\ (Note: you can run EasyInstall on '%s' with the --delete-conflicting option to attempt deletion of the above files and/or directories.) """ % dist.project_name else: msg += """\ Note: you can attempt this installation again with EasyInstall, and use either the --delete-conflicting (-D) option or the --ignore-conflicts-at-my-risk option, to either delete the above files and directories, or to ignore the conflicts, respectively. Note that if you ignore the conflicts, the installed package(s) may not work. """ msg += """\ ------------------------------------------------------------------------- """ sys.stderr.write(msg) sys.stderr.flush() if not self.ignore_conflicts_at_my_risk: raise DistutilsError("Installation aborted due to conflicts") def installation_report(self, req, dist, what="Installed"): """Helpful installation message for display to package users""" msg = "\n%(what)s %(eggloc)s%(extras)s" if self.multi_version and not self.no_report: msg += """ Because this distribution was installed --multi-version, before you can import modules from this package in an application, you will need to 'import pkg_resources' and then use a 'require()' call similar to one of these examples, in order to select the desired version: pkg_resources.require("%(name)s") # latest installed version pkg_resources.require("%(name)s==%(version)s") # this exact version pkg_resources.require("%(name)s>=%(version)s") # this version or higher """ if self.install_dir not in map(normalize_path,sys.path): msg += """ Note also that the installation directory must be on sys.path at runtime for this to work. (e.g. by being the application's script directory, by being on PYTHONPATH, or by being added to sys.path by your code.) """ eggloc = dist.location name = dist.project_name version = dist.version extras = '' # TODO: self.report_extras(req, dist) return msg % locals() def report_editable(self, spec, setup_script): dirname = os.path.dirname(setup_script) python = sys.executable return """\nExtracted editable version of %(spec)s to %(dirname)s If it uses setuptools in its setup script, you can activate it in "development" mode by going to that directory and running:: %(python)s setup.py develop See the setuptools documentation for the "develop" command for more info. """ % locals() def run_setup(self, setup_script, setup_base, args): sys.modules.setdefault('distutils.command.bdist_egg', bdist_egg) sys.modules.setdefault('distutils.command.egg_info', egg_info) args = list(args) if self.verbose>2: v = 'v' * (self.verbose - 1) args.insert(0,'-'+v) elif self.verbose<2: args.insert(0,'-q') if self.dry_run: args.insert(0,'-n') log.info( "Running %s %s", setup_script[len(setup_base)+1:], ' '.join(args) ) try: run_setup(setup_script, args) except SystemExit, v: raise DistutilsError("Setup script exited with %s" % (v.args[0],)) def build_and_install(self, setup_script, setup_base): args = ['bdist_egg', '--dist-dir'] dist_dir = tempfile.mkdtemp( prefix='egg-dist-tmp-', dir=os.path.dirname(setup_script) ) try: self._set_fetcher_options(os.path.dirname(setup_script)) args.append(dist_dir) self.run_setup(setup_script, setup_base, args) all_eggs = Environment([dist_dir]) eggs = [] for key in all_eggs: for dist in all_eggs[key]: eggs.append(self.install_egg(dist.location, setup_base)) if not eggs and not self.dry_run: log.warn("No eggs found in %s (setup script problem?)", dist_dir) return eggs finally: rmtree(dist_dir) log.set_verbosity(self.verbose) # restore our log verbosity def _set_fetcher_options(self, base): """ When easy_install is about to run bdist_egg on a source dist, that source dist might have 'setup_requires' directives, requiring additional fetching. Ensure the fetcher options given to easy_install are available to that command as well. """ # find the fetch options from easy_install and write them out # to the setup.cfg file. ei_opts = self.distribution.get_option_dict('easy_install').copy() fetch_directives = ( 'find_links', 'site_dirs', 'index_url', 'optimize', 'site_dirs', 'allow_hosts', ) fetch_options = {} for key, val in ei_opts.iteritems(): if key not in fetch_directives: continue fetch_options[key.replace('_', '-')] = val[1] # create a settings dictionary suitable for `edit_config` settings = dict(easy_install=fetch_options) cfg_filename = os.path.join(base, 'setup.cfg') setopt.edit_config(cfg_filename, settings) def update_pth(self,dist): if self.pth_file is None: return for d in self.pth_file[dist.key]: # drop old entries if self.multi_version or d.location != dist.location: log.info("Removing %s from easy-install.pth file", d) self.pth_file.remove(d) if d.location in self.shadow_path: self.shadow_path.remove(d.location) if not self.multi_version: if dist.location in self.pth_file.paths: log.info( "%s is already the active version in easy-install.pth", dist ) else: log.info("Adding %s to easy-install.pth file", dist) self.pth_file.add(dist) # add new entry if dist.location not in self.shadow_path: self.shadow_path.append(dist.location) if not self.dry_run: self.pth_file.save() if dist.key=='distribute': # Ensure that setuptools itself never becomes unavailable! # XXX should this check for latest version? filename = os.path.join(self.install_dir,'setuptools.pth') if os.path.islink(filename): os.unlink(filename) f = open(filename, 'wt') f.write(self.pth_file.make_relative(dist.location)+'\n') f.close() def unpack_progress(self, src, dst): # Progress filter for unpacking log.debug("Unpacking %s to %s", src, dst) return dst # only unpack-and-compile skips files for dry run def unpack_and_compile(self, egg_path, destination): to_compile = []; to_chmod = [] def pf(src,dst): if dst.endswith('.py') and not src.startswith('EGG-INFO/'): to_compile.append(dst) to_chmod.append(dst) elif dst.endswith('.dll') or dst.endswith('.so'): to_chmod.append(dst) self.unpack_progress(src,dst) return not self.dry_run and dst or None unpack_archive(egg_path, destination, pf) self.byte_compile(to_compile) if not self.dry_run: for f in to_chmod: mode = ((os.stat(f)[stat.ST_MODE]) | 0555) & 07755 chmod(f, mode) def byte_compile(self, to_compile): if _dont_write_bytecode: self.warn('byte-compiling is disabled, skipping.') return from distutils.util import byte_compile try: # try to make the byte compile messages quieter log.set_verbosity(self.verbose - 1) byte_compile(to_compile, optimize=0, force=1, dry_run=self.dry_run) if self.optimize: byte_compile( to_compile, optimize=self.optimize, force=1, dry_run=self.dry_run ) finally: log.set_verbosity(self.verbose) # restore original verbosity def no_default_version_msg(self): return """bad install directory or PYTHONPATH You are attempting to install a package to a directory that is not on PYTHONPATH and which Python does not read ".pth" files from. The installation directory you specified (via --install-dir, --prefix, or the distutils default setting) was: %s and your PYTHONPATH environment variable currently contains: %r Here are some of your options for correcting the problem: * You can choose a different installation directory, i.e., one that is on PYTHONPATH or supports .pth files * You can add the installation directory to the PYTHONPATH environment variable. (It must then also be on PYTHONPATH whenever you run Python and want to use the package(s) you are installing.) * You can set up the installation directory to support ".pth" files by using one of the approaches described here: http://packages.python.org/distribute/easy_install.html#custom-installation-locations Please make the appropriate changes for your system and try again.""" % ( self.install_dir, os.environ.get('PYTHONPATH','') ) def install_site_py(self): """Make sure there's a site.py in the target dir, if needed""" if self.sitepy_installed: return # already did it, or don't need to sitepy = os.path.join(self.install_dir, "site.py") source = resource_string(Requirement.parse("distribute"), "site.py") current = "" if os.path.exists(sitepy): log.debug("Checking existing site.py in %s", self.install_dir) f = open(sitepy,'rb') current = f.read() # we want str, not bytes if sys.version_info >= (3,): current = current.decode() f.close() if not current.startswith('def __boot():'): raise DistutilsError( "%s is not a setuptools-generated site.py; please" " remove it." % sitepy ) if current != source: log.info("Creating %s", sitepy) if not self.dry_run: ensure_directory(sitepy) f = open(sitepy,'wb') f.write(source) f.close() self.byte_compile([sitepy]) self.sitepy_installed = True def create_home_path(self): """Create directories under ~.""" if not self.user: return home = convert_path(os.path.expanduser("~")) for name, path in self.config_vars.iteritems(): if path.startswith(home) and not os.path.isdir(path): self.debug_print("os.makedirs('%s', 0700)" % path) os.makedirs(path, 0700) INSTALL_SCHEMES = dict( posix = dict( install_dir = '$base/lib/python$py_version_short/site-packages', script_dir = '$base/bin', ), ) DEFAULT_SCHEME = dict( install_dir = '$base/Lib/site-packages', script_dir = '$base/Scripts', ) def _expand(self, *attrs): config_vars = self.get_finalized_command('install').config_vars if self.prefix: # Set default install_dir/scripts from --prefix config_vars = config_vars.copy() config_vars['base'] = self.prefix scheme = self.INSTALL_SCHEMES.get(os.name,self.DEFAULT_SCHEME) for attr,val in scheme.items(): if getattr(self,attr,None) is None: setattr(self,attr,val) from distutils.util import subst_vars for attr in attrs: val = getattr(self, attr) if val is not None: val = subst_vars(val, config_vars) if os.name == 'posix': val = os.path.expanduser(val) setattr(self, attr, val) def get_site_dirs(): # return a list of 'site' dirs sitedirs = filter(None,os.environ.get('PYTHONPATH','').split(os.pathsep)) prefixes = [sys.prefix] if sys.exec_prefix != sys.prefix: prefixes.append(sys.exec_prefix) for prefix in prefixes: if prefix: if sys.platform in ('os2emx', 'riscos'): sitedirs.append(os.path.join(prefix, "Lib", "site-packages")) elif os.sep == '/': sitedirs.extend([os.path.join(prefix, "lib", "python" + sys.version[:3], "site-packages"), os.path.join(prefix, "lib", "site-python")]) else: sitedirs.extend( [prefix, os.path.join(prefix, "lib", "site-packages")] ) if sys.platform == 'darwin': # for framework builds *only* we add the standard Apple # locations. Currently only per-user, but /Library and # /Network/Library could be added too if 'Python.framework' in prefix: home = os.environ.get('HOME') if home: sitedirs.append( os.path.join(home, 'Library', 'Python', sys.version[:3], 'site-packages')) for plat_specific in (0,1): site_lib = get_python_lib(plat_specific) if site_lib not in sitedirs: sitedirs.append(site_lib) if HAS_USER_SITE: sitedirs.append(site.USER_SITE) sitedirs = map(normalize_path, sitedirs) return sitedirs def expand_paths(inputs): """Yield sys.path directories that might contain "old-style" packages""" seen = {} for dirname in inputs: dirname = normalize_path(dirname) if dirname in seen: continue seen[dirname] = 1 if not os.path.isdir(dirname): continue files = os.listdir(dirname) yield dirname, files for name in files: if not name.endswith('.pth'): # We only care about the .pth files continue if name in ('easy-install.pth','setuptools.pth'): # Ignore .pth files that we control continue # Read the .pth file f = open(os.path.join(dirname,name)) lines = list(yield_lines(f)) f.close() # Yield existing non-dupe, non-import directory lines from it for line in lines: if not line.startswith("import"): line = normalize_path(line.rstrip()) if line not in seen: seen[line] = 1 if not os.path.isdir(line): continue yield line, os.listdir(line) def extract_wininst_cfg(dist_filename): """Extract configuration data from a bdist_wininst .exe Returns a ConfigParser.RawConfigParser, or None """ f = open(dist_filename,'rb') try: endrec = zipfile._EndRecData(f) if endrec is None: return None prepended = (endrec[9] - endrec[5]) - endrec[6] if prepended < 12: # no wininst data here return None f.seek(prepended-12) import struct, StringIO, ConfigParser tag, cfglen, bmlen = struct.unpack("= (2,6): null_byte = bytes([0]) else: null_byte = chr(0) config = part.split(null_byte, 1)[0] # Now the config is in bytes, but on Python 3, it must be # unicode for the RawConfigParser, so decode it. Is this the # right encoding? config = config.decode('ascii') cfg.readfp(StringIO.StringIO(config)) except ConfigParser.Error: return None if not cfg.has_section('metadata') or not cfg.has_section('Setup'): return None return cfg finally: f.close() def get_exe_prefixes(exe_filename): """Get exe->egg path translations for a given .exe file""" prefixes = [ ('PURELIB/', ''), ('PLATLIB/pywin32_system32', ''), ('PLATLIB/', ''), ('SCRIPTS/', 'EGG-INFO/scripts/'), ('DATA/LIB/site-packages', ''), ] z = zipfile.ZipFile(exe_filename) try: for info in z.infolist(): name = info.filename parts = name.split('/') if len(parts)==3 and parts[2]=='PKG-INFO': if parts[1].endswith('.egg-info'): prefixes.insert(0,('/'.join(parts[:2]), 'EGG-INFO/')) break if len(parts)<>2 or not name.endswith('.pth'): continue if name.endswith('-nspkg.pth'): continue if parts[0].upper() in ('PURELIB','PLATLIB'): for pth in yield_lines(z.read(name)): pth = pth.strip().replace('\\','/') if not pth.startswith('import'): prefixes.append((('%s/%s/' % (parts[0],pth)), '')) finally: z.close() prefixes = [(x.lower(),y) for x, y in prefixes] prefixes.sort(); prefixes.reverse() return prefixes def parse_requirement_arg(spec): try: return Requirement.parse(spec) except ValueError: raise DistutilsError( "Not a URL, existing file, or requirement spec: %r" % (spec,) ) class PthDistributions(Environment): """A .pth file with Distribution paths in it""" dirty = False def __init__(self, filename, sitedirs=()): self.filename = filename; self.sitedirs=map(normalize_path, sitedirs) self.basedir = normalize_path(os.path.dirname(self.filename)) self._load(); Environment.__init__(self, [], None, None) for path in yield_lines(self.paths): map(self.add, find_distributions(path, True)) def _load(self): self.paths = [] saw_import = False seen = dict.fromkeys(self.sitedirs) if os.path.isfile(self.filename): f = open(self.filename,'rt') for line in f: if line.startswith('import'): saw_import = True continue path = line.rstrip() self.paths.append(path) if not path.strip() or path.strip().startswith('#'): continue # skip non-existent paths, in case somebody deleted a package # manually, and duplicate paths as well path = self.paths[-1] = normalize_path( os.path.join(self.basedir,path) ) if not os.path.exists(path) or path in seen: self.paths.pop() # skip it self.dirty = True # we cleaned up, so we're dirty now :) continue seen[path] = 1 f.close() if self.paths and not saw_import: self.dirty = True # ensure anything we touch has import wrappers while self.paths and not self.paths[-1].strip(): self.paths.pop() def save(self): """Write changed .pth file back to disk""" if not self.dirty: return data = '\n'.join(map(self.make_relative,self.paths)) if data: log.debug("Saving %s", self.filename) data = ( "import sys; sys.__plen = len(sys.path)\n" "%s\n" "import sys; new=sys.path[sys.__plen:];" " del sys.path[sys.__plen:];" " p=getattr(sys,'__egginsert',0); sys.path[p:p]=new;" " sys.__egginsert = p+len(new)\n" ) % data if os.path.islink(self.filename): os.unlink(self.filename) f = open(self.filename,'wt') f.write(data); f.close() elif os.path.exists(self.filename): log.debug("Deleting empty %s", self.filename) os.unlink(self.filename) self.dirty = False def add(self,dist): """Add `dist` to the distribution map""" if (dist.location not in self.paths and ( dist.location not in self.sitedirs or dist.location == os.getcwd() #account for '.' being in PYTHONPATH )): self.paths.append(dist.location) self.dirty = True Environment.add(self,dist) def remove(self,dist): """Remove `dist` from the distribution map""" while dist.location in self.paths: self.paths.remove(dist.location); self.dirty = True Environment.remove(self,dist) def make_relative(self,path): npath, last = os.path.split(normalize_path(path)) baselen = len(self.basedir) parts = [last] sep = os.altsep=='/' and '/' or os.sep while len(npath)>=baselen: if npath==self.basedir: parts.append(os.curdir) parts.reverse() return sep.join(parts) npath, last = os.path.split(npath) parts.append(last) else: return path def get_script_header(script_text, executable=sys_executable, wininst=False): """Create a #! line, getting options (if any) from script_text""" from distutils.command.build_scripts import first_line_re # first_line_re in Python >=3.1.4 and >=3.2.1 is a bytes pattern. if not isinstance(first_line_re.pattern, str): first_line_re = re.compile(first_line_re.pattern.decode()) first = (script_text+'\n').splitlines()[0] match = first_line_re.match(first) options = '' if match: options = match.group(1) or '' if options: options = ' '+options if wininst: executable = "python.exe" else: executable = nt_quote_arg(executable) hdr = "#!%(executable)s%(options)s\n" % locals() if not isascii(hdr): # Non-ascii path to sys.executable, use -x to prevent warnings if options: if options.strip().startswith('-'): options = ' -x'+options.strip()[1:] # else: punt, we can't do it, let the warning happen anyway else: options = ' -x' executable = fix_jython_executable(executable, options) hdr = "#!%(executable)s%(options)s\n" % locals() return hdr def auto_chmod(func, arg, exc): if func is os.remove and os.name=='nt': chmod(arg, stat.S_IWRITE) return func(arg) exc = sys.exc_info() raise exc[0], (exc[1][0], exc[1][1] + (" %s %s" % (func,arg))) def uncache_zipdir(path): """Ensure that the importer caches dont have stale info for `path`""" from zipimport import _zip_directory_cache as zdc _uncache(path, zdc) _uncache(path, sys.path_importer_cache) def _uncache(path, cache): if path in cache: del cache[path] else: path = normalize_path(path) for p in cache: if normalize_path(p)==path: del cache[p] return def is_python(text, filename=''): "Is this string a valid Python script?" try: compile(text, filename, 'exec') except (SyntaxError, TypeError): return False else: return True def is_sh(executable): """Determine if the specified executable is a .sh (contains a #! line)""" try: fp = open(executable) magic = fp.read(2) fp.close() except (OSError,IOError): return executable return magic == '#!' def nt_quote_arg(arg): """Quote a command line argument according to Windows parsing rules""" result = [] needquote = False nb = 0 needquote = (" " in arg) or ("\t" in arg) if needquote: result.append('"') for c in arg: if c == '\\': nb += 1 elif c == '"': # double preceding backslashes, then add a \" result.append('\\' * (nb*2) + '\\"') nb = 0 else: if nb: result.append('\\' * nb) nb = 0 result.append(c) if nb: result.append('\\' * nb) if needquote: result.append('\\' * nb) # double the trailing backslashes result.append('"') return ''.join(result) def is_python_script(script_text, filename): """Is this text, as a whole, a Python script? (as opposed to shell/bat/etc. """ if filename.endswith('.py') or filename.endswith('.pyw'): return True # extension says it's Python if is_python(script_text, filename): return True # it's syntactically valid Python if script_text.startswith('#!'): # It begins with a '#!' line, so check if 'python' is in it somewhere return 'python' in script_text.splitlines()[0].lower() return False # Not any Python I can recognize try: from os import chmod as _chmod except ImportError: # Jython compatibility def _chmod(*args): pass def chmod(path, mode): log.debug("changing mode of %s to %o", path, mode) try: _chmod(path, mode) except os.error, e: log.debug("chmod failed: %s", e) def fix_jython_executable(executable, options): if sys.platform.startswith('java') and is_sh(executable): # Workaround Jython's sys.executable being a .sh (an invalid # shebang line interpreter) if options: # Can't apply the workaround, leave it broken log.warn("WARNING: Unable to adapt shebang line for Jython," " the following script is NOT executable\n" " see http://bugs.jython.org/issue1112 for" " more information.") else: return '/usr/bin/env %s' % executable return executable def get_script_args(dist, executable=sys_executable, wininst=False): """Yield write_script() argument tuples for a distribution's entrypoints""" spec = str(dist.as_requirement()) header = get_script_header("", executable, wininst) for group in 'console_scripts', 'gui_scripts': for name, ep in dist.get_entry_map(group).items(): script_text = ( "# EASY-INSTALL-ENTRY-SCRIPT: %(spec)r,%(group)r,%(name)r\n" "__requires__ = %(spec)r\n" "import sys\n" "from pkg_resources import load_entry_point\n" "\n" "if __name__ == '__main__':" "\n" " sys.exit(\n" " load_entry_point(%(spec)r, %(group)r, %(name)r)()\n" " )\n" ) % locals() if sys.platform=='win32' or wininst: # On Windows/wininst, add a .py extension and an .exe launcher if group=='gui_scripts': ext, launcher = '-script.pyw', 'gui.exe' old = ['.pyw'] new_header = re.sub('(?i)python.exe','pythonw.exe',header) else: ext, launcher = '-script.py', 'cli.exe' old = ['.py','.pyc','.pyo'] new_header = re.sub('(?i)pythonw.exe','python.exe',header) if is_64bit(): launcher = launcher.replace(".", "-64.") else: launcher = launcher.replace(".", "-32.") if os.path.exists(new_header[2:-1]) or sys.platform!='win32': hdr = new_header else: hdr = header yield (name+ext, hdr+script_text, 't', [name+x for x in old]) yield ( name+'.exe', resource_string('setuptools', launcher), 'b' # write in binary mode ) else: # On other platforms, we assume the right thing to do is to # just write the stub with no extension. yield (name, header+script_text) def rmtree(path, ignore_errors=False, onerror=auto_chmod): """Recursively delete a directory tree. This code is taken from the Python 2.4 version of 'shutil', because the 2.3 version doesn't really work right. """ if ignore_errors: def onerror(*args): pass elif onerror is None: def onerror(*args): raise names = [] try: names = os.listdir(path) except os.error, err: onerror(os.listdir, path, sys.exc_info()) for name in names: fullname = os.path.join(path, name) try: mode = os.lstat(fullname).st_mode except os.error: mode = 0 if stat.S_ISDIR(mode): rmtree(fullname, ignore_errors, onerror) else: try: os.remove(fullname) except os.error, err: onerror(os.remove, fullname, sys.exc_info()) try: os.rmdir(path) except os.error: onerror(os.rmdir, path, sys.exc_info()) def current_umask(): tmp = os.umask(022) os.umask(tmp) return tmp def bootstrap(): # This function is called when setuptools*.egg is run using /bin/sh import setuptools; argv0 = os.path.dirname(setuptools.__path__[0]) sys.argv[0] = argv0; sys.argv.append(argv0); main() def main(argv=None, **kw): from setuptools import setup from setuptools.dist import Distribution import distutils.core USAGE = """\ usage: %(script)s [options] requirement_or_url ... or: %(script)s --help """ def gen_usage (script_name): script = os.path.basename(script_name) return USAGE % vars() def with_ei_usage(f): old_gen_usage = distutils.core.gen_usage try: distutils.core.gen_usage = gen_usage return f() finally: distutils.core.gen_usage = old_gen_usage class DistributionWithoutHelpCommands(Distribution): common_usage = "" def _show_help(self,*args,**kw): with_ei_usage(lambda: Distribution._show_help(self,*args,**kw)) def find_config_files(self): files = Distribution.find_config_files(self) if 'setup.cfg' in files: files.remove('setup.cfg') return files if argv is None: argv = sys.argv[1:] with_ei_usage(lambda: setup( script_args = ['-q','easy_install', '-v']+argv, script_name = sys.argv[0] or 'easy_install', distclass=DistributionWithoutHelpCommands, **kw ) ) 0707010006216d000081a4000000000000000000000001513ff4b60000138f000000b600010002ffffffffffffffff0000006f00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyc ?Qc@stddlmZddlmZddlmZmZddlZddlZddl Z defdYZ dS(i(tCommand(tunpack_archive(tlogtdir_utilNtinstall_egg_infocBs\eZdZdZd gZdZdZdZdZdZ d Z d Z RS( s.Install an .egg-info directory for the packages install-dir=tdsdirectory to install tocCs d|_dS(N(tNonet install_dir(tself((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pytinitialize_optionsscCs|jdd|jd}tjdd|j|jjd}|j|_t j j |j ||_ |j g|_dS(Nt install_libRtegg_infos .egg-info(s install_dirs install_dir(tset_undefined_optionstget_finalized_commandt pkg_resourcest DistributionRtegg_namet egg_versionR tsourcetostpathtjoinRttargettoutputs(Rtei_cmdtbasename((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pytfinalize_optionss cCs|jd|j}tjj|jr]tjj|j r]tj|jd|jn;tjj |jr|j tj |jfd|jn|jst j |jn|j |jdd|j|jf|jdS(NR tdry_runs Removing sCopying %s to %s((t run_commandRRRtisdirtislinkRt remove_treeRtexiststexecutetunlinkRtensure_directorytcopytreeRtinstall_namespaces(RR((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pytruns  +& cCs|jS(N(R(R((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyt get_outputs*scs)fd}tjj|dS(Ncs[x1dD])}|j|s,d||krdSqWjj|tjd|||S(Ns.svn/sCVS/t/sCopying %s to %s(s.svn/sCVS/(t startswithRRtappendRtdebug(tsrctdsttskip(R(si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pytskimmer/s  (RRR(RR/((Rsi/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyR$-s cCs|j}|sdStjj|j\}}|d7}|jj|tjd||j st |d}xy|D]q}t |}t |j d}d}d|krddj|d |df}n|jdtqzW|jndS( Ns -nspkg.pths Installing %stwtt.s s(; m and setattr(sys.modules[%r], %r, m) is7import sys,types,os; p = os.path.join(sys._getframe(1).f_locals['sitedir'], *%(pth)r); ie = os.path.exists(os.path.join(p,'__init__.py')); m = not ie and sys.modules.setdefault(%(pkg)r,types.ModuleType(%(pkg)r)); mp = (m or []) and m.__dict__.setdefault('__path__',[]); (p not in mp) and mp.append(p)%(trailer)s(t_get_all_ns_packagesRRtsplitextRRR*RtinfoRtopentstrttupletsplitRtwritetlocalstclose(Rtnsptfilenametexttftpkgtpthttrailer((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyR%Ss(      !cCsvi}xS|jjpgD]?}|jd}x'|rWd|dj|<|jq1WqWt|}|j|S(NR1i(t distributiontnamespace_packagesR8Rtpoptlisttsort(RR<R@((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyR2rs   (s install-dir=Rsdirectory to install to( t__name__t __module__t__doc__t descriptiont user_optionsR RR&R'R$R%R2(((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyRs     & ( t setuptoolsRtsetuptools.archive_utilRt distutilsRRRtshutilRR(((si/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/install_egg_info.pyts$07070100062164000081ed000000000000000000000001513ff4b5000014f8000000b600010002ffffffffffffffff0000006500000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/develop.pyfrom setuptools.command.easy_install import easy_install from distutils.util import convert_path, subst_vars from pkg_resources import Distribution, PathMetadata, normalize_path from distutils import log from distutils.errors import DistutilsError, DistutilsOptionError import os, setuptools, glob class develop(easy_install): """Set up package for development""" description = "install package in 'development mode'" user_options = easy_install.user_options + [ ("uninstall", "u", "Uninstall this source package"), ("egg-path=", None, "Set the path to be used in the .egg-link file"), ] boolean_options = easy_install.boolean_options + ['uninstall'] command_consumes_arguments = False # override base def run(self): if self.uninstall: self.multi_version = True self.uninstall_link() else: self.install_for_development() self.warn_deprecated_options() def initialize_options(self): self.uninstall = None self.egg_path = None easy_install.initialize_options(self) self.setup_path = None self.always_copy_from = '.' # always copy eggs installed in curdir def finalize_options(self): ei = self.get_finalized_command("egg_info") if ei.broken_egg_info: raise DistutilsError( "Please rename %r to %r before using 'develop'" % (ei.egg_info, ei.broken_egg_info) ) self.args = [ei.egg_name] easy_install.finalize_options(self) self.expand_basedirs() self.expand_dirs() # pick up setup-dir .egg files only: no .egg-info self.package_index.scan(glob.glob('*.egg')) self.egg_link = os.path.join(self.install_dir, ei.egg_name+'.egg-link') self.egg_base = ei.egg_base if self.egg_path is None: self.egg_path = os.path.abspath(ei.egg_base) target = normalize_path(self.egg_base) if normalize_path(os.path.join(self.install_dir, self.egg_path)) != target: raise DistutilsOptionError( "--egg-path must be a relative path from the install" " directory to "+target ) # Make a distribution for the package's source self.dist = Distribution( target, PathMetadata(target, os.path.abspath(ei.egg_info)), project_name = ei.egg_name ) p = self.egg_base.replace(os.sep,'/') if p!= os.curdir: p = '../' * (p.count('/')+1) self.setup_path = p p = normalize_path(os.path.join(self.install_dir, self.egg_path, p)) if p != normalize_path(os.curdir): raise DistutilsOptionError( "Can't get a consistent path to setup script from" " installation directory", p, normalize_path(os.curdir)) def install_for_development(self): # Ensure metadata is up-to-date self.run_command('egg_info') # Build extensions in-place self.reinitialize_command('build_ext', inplace=1) self.run_command('build_ext') self.install_site_py() # ensure that target dir is site-safe if setuptools.bootstrap_install_from: self.easy_install(setuptools.bootstrap_install_from) setuptools.bootstrap_install_from = None # create an .egg-link in the installation dir, pointing to our egg log.info("Creating %s (link to %s)", self.egg_link, self.egg_base) if not self.dry_run: f = open(self.egg_link,"w") f.write(self.egg_path + "\n" + self.setup_path) f.close() # postprocess the installed distro, fixing up .pth, installing scripts, # and handling requirements self.process_distribution(None, self.dist, not self.no_deps) def uninstall_link(self): if os.path.exists(self.egg_link): log.info("Removing %s (link to %s)", self.egg_link, self.egg_base) contents = [line.rstrip() for line in open(self.egg_link)] if contents not in ([self.egg_path], [self.egg_path, self.setup_path]): log.warn("Link points to %s: uninstall aborted", contents) return if not self.dry_run: os.unlink(self.egg_link) if not self.dry_run: self.update_pth(self.dist) # remove any .pth link to us if self.distribution.scripts: # XXX should also check for entry point scripts! log.warn("Note: you must uninstall or replace scripts manually!") def install_egg_scripts(self, dist): if dist is not self.dist: # Installing a dependency, so fall back to normal behavior return easy_install.install_egg_scripts(self,dist) # create wrapper scripts in the script dir, pointing to dist.scripts # new-style... self.install_wrapper_scripts(dist) # ...and old-style for script_name in self.distribution.scripts or []: script_path = os.path.abspath(convert_path(script_name)) script_name = os.path.basename(script_path) f = open(script_path,'rU') script_text = f.read() f.close() self.install_script(dist, script_name, script_text, script_path) 07070100062180000081ed000000000000000000000001513ff4b50000181e000000b600010002ffffffffffffffff0000006900000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/upload_docs.py# -*- coding: utf-8 -*- """upload_docs Implements a Distutils 'upload_docs' subcommand (upload documentation to PyPI's packages.python.org). """ import os import socket import zipfile import httplib import base64 import urlparse import tempfile import sys from distutils import log from distutils.errors import DistutilsOptionError try: from distutils.command.upload import upload except ImportError: from setuptools.command.upload import upload _IS_PYTHON3 = sys.version > '3' try: bytes except NameError: bytes = str def b(str_or_bytes): """Return bytes by either encoding the argument as ASCII or simply return the argument as-is.""" if not isinstance(str_or_bytes, bytes): return str_or_bytes.encode('ascii') else: return str_or_bytes class upload_docs(upload): description = 'Upload documentation to PyPI' user_options = [ ('repository=', 'r', "url of repository [default: %s]" % upload.DEFAULT_REPOSITORY), ('show-response', None, 'display full response text from server'), ('upload-dir=', None, 'directory to upload'), ] boolean_options = upload.boolean_options def initialize_options(self): upload.initialize_options(self) self.upload_dir = None def finalize_options(self): upload.finalize_options(self) if self.upload_dir is None: build = self.get_finalized_command('build') self.upload_dir = os.path.join(build.build_base, 'docs') self.mkpath(self.upload_dir) self.ensure_dirname('upload_dir') self.announce('Using upload directory %s' % self.upload_dir) def create_zipfile(self): name = self.distribution.metadata.get_name() tmp_dir = tempfile.mkdtemp() tmp_file = os.path.join(tmp_dir, "%s.zip" % name) zip_file = zipfile.ZipFile(tmp_file, "w") for root, dirs, files in os.walk(self.upload_dir): if root == self.upload_dir and not files: raise DistutilsOptionError( "no files found in upload directory '%s'" % self.upload_dir) for name in files: full = os.path.join(root, name) relative = root[len(self.upload_dir):].lstrip(os.path.sep) dest = os.path.join(relative, name) zip_file.write(full, dest) zip_file.close() return tmp_file def run(self): zip_file = self.create_zipfile() self.upload_file(zip_file) def upload_file(self, filename): content = open(filename, 'rb').read() meta = self.distribution.metadata data = { ':action': 'doc_upload', 'name': meta.get_name(), 'content': (os.path.basename(filename), content), } # set up the authentication credentials = self.username + ':' + self.password if _IS_PYTHON3: # base64 only works with bytes in Python 3. encoded_creds = base64.encodebytes(credentials.encode('utf8')) auth = bytes("Basic ") else: encoded_creds = base64.encodestring(credentials) auth = "Basic " auth += encoded_creds.strip() # Build up the MIME payload for the POST data boundary = b('--------------GHSKFJDLGDS7543FJKLFHRE75642756743254') sep_boundary = b('\n--') + boundary end_boundary = sep_boundary + b('--') body = [] for key, values in data.items(): # handle multiple entries for the same name if type(values) != type([]): values = [values] for value in values: if type(value) is tuple: fn = b(';filename="%s"' % value[0]) value = value[1] else: fn = b("") body.append(sep_boundary) body.append(b('\nContent-Disposition: form-data; name="%s"'%key)) body.append(fn) body.append(b("\n\n")) body.append(b(value)) if value and value[-1] == b('\r'): body.append(b('\n')) # write an extra newline (lurve Macs) body.append(end_boundary) body.append(b("\n")) body = b('').join(body) self.announce("Submitting documentation to %s" % (self.repository), log.INFO) # build the Request # We can't use urllib2 since we need to send the Basic # auth right with the first request schema, netloc, url, params, query, fragments = \ urlparse.urlparse(self.repository) assert not params and not query and not fragments if schema == 'http': conn = httplib.HTTPConnection(netloc) elif schema == 'https': conn = httplib.HTTPSConnection(netloc) else: raise AssertionError("unsupported schema "+schema) data = '' loglevel = log.INFO try: conn.connect() conn.putrequest("POST", url) conn.putheader('Content-type', 'multipart/form-data; boundary=%s'%boundary) conn.putheader('Content-length', str(len(body))) conn.putheader('Authorization', auth) conn.endheaders() conn.send(body) except socket.error, e: self.announce(str(e), log.ERROR) return r = conn.getresponse() if r.status == 200: self.announce('Server response (%s): %s' % (r.status, r.reason), log.INFO) elif r.status == 301: location = r.getheader('Location') if location is None: location = 'http://packages.python.org/%s/' % meta.get_name() self.announce('Upload successful. Visit %s' % location, log.INFO) else: self.announce('Upload failed (%s): %s' % (r.status, r.reason), log.ERROR) if self.show_response: print '-'*75, r.read(), '-'*75 0707010006217a000081ed000000000000000000000001513ff4b5000013bd000000b600010002ffffffffffffffff0000006400000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/setopt.pyimport distutils, os from setuptools import Command from distutils.util import convert_path from distutils import log from distutils.errors import * __all__ = ['config_file', 'edit_config', 'option_base', 'setopt'] def config_file(kind="local"): """Get the filename of the distutils, local, global, or per-user config `kind` must be one of "local", "global", or "user" """ if kind=='local': return 'setup.cfg' if kind=='global': return os.path.join( os.path.dirname(distutils.__file__),'distutils.cfg' ) if kind=='user': dot = os.name=='posix' and '.' or '' return os.path.expanduser(convert_path("~/%spydistutils.cfg" % dot)) raise ValueError( "config_file() type must be 'local', 'global', or 'user'", kind ) def edit_config(filename, settings, dry_run=False): """Edit a configuration file to include `settings` `settings` is a dictionary of dictionaries or ``None`` values, keyed by command/section name. A ``None`` value means to delete the entire section, while a dictionary lists settings to be changed or deleted in that section. A setting of ``None`` means to delete that setting. """ from ConfigParser import RawConfigParser log.debug("Reading configuration from %s", filename) opts = RawConfigParser() opts.read([filename]) for section, options in settings.items(): if options is None: log.info("Deleting section [%s] from %s", section, filename) opts.remove_section(section) else: if not opts.has_section(section): log.debug("Adding new section [%s] to %s", section, filename) opts.add_section(section) for option,value in options.items(): if value is None: log.debug("Deleting %s.%s from %s", section, option, filename ) opts.remove_option(section,option) if not opts.options(section): log.info("Deleting empty [%s] section from %s", section, filename) opts.remove_section(section) else: log.debug( "Setting %s.%s to %r in %s", section, option, value, filename ) opts.set(section,option,value) log.info("Writing %s", filename) if not dry_run: f = open(filename,'w'); opts.write(f); f.close() class option_base(Command): """Abstract base class for commands that mess with config files""" user_options = [ ('global-config', 'g', "save options to the site-wide distutils.cfg file"), ('user-config', 'u', "save options to the current user's pydistutils.cfg file"), ('filename=', 'f', "configuration file to use (default=setup.cfg)"), ] boolean_options = [ 'global-config', 'user-config', ] def initialize_options(self): self.global_config = None self.user_config = None self.filename = None def finalize_options(self): filenames = [] if self.global_config: filenames.append(config_file('global')) if self.user_config: filenames.append(config_file('user')) if self.filename is not None: filenames.append(self.filename) if not filenames: filenames.append(config_file('local')) if len(filenames)>1: raise DistutilsOptionError( "Must specify only one configuration file option", filenames ) self.filename, = filenames class setopt(option_base): """Save command-line options to a file""" description = "set an option in setup.cfg or another config file" user_options = [ ('command=', 'c', 'command to set an option for'), ('option=', 'o', 'option to set'), ('set-value=', 's', 'value of the option'), ('remove', 'r', 'remove (unset) the value'), ] + option_base.user_options boolean_options = option_base.boolean_options + ['remove'] def initialize_options(self): option_base.initialize_options(self) self.command = None self.option = None self.set_value = None self.remove = None def finalize_options(self): option_base.finalize_options(self) if self.command is None or self.option is None: raise DistutilsOptionError("Must specify --command *and* --option") if self.set_value is None and not self.remove: raise DistutilsOptionError("Must specify --set-value or --remove") def run(self): edit_config( self.filename, { self.command: {self.option.replace('-','_'):self.set_value} }, self.dry_run ) 07070100062157000081a4000000000000000000000001513ff4b6000003ba000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/__init__.pyc ?Qc@sdddddddddd d d d d dddddddgZddlmZddlZejdkrejdnddlmZdejkrdej ds  0707010006215f000081a4000000000000000000000001513ff4b6000007d5000000b600010002ffffffffffffffff0000006c00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyc ?Qc@sBddlmZddlZddlZdefdYZdS(i(t bdist_wininstNRcBs)eZddZddZdZRS(c Cstj||||t|jdg}|jrtjj|jd||jf}|j}dd|f}||kr|j |qn"tjj|jd|}d}d||f}||kr|j |ndS(Nt dist_filess%s.win32-py%s.exeRtanys %s.win32.exe( t_bdist_wininstt create_exetgetattrt distributionttarget_versiontostpathtjointdist_dirtremovetappend( tselftarcnametfullnametbitmapRtinstaller_namet pyversiontbadtgood((sf/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyRs      icCs1|jj||}|dkr-d|_n|S(Ntinstallt install_lib(sinstalls install_lib(Rtreinitialize_commandtNoneR(Rtcommandtreinit_subcommandstcmd((sf/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyRs     cCs+t|_ztj|Wdt|_XdS(N(tTruet _is_runningRtruntFalse(R((sf/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyR#s N(t__name__t __module__RRRR(((sf/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyRs  (tdistutils.command.bdist_wininstRRRtsys(((sf/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_wininst.pyts0707010006215c000081ed000000000000000000000001513ff4b5000007e9000000b600010002ffffffffffffffff0000006700000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/command/bdist_rpm.py# This is just a kludge so that bdist_rpm doesn't guess wrong about the # distribution name and version, if the egg_info command is going to alter # them, another kludge to allow you to build old-style non-egg RPMs, and # finally, a kludge to track .rpm files for uploading when run on Python <2.5. from distutils.command.bdist_rpm import bdist_rpm as _bdist_rpm import sys, os class bdist_rpm(_bdist_rpm): def initialize_options(self): _bdist_rpm.initialize_options(self) self.no_egg = None if sys.version<"2.5": # Track for uploading any .rpm file(s) moved to self.dist_dir def move_file(self, src, dst, level=1): _bdist_rpm.move_file(self, src, dst, level) if dst==self.dist_dir and src.endswith('.rpm'): getattr(self.distribution,'dist_files',[]).append( ('bdist_rpm', src.endswith('.src.rpm') and 'any' or sys.version[:3], os.path.join(dst, os.path.basename(src))) ) def run(self): self.run_command('egg_info') # ensure distro name is up-to-date _bdist_rpm.run(self) def _make_spec_file(self): version = self.distribution.get_version() rpmversion = version.replace('-','_') spec = _bdist_rpm._make_spec_file(self) line23 = '%define version '+version line24 = '%define version '+rpmversion spec = [ line.replace( "Source0: %{name}-%{version}.tar", "Source0: %{name}-%{unmangled_version}.tar" ).replace( "setup.py install ", "setup.py install --single-version-externally-managed " ).replace( "%setup", "%setup -n %{name}-%{unmangled_version}" ).replace(line23,line24) for line in spec ] spec.insert(spec.index(line24)+1, "%define unmangled_version "+version) return spec 07070100062192000081ed000000000000000000000001513ff4b5000000ca000000b600010002ffffffffffffffff0000006900000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.py# EASY-INSTALL-DEV-SCRIPT: %(spec)r,%(script_name)r __requires__ = """%(spec)r""" from pkg_resources import require; require("""%(spec)r""") del require __file__ = """%(dev_path)r""" execfile(__file__) 0707010006218d000081a4000000000000000000000001513ff4b5000078d2000000b600010002ffffffffffffffff0000006400000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyc ?Qc@sdZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlTddlmZddlmZyddlmZWn!ek rddlmZnXddlmZejdZejd ejZejd Zejd ejjZd jZ d dddgZ!dZ"dZ#dZ$e%dZ&e%dZ'e%dZ(e%e)e%dZ*ejdejZ+dZ,dej-d e.ddj-fZ/d e0fdYZ1ejdj2Z3d Z4d!Z5d"Z6dd#Z7d$Z8d%Z9e7e"e9Z9d&Z:d'Z;dS((s#PyPI and direct package downloadingiN(t*(tlog(tDistutilsError(tmd5(t translates^egg=([-A-Za-z0-9_.]+)$shref\s*=\s*['"]?([^'"> ]+)s([^<]+) \s+\(md5\)s([-+.a-z0-9]{2,}):s.tar.gz .tar.bz2 .tar .zip .tgzt PackageIndextdistros_for_urltparse_bdist_wininsttinterpret_distro_nameicCs|j}d\}}}|jdr|jdrL|d }d}q|jddr~|dd!}|d }d}q|jd r|d }d }q|jd d r|dd!}|d }d }qn|||fS(s=Return (base,pyversion) or (None,None) for possible .exe names.exes .win32.exeitwin32s .win32-pyiiis.win-amd64.exeis win-amd64s .win-amd64-pyiN(NNN(tlowertNonetendswitht startswith(tnameR tbasetpy_vertplat((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRs$           cCsntj|\}}}}}}tj|jdd}d|krd|jdd\}}n||fS(Nt/it#i(turlparseturllib2tunquotetsplit(turltschemetservertpatht parameterstquerytfragmentR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytegg_info_for_url7s ! ccst|\}}xt|||D] }|Vq%W|rtj|}|rx1t||jd|dtD] }|VqqWqndS(sEYield egg or source distribution objects that might be found at a URLit precedenceN(Rtdistros_for_locationt EGG_FRAGMENTtmatchRtgroupt CHECKOUT_DIST(RtmetadataRRtdistR#((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR=s "cCs|jdr|d }n|jdrMd|krMtj|||gS|jdrt|\}}}|dk rt||||t|Snx>tD]6}|j|r|t| }t|||SqWgS(s:Yield egg or source distribution objects based on basenames.egg.zipis.eggt-s.exeN( R t Distributiont from_locationRR Rt BINARY_DISTt EXTENSIONStlen(tlocationtbasenameR&twin_baseRtplatformtext((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR!Is   cCs"tt|tjj||S(sEYield possible egg or source distribution objects based on a filename(R!tnormalize_pathtosRR/(tfilenameR&((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytdistros_for_filename`sc cs|jd}|s^xFt|dD]1\}}t|dkr&|jdr&dSq&Wnxatdt|dD]F}t||dj|| dj||d|d|d |VqxWdS( sGenerate alternative interpretations of a source distro name Note: if `location` is a filesystem filename, you should call ``pkg_resources.normalize_path()`` on it before passing it to this routine! R(iispy2.Nit py_versionR R1(Rt enumerateR-R trangeR)tjoin( R.R/R&R7R R1tpartstitp((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRgs!  ) s(<([^>]*\srel\s*=\s*['"]?([^'">]+)[^>]*)>ccsxtj|D]}|j\}}ttj|jjd}d|ksad|krx:tj|D]&}t j |t |j dVqqWqqWxgd D]_}|j |}|dkrtj||}|rt j |t |j dVqqqWdS( sEFind rel="homepage" and rel="download" links in `page`, yielding URLst,thomepagetdownloadis Home PagesDownload URLiN(s Home PagesDownload URL(tRELtfinditertgroupstmaptstrtstripR RtHREFRturljoint htmldecodeR$tfindtsearch(RtpageR#ttagtreltrelstpos((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytfind_external_linkss!+  sPython-urllib/%s distribute/%sit distributeicBsLeZdZdd"dZedZedZedZdZdZ d Z d Z d#d Z d Zd#d ZdZdZdZdZdZeeed#dZeedZdZdZdZdZd#dZdZdZdZdZdZ dZ!d Z"d!Z#RS($s;A distribution index that scans web pages for download URLsshttp://pypi.python.org/simpleRcOs}tj||||d|jd |_i|_i|_i|_tjdj t t |j |_ g|_dS(NRt|(t Environmentt__init__R t index_urlt scanned_urlst fetched_urlst package_pagestretcompileR:RDRR#tallowstto_scan(tselfRVthoststargstkw((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRUs   'c CsS||jkr| rdSt|j|%siii(R$(tm((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt0sRcN(RGRBRRHRIR$t ValueErrorRQRR tneed_version_infotscan_urltPYPI_MD5tsub( R^RRLRR#RRtnew_urlRtfrag((R^s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRz s$)  cCs|jd|dS(NsPPage at %s links to .py file(s) without version info; an index scan is required.(tscan_all(R^R((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR7scGsO|j|jkr;|r+|j||n|jdn|j|jdS(Ns6Scanning index of all packages (this may take a while)(RVRXRRnR(R^RR`((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR=s  cCs|j|j|jd|jj|jsN|j|j|jdn|jj|jss|j|nx3t|jj|jdD]}|j|qWdS(NR(( RRVt unsafe_nameRYRqtkeyt project_nametnot_found_in_indexRj(R^t requirementR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt find_packagesEs%cCsk|j|j|x8||jD])}||kr;|S|jd||q%Wtt|j||S(Ns%s does not match %s(tprescanRRRltsuperRtobtain(R^Rt installerR'((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRTs  cCsytjd|ru|jd||j|dkru|jtj|tdtjj |dqundS(Nsmd5=[0-9a-f]{32}$sValidating md5 checksum for %sisMD5 validation failed for s; possible download problem?( RZR#Rlt hexdigestRrR4tunlinkRRR/(R^tcsRnR5ttfp((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt check_md5`s  cCsrxk|D]c}|jdksJt| sJ|jdsJtt|rZ|j|q|jj|qWdS(s;Add `urls` to the list that will be prescanned for searchessfile:N(R]R RhR RjRRtappend(R^turlsR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytadd_find_linksks  cCs,|jrt|j|jnd|_dS(s7Scan urls scheduled for prescanning (e.g. --find-links)N(R]RDRR (R^((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRzs cCsN||jr |jd}}n|jd}}|||j|jdS(Ns#Couldn't retrieve index page for %rs3Couldn't find index page for %r (maybe misspelled?)(RRnRRR(R^RtmethR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRs   cCst|tst|}|r||j|jd||}t|\}}|jdrx|j|||}n|Stj j |r|Sytj |}Wqt k rt d|fqXnt|j||ddS(sLocate and/or download `spec` to `tmpdir`, returning a local path `spec` may be a ``Requirement`` object, or a string containing a URL, an existing local filename, or a project/version requirement spec (i.e. the string form of a ``Requirement`` object). If it is the URL of a .py file with an unambiguous ``#egg=name-version`` tag (i.e., one that escapes ``-`` as ``_`` throughout), a trivial ``setup.py`` is automatically created alongside the downloaded file. If `spec` is a ``Requirement`` object or a string containing a project/version requirement spec, this method returns the location of a matching distribution (possibly after downloading it to `tmpdir`). If `spec` is a locally existing file or directory name, it is simply returned unchanged. If `spec` is a URL, it is downloaded to a subpath of `tmpdir`, and the local filename is returned. Various errors may be raised if a problem occurs during downloading. is.pys1Not a URL, existing file, or requirement spec: %rR.N(Rtt RequirementRht _download_urlR$RR t gen_setupR4RRtparseRRRytfetch_distributionR (R^tspecttmpdirRtfoundRR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR@s"  c sjd|id}dfd}|rfjj|||}n|dk r|p|||}n|dkrjdk rj||}n|dkr| rj|||}n|dkrjdrdpd|n|S(s|Obtain a distribution suitable for fulfilling `requirement` `requirement` must be a ``pkg_resources.Requirement`` instance. If necessary, or if the `force_scan` flag is set, the requirement is searched for in the (online) package index as well as the locally installed packages. If a distribution matching `requirement` is found, the returned distribution's ``location`` is the value you would have gotten from calling the ``download()`` method with the matching distribution's URL or filename. If no matching distribution is found, ``None`` is returned. If the `source` flag is set, only source distributions and source checkout links will be considered. Unless the `develop_ok` flag is set, development and system eggs (i.e., those using the ``.egg-info`` format) will be ignored. sSearching for %sc s|dkr}nx||jD]}|jtkrn rn|kr#jd|d|([^- ]+ - )?Revision \d+:sUnexpected HTML page found at ( RRFRZRKRrR4RRR(R^RRpR5RR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRs       cCsD|jddd}|jd||tjd||f|S(NRiis'Doing subversion checkout from %s to %sssvn checkout -q %s %s(RRnR4tsystem(R^RR5((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRscGstj||dS(N(RRl(R^RR`((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRlscGstj||dS(N(RRn(R^RR`((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRnscGstj||dS(N(RR(R^RR`((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRs(RN($t__name__t __module__t__doc__RUtFalseRxRiRkRRRzRR RRRRRRRR@RRRRRRRoRRRRRRlRnR(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRsB 0    ,      *  C ) &  !       s!&(#(\d+|x[\da-fA-F]+)|[\w.:-]+);?cCs3t|ts|S|dkr)t|St|S(Ni(RtRtunichrtchr(tc((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytuchrs  cCs|jd}|jdr4t|dd}nM|jdrVt|d}n+ddlm}|j||jd}t|S( Nis#xiiRi(tname2codepointi(R$R RthtmlentitydefsRRqR(R#twhatR((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt decode_entityscCs tt|S(s'Decode HTML entities in the given text.(t entity_subR(ttext((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRIscsfd}|S(Ncsfd}|S(Ncs?tj}tjz||SWdtj|XdS(N(tsockettgetdefaulttimeouttsetdefaulttimeout(R`tkwargst old_timeout(ttimeouttfunc(s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt_socket_timeouts   ((RR(R (Rs^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyRs((R R((R s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytsocket_timeouts cCs@tj|}|j}tj|}|j}|jS(s A function compatible with Python 2.3-3.3 that will encode auth from a URL suitable for an HTTP header. >>> _encode_auth('username%3Apassword') u'dXNlcm5hbWU6cGFzc3dvcmQ=' (RRtencodetbase64t encodestringRwtrstrip(tauthtauth_st auth_bytest encoded_bytestencoded((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt _encode_auths   cCsBtj|\}}}}}}|dkrEtj|\}}nd}|rdt|}tj||||||f} tj| } | jd|ntj|} | jdttj | } |r>tj| j \} } }}}}| |kr>| |kr>tj| |||||f| _ q>n| S(s4Open a urllib2 request, handling HTTP authenticationthttpthttpssBasic t Authorizations User-Agent(shttpshttpsN( RRt splituserR Rt urlunparsetRequestt add_headert user_agentturlopenR(RRtnetlocRtparamsRRRthostRtrequestRts2th2tpath2tparam2tquery2tfrag2((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR s"! !$*cCs|S(N((R((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyt fix_sf_url4scCs{tj|\}}}}}}tj|}tjj|rOtj|S|jdrCtjj |rCg}xtj |D]} | dkrt tjj || d} | j } | jPn.tjj tjj || r| d7} n|jd| | fqWd|ddj |} d\} } nd\} } } tj|| | id d6tj| S(s7Read a local path, with special support for directoriesRs index.htmltrbs%ss%ss%ss itOKisPath not founds Not founds text/htmls content-type(isOK(isPath not founds Not found(RRRR4RtisfileRR#R RRRR:RsRrRRut cStringIOtStringIO(RRRRtparamRRR5tfilesR}Rtbodytstatustmessage((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pyR7s*! !   ! (<Rtsystos.pathR4RZRRRRtrandomRR2RRt pkg_resourcest distutilsRtdistutils.errorsRthashlibRt ImportErrortfnmatchRR[R"tIRGRR#RhRR,t__all__t_SOCKET_TIMEOUTRRR RR!R6RRRARQRtrequireR"RTRRRRRRIRRRR.R(((s^/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/package_index.pytsVx            ! !'     0707010006218e000081ed000000000000000000000001513ff4b500002327000000b600010002ffffffffffffffff0000005d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyimport os, sys, __builtin__, tempfile, operator, pkg_resources _os = sys.modules[os.name] try: _file = file except NameError: _file = None _open = open from distutils.errors import DistutilsError __all__ = [ "AbstractSandbox", "DirectorySandbox", "SandboxViolation", "run_setup", ] def run_setup(setup_script, args): """Run a distutils setup script, sandboxed in its directory""" old_dir = os.getcwd() save_argv = sys.argv[:] save_path = sys.path[:] setup_dir = os.path.abspath(os.path.dirname(setup_script)) temp_dir = os.path.join(setup_dir,'temp') if not os.path.isdir(temp_dir): os.makedirs(temp_dir) save_tmp = tempfile.tempdir save_modules = sys.modules.copy() pr_state = pkg_resources.__getstate__() try: tempfile.tempdir = temp_dir os.chdir(setup_dir) try: sys.argv[:] = [setup_script]+list(args) sys.path.insert(0, setup_dir) DirectorySandbox(setup_dir).run( lambda: execfile( "setup.py", {'__file__':setup_script, '__name__':'__main__'} ) ) except SystemExit, v: if v.args and v.args[0]: raise # Normal exit, just return finally: pkg_resources.__setstate__(pr_state) sys.modules.update(save_modules) # remove any modules imported within the sandbox del_modules = [ mod_name for mod_name in sys.modules if mod_name not in save_modules # exclude any encodings modules. See #285 and not mod_name.startswith('encodings.') ] map(sys.modules.__delitem__, del_modules) os.chdir(old_dir) sys.path[:] = save_path sys.argv[:] = save_argv tempfile.tempdir = save_tmp class AbstractSandbox: """Wrap 'os' module and 'open()' builtin for virtualizing setup scripts""" _active = False def __init__(self): self._attrs = [ name for name in dir(_os) if not name.startswith('_') and hasattr(self,name) ] def _copy(self, source): for name in self._attrs: setattr(os, name, getattr(source,name)) def run(self, func): """Run 'func' under os sandboxing""" try: self._copy(self) if _file: __builtin__.file = self._file __builtin__.open = self._open self._active = True return func() finally: self._active = False if _file: __builtin__.file = _file __builtin__.open = _open self._copy(_os) def _mk_dual_path_wrapper(name): original = getattr(_os,name) def wrap(self,src,dst,*args,**kw): if self._active: src,dst = self._remap_pair(name,src,dst,*args,**kw) return original(src,dst,*args,**kw) return wrap for name in ["rename", "link", "symlink"]: if hasattr(_os,name): locals()[name] = _mk_dual_path_wrapper(name) def _mk_single_path_wrapper(name, original=None): original = original or getattr(_os,name) def wrap(self,path,*args,**kw): if self._active: path = self._remap_input(name,path,*args,**kw) return original(path,*args,**kw) return wrap if _file: _file = _mk_single_path_wrapper('file', _file) _open = _mk_single_path_wrapper('open', _open) for name in [ "stat", "listdir", "chdir", "open", "chmod", "chown", "mkdir", "remove", "unlink", "rmdir", "utime", "lchown", "chroot", "lstat", "startfile", "mkfifo", "mknod", "pathconf", "access" ]: if hasattr(_os,name): locals()[name] = _mk_single_path_wrapper(name) def _mk_single_with_return(name): original = getattr(_os,name) def wrap(self,path,*args,**kw): if self._active: path = self._remap_input(name,path,*args,**kw) return self._remap_output(name, original(path,*args,**kw)) return original(path,*args,**kw) return wrap for name in ['readlink', 'tempnam']: if hasattr(_os,name): locals()[name] = _mk_single_with_return(name) def _mk_query(name): original = getattr(_os,name) def wrap(self,*args,**kw): retval = original(*args,**kw) if self._active: return self._remap_output(name, retval) return retval return wrap for name in ['getcwd', 'tmpnam']: if hasattr(_os,name): locals()[name] = _mk_query(name) def _validate_path(self,path): """Called to remap or validate any path, whether input or output""" return path def _remap_input(self,operation,path,*args,**kw): """Called for path inputs""" return self._validate_path(path) def _remap_output(self,operation,path): """Called for path outputs""" return self._validate_path(path) def _remap_pair(self,operation,src,dst,*args,**kw): """Called for path pairs like rename, link, and symlink operations""" return ( self._remap_input(operation+'-from',src,*args,**kw), self._remap_input(operation+'-to',dst,*args,**kw) ) if hasattr(os, 'devnull'): _EXCEPTIONS = [os.devnull,] else: _EXCEPTIONS = [] try: from win32com.client.gencache import GetGeneratePath _EXCEPTIONS.append(GetGeneratePath()) del GetGeneratePath except ImportError: # it appears pywin32 is not installed, so no need to exclude. pass class DirectorySandbox(AbstractSandbox): """Restrict operations to a single subdirectory - pseudo-chroot""" write_ops = dict.fromkeys([ "open", "chmod", "chown", "mkdir", "remove", "unlink", "rmdir", "utime", "lchown", "chroot", "mkfifo", "mknod", "tempnam", ]) def __init__(self, sandbox, exceptions=_EXCEPTIONS): self._sandbox = os.path.normcase(os.path.realpath(sandbox)) self._prefix = os.path.join(self._sandbox,'') self._exceptions = [os.path.normcase(os.path.realpath(path)) for path in exceptions] AbstractSandbox.__init__(self) def _violation(self, operation, *args, **kw): raise SandboxViolation(operation, args, kw) if _file: def _file(self, path, mode='r', *args, **kw): if mode not in ('r', 'rt', 'rb', 'rU', 'U') and not self._ok(path): self._violation("file", path, mode, *args, **kw) return _file(path,mode,*args,**kw) def _open(self, path, mode='r', *args, **kw): if mode not in ('r', 'rt', 'rb', 'rU', 'U') and not self._ok(path): self._violation("open", path, mode, *args, **kw) return _open(path,mode,*args,**kw) def tmpnam(self): self._violation("tmpnam") def _ok(self,path): active = self._active try: self._active = False realpath = os.path.normcase(os.path.realpath(path)) if (self._exempted(realpath) or realpath == self._sandbox or realpath.startswith(self._prefix)): return True finally: self._active = active def _exempted(self, filepath): exception_matches = map(filepath.startswith, self._exceptions) return True in exception_matches def _remap_input(self,operation,path,*args,**kw): """Called for path inputs""" if operation in self.write_ops and not self._ok(path): self._violation(operation, os.path.realpath(path), *args, **kw) return path def _remap_pair(self,operation,src,dst,*args,**kw): """Called for path pairs like rename, link, and symlink operations""" if not self._ok(src) or not self._ok(dst): self._violation(operation, src, dst, *args, **kw) return (src,dst) def open(self, file, flags, mode=0777): """Called for low-level os.open()""" if flags & WRITE_FLAGS and not self._ok(file): self._violation("os.open", file, flags, mode) return _os.open(file,flags,mode) WRITE_FLAGS = reduce( operator.or_, [getattr(_os, a, 0) for a in "O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARY".split()] ) class SandboxViolation(DistutilsError): """A setup script attempted to modify the filesystem outside the sandbox""" def __str__(self): return """SandboxViolation: %s%r %s The package setup script has attempted to modify files on your system that are not within the EasyInstall build area, and has been aborted. This package cannot be safely installed by EasyInstall, and may not support alternate installation locations even if you run its setup script by hand. Please inform the package's author and the EasyInstall maintainers to find out if a fix or workaround is available.""" % self.args # 0707010006214d000081a4000000000000000000000001513ff4b500001088000000b600010002ffffffffffffffff0000005f00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyc ?Qc@sdZddlmZmZddlmZmZmZddlZ ddl Z ddl m Z ddlmZddlmZddlZddlZdZd d d d d ddgZeZdZeZdgZdddZe jjZeeZd efdYZddlZ ee j_ejdZ ddl!Z e e j"_ e#edrhej$se#ed rej%j&dreZ'ne(Z'dS(s@Extensions to the 'distutils' for large or complex distributionsi(t ExtensiontLibrary(t DistributiontFeaturet_get_unpatchedN(tRequire(tCommand(t convert_paths0.6tsetupRRRRRt find_packagess lib2to3.fixest.c Cs7g}t|dfg}x|r|jd\}}xtj|D]}tjj||}d|krItjj|rItjjtjj|drI|j|||j|||dfqIqIWqWxVt |ddgD]>}ddl m }g|D]} || |s| ^q}qW|S( sReturn a list all Python packages found within directory 'where' 'where' should be supplied as a "cross-platform" (i.e. URL-style) path; it will be converted to the appropriate local path syntax. 'exclude' is a sequence of package names to exclude; '*' can be used as a wildcard in the names, such that 'foo.*' will exclude all subpackages of 'foo' (but not 'foo' itself). tiR s __init__.pytez_setuptdistribute_setupi(t fnmatchcase( RtpoptostlistdirtpathtjointisdirtisfiletappendtlisttfnmatchR( twheretexcludetouttstacktprefixtnametfntpatRtitem((sY/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyR #s  !&,cBs,eZejZeZdZddZRS(cKsAtj||x*|jD]\}}t|||qWdS(N(t_Commandt__init__titemstsetattr(tselftdisttkwtktv((sY/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyR#DsicKsFtj|||}x*|jD]\}}t|||q"W|S(N(R"treinitialize_commandR$R%(R&tcommandtreinit_subcommandsR(tcmdR)R*((sY/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyR+Js(t__name__t __module__R"t__doc__tFalsetcommand_consumes_argumentsR#R+(((sY/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyR?s  cCsg}xtj|D]\}}}|tjksM|jtjtjrZ|d}n|rg|D]}tjj||^qg}n|jttjj |qW|S(s^Find all files under 'dir' and return the list of full filenames (relative to 'dir'). i( Rtwalktcurdirt startswithtsepRRtextendtfilterR(tdirt all_filestbasetdirstfilestf((sY/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pytfindallSs( + tdont_write_bytecodetPYTHONDONTWRITEBYTECODE(()R1tsetuptools.extensionRRtsetuptools.distRRRtdistutils.coret distutilstsetuptools.commandt setuptoolstsetuptools.dependsRRR"tdistutils.utilRRtsyst __version__t__all__tTruet _distributetNonetbootstrap_install_fromtrun_2to3_on_docteststlib2to3_fixer_packagesR tcoreRR5R@tdistutils.filelisttfilelistthasattrRAtenvirontgett_dont_write_bytecodeR2(((sY/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/__init__.pyts8          " 07070100062151000081a4000000000000000000000001513ff4b500001770000000b600010002ffffffffffffffff0000006300000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyc ?Qc@sdZdddddddgZdd lZdd lZdd lZdd lZdd lmZdd lm Z de fd YZ d Z e d dZ e dZe dZe dZeeefZd S(s/Utilities for extracting common archive formatstunpack_archivetunpack_zipfiletunpack_tarfiletdefault_filtertUnrecognizedFormattextraction_driverstunpack_directoryiN(tensure_directory(tDistutilsErrorcBseZdZRS(s#Couldn't recognize the archive type(t__name__t __module__t__doc__(((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyR scCs|S(s@The default progress/filter callback; returns True for all files((tsrctdst((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyRscCsZxS|p tD]5}y||||Wntk r=q q XdSq Wtd|dS(sUnpack `filename` to `extract_dir`, or raise ``UnrecognizedFormat`` `progress_filter` is a function taking two arguments: a source path internal to the archive ('/'-separated), and a filesystem path where it will be extracted. The callback must return the desired extract path (which may be the same as the one passed in), or else ``None`` to skip that file or directory. The callback can thus be used to report on the progress of the extraction, as well as to filter the items extracted or alter their extraction paths. `drivers`, if supplied, must be a non-empty sequence of functions with the same signature as this function (minus the `drivers` argument), that raise ``UnrecognizedFormat`` if they do not support extracting the designated archive type. The `drivers` are tried in sequence until one is found that does not raise an error, or until all are exhausted (in which case ``UnrecognizedFormat`` is raised). If you do not supply a sequence of drivers, the module's ``extraction_drivers`` constant will be used, which means that ``unpack_zipfile`` and ``unpack_tarfile`` will be tried, in that order. Ns!Not a recognized archive type: %s(RR(tfilenamet extract_dirtprogress_filtertdriverstdriver((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyR*s c CsGtjj|s(td|fnid|f|6}xtj|D]\}}}||\}}xD|D]<} || dtjj|| f|tjj|| sRs..N(ttarfileR.tTarErrorRtchownR#R*RRRR+tisfileRtislnktissymtextractRtmovetTrueR0(RRRttarobjtmemberR#t prelim_dstt final_dst((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyRs&    (R t__all__R&R7RRt pkg_resourcesRtdistutils.errorsRRRR4RRRRR(((s]/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.pyts 0  ( ) ) )07070100062188000081a4000000000000000000000001513ff4b500010000000000b600010002ffffffffffffffff0000005d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui-32.exeMZ@ !L!This program cannot be run in DOS mode. $b\<&2o&2o&2oIo%2o&3o}2oo"2o/o2o/o42o/oW2o/o'2oRich&2oPELM  N&@@4(@@.text `.rdatah "@@.data+@QD$P@uSUV+WD-jPx 33ۉD$"p~WL$ <\uG <"u~Wj\V 3\F3T$CF;|Å~Wj\VV D$_"F^][YÁ A3ĉ$V$W$τtd$A9](u>u3@8tHF;w>:u5;t}jujQU&Fu9](uE;tu3]8tUP&YtFYe3C98 A4 AE0 A} 5+A0,Y}؅tx5+A,Yu܉}uu;rW+9t;rJ6++5+A+5+A+ 9}u9Et}}؉Eu܋}hp@d@_Yhx@t@OYE}u(8 AjlYu3C}tjSYËUjju ]ËUjju ]jjj jjj ËV*VY;V:VwV:V:V8V57V7h#@E*$A^ËU=D Au3u1h'YY]jXh0@3uEP4@j_}MZf9@u8<@@PEu' f9@ut@v39@Mu3CS?YujXY-ujGYW4] }j&Y0@+AQ>< A=}jY;}j YSY;tPY:]tMj YQPVh@E9uuPE}5E MPQ5YYËeE܉E}uP!EE3@ËeE>xUVuVSPk?YYt| ;u3@;u`3@ AF uNSW^^N 3_@[3^]ËU}t'Vu F tVf f&fY^]A @tyt$Ix  QP-YYu ËUVMEM >t} ^]ËUG @SVt2u,E+M}C>u8*uϰ?d}^[]ËUxA3ʼnES] Vu3W}uu5M3PPPPPt `p F @u^V@ YAttȃ *AA$uttȃ*A@$g3;] C , If90t@@;u+(;u AI8t@;u+\@t2t ƅ-t ƅ+ tƅ Dž++ uSj p vYtuWSj0. tf~bPjEPFPF5u(9t MYuPY|tWSj tYtt `pM_^3[Ð+@)@G)@)@)@)@B*@p+@jThX@e3}EP4@Ej@j ^VyYY;*A5*A0@@ x@$@% @& x8@4@ *A;rf9} E;8X;E;|E[j@j YYtVM *A*A *@@ ``$@% @& `8@4@;rE9=*A|=*Ae~mEtVtQtKu Q@@t%uN@ uNhF P)YYt7F N@Cg5*A8@33@ËeEcËUEV3;uVVVVVE@^]ËUEP A]ËU(A3ʼnESjLjP(0 ,ffffffEMDž0IDžDžX@jT@(PP@u ujM2YhL@PH@M3[ËU5P A*Yt]j2Y]UE3;AtA-rHwj X]ËA]DjY;#]u@AÃuDAà ËUVMQY0^]h8@d5D$l$l$+SVWA1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35AWEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEt1E|@GE؃u΀}t$t N3 8&N V3 :E_^[]EɋM9csmu)=*At h*A!tUjR*AM '1E 9X thAWӋ*1E MH t N3 8N V3 :EH09S RhAW0UVW3u%1Yu'9T AvV$@;T Avuʋ_^]ËUVW3ju uE u'9T AvV$@;T AvuË_^]ËUVW3u u[1YYu,9E t'9T AvV$@;T Avu_^]ËUVW3uu u%3 u,9Et'9T AvV$@;T Avu_^]j hx@utu=*AuCjYeV73YEt VPX3YYE }u7u jYVj5t)A`@u\@PYjh@E3ۉ]jY]j_};=;A}W+A9tD@ tP=YtE|(+A PD@+A4Y+AGE Ej7YËUSVuF Ȁ3ۀu@t9FW>+~,WPVaYPD ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVP[EYY3^]jh@3}}jDY}3u;5;A+A98t^@ tVPVYY3BU+AH t/9UuPJYtE9}utP/Yu E܉}F3uࡼ+A4V"YYE}EtEwjYjYËVW3X At~t WW&YhA|ܾHA_t ~uPӃhA|^[ËUE4HA@]j h@Z3G}39t)AujhPYYu4HA9tnj Y;u 3Qj YY]9u,hWt YYuWY ] >WYE Ej (YËUEV4HA>uP"YujDY6@^]j h@dM3;v.jX3;E @u WWWWW3M u;u3F3ۉ]wi=*AuKu E;p*Aw7jLY}uH6YEE_];tuWS ;uaVj5t)Ad@;uL9=)At3VYrE;P E3u jY;u E;t U}}M f$ffGfG fG0fG@fGPfG`fGpIuЋ}]U}E3+3+uF@8uE;t':t!.tG;} s.F G;} sF@8uG;} vEhj"3_^[ËUuME MUTu}tMA#E3t3@}tMapËUjjuu ]ËUjjuj]ËUjuuu u?]ËU("A "A"A"A5"A="Af"Af "Af"Af"Af%"Af-"A"AE"AE"AE"A"A"A!A!A !AAAX@!Aj$YjT@h@P@=!Auj$Yh L@PH@-t"t t Ht3øøøøËVWh3FWP3ȋ~~~  ~hA F+ο@Ou@Nu_^ËUA3ʼnESWPvh@3@;rƅ t.;w+@P j R8 CCujv vPWPjjyE3SvWPWPWv SZCDSvWPWPhv S5C$3EtLtL Ƅ@;rVDž3)ЍZ w Lр wL р A;r‹M_3[j h@@ AGptltwhuj nYj Yewhu;5At6tVp@uhAtVYAGh5AuVl@E뎋uj YËUS3SMt$Au$Ax@8]tEMapEAD;FG;v}FF>uыuE}urlj{CgjC CAZf1Af0A@@JuL@;vFF~4C@IuCC Ss3ȋ {95$AXM_^3[jh`@M}_huuE;CWh Y؅Fwh#SuYYEuvhp@uFh=hAtPcY^hS=l@FpAj tYeC$AC$AC $A3E}fLCf E$A@3E=} LA@3E=}A@5Ap@uA=hAtPYASE0j Y%u hAtStYeE~Ã=+AujVY+A3ËUSVu3W;to=HAth;t^9uZ;t9uPAYY;t9uP5AYYYY;tD9u@-P+P+Puj=At9uP?7CYY~PEAt;t 9uPY9_tG;t 9uPYMuVY_^[]ËUSV5l@W}W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P_^[]ËUW}SV5p@W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P^[_]Åt7t3V0;t(W8YtVE>YuAtVYY^3j h@_,AFpt"~ltpluj Yrj YeFl=pAiEEj }YuËUV5A5@օt!AtP5AЅt't@V @u V>Ythd@P(@tuЉEE^]jYËUV5A5@օt!AtP5AЅt't@V @u VYth@P(@tuЉEE^]@V5A@u5%AeYV5A@^áAtP5%A;YЃ AAtP@ Aj h@t@V @uVYEuF\@3G~t$hd@P(@Ӊh@uӉ~pƆCƆKCFhhAj nYevhl@E>j MY}E FlupAFlvlYE3Guj 5Yj ,YËVW\@5AЋuNhjYYt:V5A5%AYЅtjVYY@N V^Y3W@_^ËVujY^jh@uF$tPYF,tPYF4tPYFHN+I;N~WPu <+ EM F yM tt*AA@ tjSSQ>#ƒt%FM3GWEPu * E9}t N E%_[^ËUQQS]VW33};At G}rwj@Y4j@Yu =AAhp@S %AW8 t VVVVVh9%AVj=&A@u&hX@hVN8 t3PPPPPV@Y 2j<@;t$tjEP4A6%YP6S@_^[j^?YtjQ?Yu=Auh)hYYËUQSVW5+A5+A}YY;+ߍCrwW5?CY;sH;s;rPusYYuG;r@Pu]YYt1P4Y+AuVY+AEY3_^[ËVjj V +A+AujX^Ã&3^j h@aeuYEE E}oËUuYH]ËV@@W;stЃ;r_^ËV@@W;stЃ;r_^ËVW3@A6Y(r_^̋UMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDv} H ;r X;r B(;r3_^[]̋Ujh@h8@dPSVWA1E3PEdeEh@*tUE-@Ph@Pt;@$ЃEMd Y_^[]ËE3=‹ËeE3Md Y_^[]jh0@S @xte3@ËeE<lh=[@'Y4(AËUQQV`FV\tAW}S99tk ;rk ;s99u3t X]u3u `3@N`MM N`H hA=lA;}$k ~\d9=hAlAB߃ ;|]~d=u Fd^=u FdN=u Fd>=u Fd.=u Fd=u Fd=uFdvdjY~d`QӋEYF`[_^ËUE8(A<(A@(AD(A]ËUE tAV9Ptk u ;rk M^;s9Pt3]5@(AYj hP@F3}}؋] LtjY+t"+t+td+uDs}؅ua8(A8(A`w\]ZÃt<t+Ht3PPPPP뮾@(A@(A<(A<(A D(AD(AEPEY3}9Euj9EtPY3Et tuO`MԉG`u@OdMGdu. hAM܋ lAhA9M}Mk W\DE~EuwdSUY]}؃}tjTYSUYt tuEԉG`uEЉGd3ËUEL(A]ËUEX(A]ËUE\(A]jhp@ieu u@E/EE3=Ëe}uj@eEE[ËUE`(A]ËU5`(A|YtuYt3@]3]ËUE8csmu*xu$@= t=!t="t=@uC3]h_@T@3ËVW39=+AuC5+Aub@< wt.t$<"u 3ɅPYtFF< wFu_^Ã=+AuV5< AW3u<=tGVYtujGW!YY= Atˋ5< ASBVSC>=Yt1jSYYtNVSP}. t3PPPPP>u5< A%< A'+A3Y[_^5 A~% AUQMS3VU 9Et ]EE>"u39E"FE<tBU PFYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#Yt M E FM E  YtFU FVtBU ME^[t ËU S3VW9+Auehh(AVSl)A@+A5( A;tE8uuUEPSS} E =?sJMsB;r6P$Y;t)UEPWV}E H A5 A3_^[ËUp)A SV5@W33;u.֋;t p)A#\@xu jXp)Ap)A;u֋;u3f9t@@f9u@@f9u5@SSS+S@PWSSE։E;t/PJYE;t!SSuPuWSSօu uYY]]W@\t;u@;r8t @8u@8u+@PEY;u V@EuVW+ V@_^[ËU39EjhP@t)Au]3@*A]ËUAeeSWN@;t t УA`VEP@u3u@3@3@3EP@E3E3;uO@ u 5A։5A^_[ËUEu 3]V3;|;*ArVVVVV 3ȃ *AD@^]áA39x)A̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+ËUSVu 3W};u;vE;t3E;tvcj^SSSSS0VuME9XfEf;v6;t;v WSV訳 *8]tMap_^[;t2;w,j"^SSSSS0n8]yE`pmE;t8]%E`pM QSWVjMQS] p@;t9] ^M;t\@zD;g;_WSVѲ OUjuuu u|]ËUu M誶EMA%}tMapËUjuYY]VD$ u(L$D$ 3؋D$d$ȋd$Gȋ\$T$ D$ ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^%*ASVWT$D$L$URPQQhi@d5A3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhC1C1d_^[ËL$At3D$H3Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëj_033333USVWjjhWj@QQ_^[]Ul$RQt$ ]j h@eu;5p*Aw"jdYeVa YEE E)j_YËUVuSW=d@=t)Au!joh轶YY*Aut3@Pu VSYuuFVj5t)A׋؅u.j ^9)AtuBYtu{00_[VY 3^]jh@]uu Yu u SY=*A3}jY}S6YE;;5p*AwIVSP t]5V YE;t'CH;rPSu:$SESP 9}uH;u3Fu u VW5t)Ad@E;t CH;rPSu#SuE.}u1uFu VSj5t)A@u ]jHYË}9=)At,VYP9}ul\@PY_+9}th quFVSj5t)A@uV9)At4V;YtvV+Y 3c|u\@PnYҋUM S3;v(j3X;EsSSSSS 3AMVW9]t u)YVuYYt;s+VjSȬ _^[]ËU h*Al*AkU+P r ;r3]ËUMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJM;v;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM DD )}uJM YJꍄ ED0E|)A |*A5@h@H SQ֋ |*A|)A P|)A@ |*A|)A@HC|)AHyCu `|)AxueSjp ֡|)Apj5t)A`@ h*A|)Akl*A+ȍLQHQP+E h*A;|)Avml*At*AE|)A=|*A[_^áx*AV5h*AW3;u4kP5l*AW5t)A@;u3xx*A5h*Al*Ak5l*AhAj5t)Ad@F;tjh hW@F ;uvW5t)A`@뛃N>~h*AF_^ËUQQMASVqW3C}i0Dj?EZ@@Jujhy hW@upU;wC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[ËU MASVuW} +Q iDMOI;|9M]UE;;MIM?vj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M OL1?vj?_]][Y]YKYKY;YuWLML s}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN] K?vj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLML s}uοM 9DD }uNM yN ED3@_^[ËUh*AMkl*AMSI VW} M 3U t*AS;#U# u ];r;ul*AS;#U# u ];r;u[ {u ];r;u1l*A {u ];r;u؉]u3 S:YKC8tt*ACUt|D#M# u)eHD9#U# uEUiDMLD3#u#Mj _G}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uy>u;|)AuM; |*Au%|)AMB_^[ËUSVuW3;uQWWWWWٽ BF t7VV(VOP'}F;t PnY~~ _^[]j h@3M3u3;;uνWWWWWV F @t ~ E6V Y}V*YEEՋuVYYËU8*A3ʼnEE V34809uu3;u'D0*VVVVV貼SW}4*ANJX$('tu0Mu&ۼ30迼VVVVVGC@ tjjjucuYD@l39HP4 @`39 tP@43<9EBD'g (3  ǃx8tP4UM`8jEPKPYt:4+M3@;j@SP<( CDjS@P( 3PPjMQj@QPCD@\j # 3;|;*Ar!8 WWWWW胵ɋ*A L1tP9$Y}D0tuu u. E蘵 蠵8ME Eu$Yjh@訵EuO 3;|;*Ar. SSSSS趴Ћ<*ALtPl#Y]Dt1u"YP@u \@E]9]tʹM谴 ME E#u#YËUS39]urSSSSS3jVu ;uNSSSSSֳ9ur3>uMƛMF9YtH9Ew D u+ȃ+N8]tMap^[ËUju uU ]ËUS3Vu9]u;u9] u3;t9] w襳j^SSSSS0.9]uW};utj^SSSSS0(uME9XuuWu V L}U u@G:tJu@G:tJtMu9]u@;8t}u5x};rEPEPоYYtM9us+E}uZE v:|};r!EPEP茾YYtM9usE +Mt\8]tE`pjPXSj"^SSSSS0ܱ8]tE`pd+΃|Mx};rEPEP YYtM9us+Etj*X8]tMap8]tE`p3_^[ËUEt8uPY]ËUA3ʼnESV3W9)Au8SS3GWhd@hS@t=)A\@xu )A9]~"MEI8t@;uE+H;E}@E)A;]9] u@E 5@39]$SSuuPu ֋;~Cj3Xr7D?=w#;tP Y;t E]9]>Wuuuju օ5@SSWuu u֋ȉM;E t)9];MuuWuu u;~Ej3Xr9D =w";tjPJY;t 3;tAuVWuu u@t"SS9]uSSuuuVSu @EVYuEYY]]9]u@E9] u@E u YEu3!;E SSMQuPu > E;tԋ5@SSuPu u։E;u3~=w8=w!;tP4Y;t 3;tuSW0 uWuuu u։E;u3%uEuPWu uu#uWYuuuuu u@9]t u蘱YE;t 9EtP腱Yƍe_^[M3藕ËUuM葕u(Mu$u uuuuu ( }tMapËUQQA3ʼnE)ASV3W;u:EP3FVhd@V@t5)A4\@xu jX)A)A;]9]u@E5@39] SSuu Pu֋;~<w4D?=w;tPPY;t ؅ti?PjSN WSuu juօtuPSu@ESEYu39]u@E9]u@EuAYu3G;EtSSMQu Pui;t܉u uuu uu@;tV膯YǍe_^[M3蘓ËUuM蒓u$Mu uuuuu }tMapËUVuvvv vvv6v ߮v$׮v(Ϯv,Ǯv0迮v4跮v诮v8觮v<蟮@v@蔮vD茮vH脮vL|vPtvTlvXdv\\v`TvdLvhDvl 9M u H9U t @ff;u9M u8]tMap8]tE`p3^[ËUju u2 ]̍B[Í$d$3D$ST$t :tτtQu WV ؋ ~333ƃu%t%uu^_[3ËB:t6t:t't:tt:tt^_B[ÍB^_[ÍB^_[ÍB^_[%@UUS3;uH{SSSSSz 8tߋM ;t؋;t8tSQR []ËUUVujXEU;uz z S3;|;5*Ar'zzSSSSS CzQW<*AƊHuzuz jwP];9] t7@$EHjYtHuШtUE EШu!#z zSSSSSy4M;rEu|YE;uy yhjSSu|D(ET,AHttI tl9]tg@MED 8]tNL% tC9]t>@M}ED% u$L& t9]t@MED& SMQuP4,@{M;p;MgMD};t M9 u ]EÉ]E;M<< t CAMEH;sA8 u AAM uEmEjEPjEP4,@u \@uE}t?DHt} t ML%;]u} tjjju} t CE9EGD@uC+E}EK xC3@;]rK @AtAu |w*zA;u@AHt$CQ| T%Cu T&C+ؙjRPuE+]Pu Sujh@Eu4\@P!wYME;E tPUzYEEE3;EL0;tMf9 u ]EÉ]E;Eff tf CC@@EM;sHf9 u Ej MEjEPjEP4,@u \@u[}tUDHt(f} tj XfMLML%D& *;]uf} tjjjuf} tj XfCCE9Et@uffCC+]]\@j^;uuu }u0imY]\3_[^jh@uEuEu *u 3;|;*Ar!u0u VVVVVtɋ*A L9t;MAut0tPYuD8tuu u~ E~t t0ME EtuiYËU0S3EVW]]E ]t ]E E]EP Yt SSSSSnrMu@u9EtM+útGHt.Ht&ssj^SSSSS0?sUtuE@}EjY+t7+t*+t+t@u9}EEE E]E#¹;;t0;t,;t==@E/E&E=t=t`;EEEt  A#MxE@tMMMt } tME릨tMujrMrE=@SuuEPuuu ׉EumM#;u+Et%eSuEuPuuu ׉Eu46*AD0 \@PqYqtu@@;uD6*AD0 \@VqYu@;u_q 룃uM@ uMu64Ѓ*AYYMLЃ*AD$ MeHMEtqjW6 E;up8tM6jEP6] u}uERP6 ;tSS6F ;tE0@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u E]EE@]E#=@=tw;E;yvv0fE3H&HREEjSS68 tSSS6'#ƒjEP6/ utk}uYEE;bPjSS6 CSSS6#ƒE%=u6Ynj^0d=uSj6X EASS6= EEE+PD=P6 9}ۋ *AD$2M0 *AD$M ʈ8]u!Etȃ *AD }#;u|Etvu@SuEjPuWu @u4\@Pmȃ *AD 6Y6 *A_^[jh@omM3u39u;u mVVVVVlruuj@u uEPEEE};t?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=EncodePointerKERNEL32.DLLDecodePointerFlsFreeFlsSetValueFlsGetValueFlsAllocruntime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program:  EEE00P('8PW700PP (`h`hhhxppwpp ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAUSER32.DLLSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecCONOUT$.com.exe.bat.cmd.\SystemRootHA@8i@#@%@%@%@%@h5@l5@;@;@k=@7=@>@#@@MA@iA@]G@+K@N@P@P@R@R@eY@ [@[@][@a[@^@H_@__@j@l@y@ށ@@@M@@[@!@]@ܮ@@@\$<Thp$@^r &0@Vbr$2L\r"4FXjv$0@RQGenerateConsoleCtrlEventGetExitCodeProcessdWaitForSingleObjectCreateProcessASetConsoleCtrlHandlerGetModuleFileNameAEnterCriticalSectionLeaveCriticalSectionGetModuleHandleW!Sleep GetProcAddressExitProcessoGetCommandLineA9GetStartupInfoASetHandleCount;GetStdHandleGetFileTypeDeleteCriticalSection-TerminateProcessGetCurrentProcess>UnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentGetLastErrorHeapFreeHeapAlloc[GetCPInfoInterlockedIncrementInterlockedDecrementRGetACPGetOEMCPIsValidCodePage4TlsGetValue2TlsAlloc5TlsSetValue3TlsFreeSetLastErrorGetCurrentThreadIdWriteFileLoadLibraryAInitializeCriticalSectionAndSpinCountJFreeEnvironmentStringsAGetEnvironmentStringsKFreeEnvironmentStringsWzWideCharToMultiByteGetEnvironmentStringsWHeapCreateWVirtualFreeTQueryPerformanceCounterfGetTickCountGetCurrentProcessIdOGetSystemTimeAsFileTimeRtlUnwindHeapReAllocTVirtualAllocGetConsoleCPGetConsoleModeAFlushFileBuffersLCMapStringAMultiByteToWideCharLCMapStringW=GetStringTypeA@GetStringTypeWGetLocaleInfoASetFilePointerHeapSizeCCloseHandleWriteConsoleAGetConsoleOutputCPWriteConsoleWSetStdHandlexCreateFileARCompareStringAUCompareStringWSetEnvironmentVariableAKERNEL32.dllhReadFileSetEndOfFile#GetProcessHeapGetFileAttributesA+A+AN@D#@l@\@         ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZhA`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~l@CAAAAAHAh@@p@AAAhA@@ @ @@@@\@$@@@@d@D@@ @!@"@x@y@z@@@^@^@^@^@^@^@^@^@^@^@x h@j@@@@@@@@x@p@h@\@P@H@<@8@4@0@,@(@$@ @@@@@ @@@@@(@@@@@@@@@@@|@p@ A.DA)A)A)A)A)A)A)A)A)AHA. pPSTPDTAA;Zx0Nm:Yw/Mll@d@\@T@07070100062150000081ed000000000000000000000001513ff4b500001815000000b600010002ffffffffffffffff0000006200000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/archive_util.py"""Utilities for extracting common archive formats""" __all__ = [ "unpack_archive", "unpack_zipfile", "unpack_tarfile", "default_filter", "UnrecognizedFormat", "extraction_drivers", "unpack_directory", ] import zipfile, tarfile, os, shutil from pkg_resources import ensure_directory from distutils.errors import DistutilsError class UnrecognizedFormat(DistutilsError): """Couldn't recognize the archive type""" def default_filter(src,dst): """The default progress/filter callback; returns True for all files""" return dst def unpack_archive(filename, extract_dir, progress_filter=default_filter, drivers=None ): """Unpack `filename` to `extract_dir`, or raise ``UnrecognizedFormat`` `progress_filter` is a function taking two arguments: a source path internal to the archive ('/'-separated), and a filesystem path where it will be extracted. The callback must return the desired extract path (which may be the same as the one passed in), or else ``None`` to skip that file or directory. The callback can thus be used to report on the progress of the extraction, as well as to filter the items extracted or alter their extraction paths. `drivers`, if supplied, must be a non-empty sequence of functions with the same signature as this function (minus the `drivers` argument), that raise ``UnrecognizedFormat`` if they do not support extracting the designated archive type. The `drivers` are tried in sequence until one is found that does not raise an error, or until all are exhausted (in which case ``UnrecognizedFormat`` is raised). If you do not supply a sequence of drivers, the module's ``extraction_drivers`` constant will be used, which means that ``unpack_zipfile`` and ``unpack_tarfile`` will be tried, in that order. """ for driver in drivers or extraction_drivers: try: driver(filename, extract_dir, progress_filter) except UnrecognizedFormat: continue else: return else: raise UnrecognizedFormat( "Not a recognized archive type: %s" % filename ) def unpack_directory(filename, extract_dir, progress_filter=default_filter): """"Unpack" a directory, using the same interface as for archives Raises ``UnrecognizedFormat`` if `filename` is not a directory """ if not os.path.isdir(filename): raise UnrecognizedFormat("%s is not a directory" % (filename,)) paths = {filename:('',extract_dir)} for base, dirs, files in os.walk(filename): src,dst = paths[base] for d in dirs: paths[os.path.join(base,d)] = src+d+'/', os.path.join(dst,d) for f in files: name = src+f target = os.path.join(dst,f) target = progress_filter(src+f, target) if not target: continue # skip non-files ensure_directory(target) f = os.path.join(base,f) shutil.copyfile(f, target) shutil.copystat(f, target) def unpack_zipfile(filename, extract_dir, progress_filter=default_filter): """Unpack zip `filename` to `extract_dir` Raises ``UnrecognizedFormat`` if `filename` is not a zipfile (as determined by ``zipfile.is_zipfile()``). See ``unpack_archive()`` for an explanation of the `progress_filter` argument. """ if not zipfile.is_zipfile(filename): raise UnrecognizedFormat("%s is not a zip file" % (filename,)) z = zipfile.ZipFile(filename) try: for info in z.infolist(): name = info.filename # don't extract absolute paths or ones with .. in them if name.startswith('/') or '..' in name: continue target = os.path.join(extract_dir, *name.split('/')) target = progress_filter(name, target) if not target: continue if name.endswith('/'): # directory ensure_directory(target) else: # file ensure_directory(target) data = z.read(info.filename) f = open(target,'wb') try: f.write(data) finally: f.close() del data finally: z.close() def unpack_tarfile(filename, extract_dir, progress_filter=default_filter): """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` Raises ``UnrecognizedFormat`` if `filename` is not a tarfile (as determined by ``tarfile.open()``). See ``unpack_archive()`` for an explanation of the `progress_filter` argument. """ try: tarobj = tarfile.open(filename) except tarfile.TarError: raise UnrecognizedFormat( "%s is not a compressed or uncompressed tar file" % (filename,) ) try: tarobj.chown = lambda *args: None # don't do any chowning! for member in tarobj: name = member.name # don't extract absolute paths or ones with .. in them if not name.startswith('/') and '..' not in name: prelim_dst = os.path.join(extract_dir, *name.split('/')) final_dst = progress_filter(name, prelim_dst) # If progress_filter returns None, then we do not extract # this file # TODO: Do we really need to limit to just these file types? # tarobj.extract() will handle all files on all platforms, # turning file types that aren't allowed on that platform into # regular files. if final_dst and (member.isfile() or member.isdir() or member.islnk() or member.issym()): tarobj.extract(member, extract_dir) if final_dst != prelim_dst: shutil.move(prelim_dst, final_dst) return True finally: tarobj.close() extraction_drivers = unpack_directory, unpack_zipfile, unpack_tarfile 07070100062190000081ed000000000000000000000001513ff4b5000000a3000000b600010002ffffffffffffffff0000006500000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template.py# EASY-INSTALL-SCRIPT: %(spec)r,%(script_name)r __requires__ = """%(spec)r""" import pkg_resources pkg_resources.run_script("""%(spec)r""", """%(script_name)r""") 0707010006218f000081a4000000000000000000000001513ff4b50000313b000000b600010002ffffffffffffffff0000005e00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyc ?Qc@sddlZddlZddlZddlZddlZddlZejejZy e Z Wne k r{dZ nXe ZddlmZddddgZdZdddYZeed rejgZngZy'dd lmZeje[Wnek rnXdefd YZeejgd jD]Ze eed ^qKZ!defdYZ"dS(iN(tDistutilsErrortAbstractSandboxtDirectorySandboxtSandboxViolationt run_setupc stj}tj}tj}tjjtjj}tjj|d}tjj|sutj |nt j }tj j }tj} z|t _ tj|yJgt|tj(tjjd|t|jfdWn/tk r-} | jr.| jdr.q.nXWdtj| tj j|gtj D](} | |krY| jd rY| ^qY} ttj j| tj||tj(|tj(|t _ XdS(s8Run a distutils setup script, sandboxed in its directoryttempicstdid6dd6S(Nssetup.pyt__file__t__main__t__name__(texecfile((t setup_script(sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pytsNs encodings.(tostgetcwdtsystargvtpathtabspathtdirnametjointisdirtmakedirsttempfilettempdirtmodulestcopyt pkg_resourcest __getstate__tchdirtlisttinsertRtrunt SystemExittargst __setstate__tupdatet startswithtmapt __delitem__( R R!told_dirt save_argvt save_patht setup_dirttemp_dirtsave_tmpt save_modulestpr_statetvtmod_namet del_modules((R sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyR s>             cBseZdZeZdZdZdZdZx<dddgD]+Z e e e rFee e e RAReRiRkRQRdRG(((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyR7s>          tdevnull(tGetGeneratePathcBseZdZejddddddddd d d d d g ZedZdZe rlddZ nddZ dZ dZ dZ dZdZddZRS(s<Restrict operations to a single subdirectory - pseudo-chrootRBRURVRWRXRYRZR[R\R]R`RaRgcCstjjtjj||_tjj|jd|_g|D]$}tjjtjj|^qC|_tj |dS(Nt( R Rtnormcasetrealpatht_sandboxRt_prefixt _exceptionsRR9(R7tsandboxt exceptionsR((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyR9s!4cOst|||dS(N(R(R7RlR!RJ((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyt _violationstrcOsK|dkr8|j| r8|jd||||nt||||S(NR|trttrbtrUtUR@(R|srtsrbsrUR(t_okR{R>(R7RtmodeR!RJ((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyR>scOsK|dkr8|j| r8|jd||||nt||||S(NR|R}R~RRRB(R|srtsrbsrUR(RR{RA(R7RRR!RJ((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRAscCs|jddS(NRj(R{(R7((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRjscCsy|j}z_t|_tjjtjj|}|j|sc||jksc|j|j rgt SWd||_XdS(N( RDRER RRtRut _exemptedRvR$RwRC(R7RtactiveRu((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRs  cCst|j|j}t|kS(N(R%R$RxRC(R7tfilepathtexception_matches((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRscOsH||jkrD|j| rD|j|tjj|||n|S(sCalled for path inputs(t write_opsRR{R RRu(R7RlRR!RJ((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRQs%cOsF|j| s |j| r<|j|||||n||fS(s?Called for path pairs like rename, link, and symlink operations(RR{(R7RlRHRIR!RJ((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRGs icCsF|t@r3|j| r3|jd|||ntj|||S(sCalled for low-level os.open()sos.open(t WRITE_FLAGSRR{R4RB(R7R@tflagsR((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRBs(RRmRntdicttfromkeysRt _EXCEPTIONSR9R{R>RARjRRRQRGRB(((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRs       s4O_WRONLY O_RDWR O_APPEND O_CREAT O_TRUNC O_TEMPORARYicBseZdZdZRS(sEA setup script attempted to modify the filesystem outside the sandboxcCs d|jS(NsSandboxViolation: %s%r %s The package setup script has attempted to modify files on your system that are not within the EasyInstall build area, and has been aborted. This package cannot be safely installed by EasyInstall, and may not support alternate installation locations even if you run its setup script by hand. Please inform the package's author and the EasyInstall maintainers to find out if a fix or workaround is available.(R!(R7((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyt__str__s (RRmRnR(((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyRs((#R RR?RtoperatorRRR8R4R@R>t NameErrorRpRBRAtdistutils.errorsRt__all__RRR5RqRtwin32com.client.gencacheRrtappendt ImportErrorRtreducetor_tsplittaR;RR(((sX/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/sandbox.pyts2H    +l A+07070100062154000081a4000000000000000000000001513ff4b500011000000000b600010002ffffffffffffffff0000005a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/cli.exeMZ@ !L!This program cannot be run in DOS mode. $G))))))R)()))Rich)PELM  ^$@P@,(@P @@.textM `.rdata` "@@.data+@.reloc@@Bt$t$@P jXUE H@uSV+W؍DjP4 3;ڋYY"wUU~gMEE\uE-"u%9U~uj\V; ueE 3\FUFE9]|9U~uj\V u"_F^[VWjVVt$WV _^U$t A3ʼnVW AGE_^[á At jP@Ã|$ujY3@UXVW3}쫫jD_3WEVPug jh"@}@EPEPVVVjVVuV @_^uh@-@PYY3ËEju A@EPu@uh@EUEH@uSVW3G+9}H~E P@u+F;uL|WQ^uh@S EH@u+9}~3E 43h@P E  H@u+G;}t|_^[]U$hA3ʼnSVWESPj@p@u+ƍ 8.tH;w퍽OGGu(@fjPqYYuPh@YYJSEPV)V|;EH@;st t ujEh@P t @}EPEPf0EPVKEu Vh@i]ÉE@jPu@3@ ;؍wE~EM4 E9]Y|䍅P3ۉC9Y~E4C;Y|&tWuuh@uWubP_^3[7Řjt$ t$ j h@3u3];;u :VVVVV39u ;tԉ]SYuC @uwS)Yttȃ *AAA$u)tt*AA@$tVVVVV(M9uu#SK EPVu SESW E EuLYøAá;AVj^u;}ƣ;AjP YY+AujV5;Ay YY+AujX^3ҹA+A  A|j^3ҹAW*At;tu1 BpA|_3^#=0 Ato!5+A YËUVuA;r"`Aw+Q$N Y V@^]ËUE}P$E H Y]ËE P@]ËUEA;r=`Aw` +P#Y]à P@]ËUME }` Qg#Y]à P@]ËUQeVEPu uK$ u9Et`t WM^̋T$ L$ti3D$ur=*Ate%Wr1كt +шuʃtt uD$_ËD$̋L$ WVSًt$|$u 't+t/uuatt7uD$[^_tuutu[^D$_Ét~Ѓ3‹t܄t,tt uĉ3҉3t 3uwD$[^_ËUuuuu ju %]ËUQQS3VW]9]t}M ;u9]uq9]tj9]u9]u`9]tY9]u9] uO9] tH9]$u>9](u>u3@8tHF;w>:u5;t}jujQ%&Fu9](uE;tu3]8tUP%YtFUVuVSP?YYt| ;u3@;u`3@ AF uNSW^^N 3_@[3^]ËU}t'Vu F tVf f&fY^]A @tyt$Ix  QP-YYu ËUVMEM >t} ^]ËUG @SVt2u,E+M}C>u8*uϰ?d}^[]ËUxA3ʼnES] Vu3W}u#u5M3PPPPPt `p F @u^V@ YAttȃ *AA$uttȃ*A@$g3;] C , If90t@@;u+(;u AI8t@;u+\@t2t ƅ-t ƅ+ tƅ Dž++ uSj p vYtuWSj0. tf~bPjEPFPF5u(9t MYuPY|tWSj tYtt `pM_^3[Ð)@'@'@Y(@(@(@(@$*@jThP@e3}EP@@Ej@j ^VuYY;*A5*A0@@ x@$@% @& x8@4@ *A;rf9} E;8X;E;|E[j@j YYtVM *A*A *@@ ``$@% @& `8@4@;rE9=*A|=*Ae~mEtVtQtKu Q<@t%uN@ uNhF P)YYt7F N@Cg5*A4@33@ËeEcËUEV3;uVVVVVE@^]ËUEP A]ËU(A3ʼnESjLjP(0 ,ffffffEMDž0IDžDžX@jT@(PP@u uj1YhL@PH@M3[(ËU5P A&Yt]j1Y]UE3;AtA-rHwj X]ËA]DjY;#]u@AÃuDAà ËUVMQY0^]h6@d5D$l$l$+SVWA1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35AWEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEt41E|@GE؃u΀}t$t N3 8VN V3 :FE_^[]EɋM9csmu)=*At h*A!tUjR*AM 0E 9X thAWӋ0E MH t N3 8N V3 :EHm09S RhAW0UVW3u0Yu'9T AvV$@;T Avuʋ_^]ËUVW3ju uE u'9T AvV$@;T AvuË_^]ËUVW3u u 1YYu,9E t'9T AvV$@;T Avu_^]ËUVW3uu u2 u,9Et'9T AvV$@;T Avu_^]j hp@utu=*AuCjYeV2YEt VP3YYE }u7u jYVj5t)A`@u \@PYjh@I3ۉ]jY]j_};=;A}W+A9tD@ tP{=YtE|(+A PD@+A4Y+AGE Ej7YËUSVuF Ȁ3ۀu@t9FW>+~,WPVeYPD ;uF yF N _Ff^[]ËUVuu V5Y/V|YtF @tVP EYY3^]jh@3}}jDY}3u;5;A+A98t^@ tVPVEYY3BU+AH t/9UuPJYtE9}utP/Yu E܉}F3uࡼ+A4VNYYE}EtE{jYjYËVW3X At~t WW&YhA|ܾHA_t ~uPӃhA|^[ËUE4HA@]j h@^3G}39t)AujhYYu4HA9tnj Y;u 3Qj YY]9u,hW YYuWY ] >WYE Ej (YËUEV4HA>uP"YujtY6@^]j h@hM3;v.jX3;E @u WWWWW3M u;u3F3ۉ]wi=*AuKu E;p*Aw7jLY}u5YEE_];tuWS6 ;uaVj5t)Ad@;uL9=)At3VYrE;P E3u jY;u E;t U}}M f$ffGfG fG0fG@fGPfG`fGpIuЋ}]U}E3+3+uF@8uE;t':t!.tG;} s.F G;} sF@8uG;} vElj"3_^[ËUuME MUTu}tMA#E3t3@}tMapËUjjuu ]ËUjjuj]ËUjuuu u?]ËU("A "A"A"A5"A="Af"Af "Af"Af"Af%"Af-"A"AE"AE"AE"A"A"A!A!A !AAAX@!Aj_$YjT@h@P@=!Auj;$Yh L@PH@-t"t t Ht3øøøøËVWh3FWP+3ȋ~~~  ~hA F+ο@Ou@Nu_^ËUA3ʼnESWPvh@3@;rƅ t.;w+@P j Rh CCujv vPWPjj*E3SvWPWPWv S CDSvWPWPhv SB$3EtLtL Ƅ@;rVDž3)ЍZ w Lр wL р A;r‹M_3[Oj h8@ AGptltwhuj Yj Yewhu;5At6tVp@uhAtVYAGh5AuVl@E뎋uj YËUS3SM$Au$Ax@8]tEMapEAD;FG;v}FF>uыuE}urlj{CgjC CAZf1Af0A@@JuL@;vFF~4C@IuCC Ss3ȋ {95$AXM_^3[JjhX@M}_huuE;CWh Y؅Fwh#SuYYEuvhp@uFh=hAtPcY^hS=l@FpAj tYeC$AC$AC $A3E}fLCf E$A@3E=} LA@3E=}A@5Ap@uA=hAtPYASE0j Y%u hAtStYeEÃ=+AujVY+A3ËUSVu3W;to=HAth;t^9uZ;t9uPLAYY;t9uP@YYYY;tD9u@-P+P+Puj=At9uP>7CYY~PEAt;t 9uPY9_tG;t 9uPYMuVY_^[]ËUSV5l@W}W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P_^[]ËUW}SV5p@W֋tP֋tP֋tP֋tP֍_PE{At tPփ{t CtPփMu֋P^[_]Åt7t3V0;t(W8YtVE>YuAtVYY^3j hx@c/AFpt"~ltpluj -Yvj YeFl=pAiEEj }YuËUV5A5@օt!AtP5AЅt't@V @u VnYthd@P(@tuЉEE^]jYËUV5A5@օt!AtP5AЅt't@V @u VYth@P(@tuЉEE^]@V5A@u5%AeYV5A@^áAtP5%A;YЃ AAtP@ Aj h@t@V @uV4YEuF\@3G~t$hd@P(@Ӊh@uӉ~pƆCƆKCFhhAj nYevhl@E>j MY}E FlupAFlvlYE 3Guj 5Yj ,Y̋VW\@5AЋuNhjYYt:V5A5%AYЅtjVYY@N V[Y3W@_^ËVujY^jh@ uF$tPYF,tPYF4tPYFHN+I;N~WPu * EM F yM tt*AA@ tjSSQ7>#ƒt%FM3GWEPu {* E9}t N E%_[^ËUQQS]VW33};At G}rwj@Y4jv@Yu =AAhp@S %AW=8 t VVVVVh9%AVj=&A@u&hX@hV7 t3PPPPPV@YYu=Auh)hYYËUQSVW5+A5+A}YY;+ߍCrwW>CY;sH;s;rPupYYuG;r@PuZYYt1P4Y+AuVY+AEY3_^[ËVjj V +A+AujX^Ã&3^j h@beuYEE E~ËUuYH]ËV@@W;stЃ;r_^ËV@@W;stЃ;r_^ËVW3@A6Y(r_^̋UMMZf9t3]ËA<8PEu3ҹ f9H‹]̋UEH<ASVq3WDv} H ;r X;r B(;r3_^[]̋Ujh@h6@dPSVWA1E3PEdeEh@*tUE-@Ph@Pt;@$ЃEMd Y_^[]ËE3=‹ËeE3Md Y_^[]jh(@G@xte3@ËeE<`hY@Y4(AËUQQVSFV\tAW}S99tk ;rk ;s99u3t X]u3u `3@N`MM N`H hA=lA;}$k ~\d9=hAlAB߃ ;|]~d=u Fd^=u FdN=u Fd>=u Fd.=u Fd=u Fd=uFdvdjY~d`QӋEYF`[_^ËUE8(A<(A@(AD(A]ËUE tAV9Ptk u ;rk M^;s9Pt3]5@(AYj hH@:3}}؋] LtjY+t"+t+td+uDf}؅ua8(A8(A`w\]ZÃt<t+Ht~3PPPPP뮾@(A@(A<(A<(A D(AD(AEPEY3}9Euj9EtPY3Et tuO`MԉG`u@OdMGdu. hAM܋ lAhA9M}Mk W\DEnEuwdSUY]}؃}tjDYSUYt tuEԉG`uEЉGd3ËUEL(A]ËUEX(A]ËUE\(A]jhh@]eu u@E/EE3=Ëe}uj@eEEOËUE`(A]ËU5`(AlYtuYt3@]3]ËUE8csmu*xu$@= t=!t="t=@uC3]h~^@T@3Ã=+Au8V5< AW3u<=tGVYtujGWpYY= Atˋ5< ASBVRC>=Yt1jSBYYtNVSP|. t3PPPPP>u5< A%< A'+A3Y[_^5 A% AUQMS3VU 9Et ]EE>"u39E"FE<tBU PFYt} t M E FU Mt2}u t utBe>< t< uFN>}t EE3C3FA>\t>"u&u}t F8"u 339EEtIt\BuU tU}u< tK< tGt=Pt#)Yt M E FM E  YtFU FVtBU ME^[t ËU S3VW9+Auhh(AVSl)A@+A5( A;tE8uuUEPSS} E =?sJMsB;r6PsY;t)UEPWV}E H A5 A3_^[ËUp)A SV5@W33;u.֋;t p)A#\@xu jXp)Ap)A;u֋;u3f9t@@f9u@@f9u5@SSS+S@PWSSE։E;t/PYE;t!SSuPuWSSօu uY]]W@\t;u@;r8t @8u@8u+@PE2Y;u V@EuVW+ V@_^[ËU39EjhP@t)Au]3@*A]ËUAeeSWN@;t t УA`VEP@u3u@3@3@3EP@E3E3;uO@ u 5A։5A^_[ËUEu 3]V3;|;*ArVVVVV ^3ȃ *AD@^]áA39x)A̋L$t$tNu$$~Ѓ3ƒtAt2t$tt͍AL$+ÍAL$+ÍAL$+ÍAL$+ËUSVu 3W};u;vE;t3E;tvj^SSSSS0@VuMcE9XfEf;v6;t;v WSV( d*Y8]tMap_^[;t2;w,9j"^SSSSS08]yE`pmE;t8]%E`pM QSWVjMQS] p@;t9] ^M;t\@zD;g;_WSVQ OUjuuu u|]ËUu M*EMA%}tMapËUjuYY]VD$ u(L$D$ 3؋D$d$ȋd$Gȋ\$T$ D$ ud$ȋD$r;T$ wr;D$v N+D$T$3+D$T$ ؃ʋӋًȋ^%*ASVWT$D$L$URPQQhh@d5A3ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhC1C1d_^[ËL$At3D$H3蒵Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]Ëj_033333USVWjjhh@QQ_^[]Ul$RQt$ ]j h@qeu;5p*Aw"jYeVb YEE E}jYËUVuSW=d@=t)Autjh=YY*Aut3@Pu VSYuuFVj5t)A׋؅u.j ^9)AtuYtu{>070_[V{Y# 3^]jh@X]uu Yu u SSY=*A3}jgY}S6YE;;5p*AwIVSP t]5V YE;t'CH;rPSu:$SESP 9}uH;u3Fu u VW5t)Ad@E;t CH;rPSu#SuE.}u1uFu VSj5t)A@u ]jYË}9=)At,VY9}ul\@POY_9}th quFVSj5t)A@uV9)At4VYtvVY3 3 |u\@PYҋUM S3;v(j3X;EsSSSSS e3AMVW9]t u)YVuYYt;s+VjSH _^[]ËU h*Al*AkU+P r ;r3]ËUMAVu W+y iDMIMS1UVUU] utJ?vj?ZK;KuB sL!\D u#M!JL! uM!Y] S[MMZU ZRSMJ?vj?Z]]+u]j?u K^;vMJM;v;t^M q;qu; s!tDLu!M!1K!LuM!qM qINM qINu ]}u;M ыYN^qNqN;Nu`LML s%}uʻM DD )}uJM YJꍄ ED0E|)A |*A5@h@H SQ֋ |*A|)A P|)A@ |*A|)A@HC|)AHyCu `|)AxueSjp ֡|)Apj5t)A`@ h*A|)Akl*A+ȍLQHQP+E h*A;|)Avml*At*AE|)A=|*A[_^̡x*AV5h*AW3;u4kP5l*AW5t)A@;u3xx*A5h*Al*Ak5l*AhAj5t)Ad@F;tjh hW@F ;uvW5t)A`@뛃N>~h*AF_^ËUQQMASVqW3C}i0Dj?EZ@@Jujhy hW@upU;wC+ GAH@PǀIuˋUEO HAJ HAdD3GFCENCu x!P_^[ËU MASVuW} +Q iDMOI;|9M]UE;;MIM?vj?YM_;_uC sML!\D u&M!ML! uM!YO_YOyM+M}}M OL1?vj?_]][Y]YKYKY;YuWLML s}uϻM DD }uOM YO U MD2LU FBD2<38/] )uNK\3uN] K?vj?^EuN?vj?^O;OuB st!\Du#M!NL! uM!Y] OwqwOquuuN?vj?^M yK{YKYK;KuWLML s}uοM 9DD }uNM yN ED3@_^[ËUh*AMkl*AMSI VW} M 3U t*AS;#U# u ];r;ul*AS;#U# u ];r;u[ {u ];r;u1l*A {u ];r;u؉]u3 S:YKC8tt*ACUt|D#M# u)eHD9#U# uEUiDMLD3#u#Mj _G}MT +MN?M~j?^;J;Ju\ }&M|8Ӊ]#\D\Du3M]! ,OM|8!]u ]M!K]}JzyJzyM yJzQJQJ;Ju^LM L}#} u ;οM |D)} u N {MN 7Mt LMuэN L2uy>u;|)AuM; |*Au%|)AMB_^[ËUSVuW3;u褾WWWWW, BF t7VV(V袼P'}F;t PY~~ _^[]j h@膾M3u3;;u!WWWWW詽 F @t ~ E艾V膠Y}V*YEEՋuVԠYËU7*A3ʼnEE V34809uu3;u'藽0}VVVVVSW}4*ANJX$('tu0Mu&.30VVVVV蚼C@ tjjjubuYD@l39HP4 @`39 tP@43<9EBD'g (3  ǃx8tP4UM`8jEPKPYt:4+M3@;j@SP;( CDjS@P( 3PPjMQj@QPCD@\juMEMF9YtH9Ew D u+ȃ+N8]tMap^[ËUju uU ]ËUS3Vu9]u;u9] u3;t9] wj^SSSSS0聳9]uW};udzj^SSSSS0P(uMrE9XuuWu V L}U u@G:tJu@G:tJtMu9]u@;8t}u5x};rEPEPYYtM9us+E}uZE v:|};r!EPEP۾YYtM9usE +Mt\8]tE`pjPX覲j"^SSSSS0/8]tE`pd+΃|Mx};rEPEPXYYtM9us+EtCj*X8]tMap8]tE`p3_^[ËUEt8uPgY]ËUA3ʼnESV3W9)Au8SS3GWhd@hS@t=)A\@xu )A9]~"MEI8t@;uE+H;E}@E)A;]9] u@E 5@39]$SSuuPu ֋;~Cj3Xr7D?=w#;tP Y;t E]9]>Wuuuju օ5@SSWuu u֋ȉM;E t)9];MuuWuu u;~Ej3Xr9D =w";tjPIY;t 3;tAuVWuu u@t"SS9]uSSuuuVSu @EVYuEYY]]9]u@E9] u@E u YEu3!;E SSMQuPu = E;tԋ5@SSuPu u։E;u3~=w8=w!;tP3Y;t 3;tuSW诒 uWuuu u։E;u3%uEuPWu uu#uWYuuuuu u@9]t uYE;t 9EtPԱYƍe_^[M3ËUuMu(Mu$u uuuuu ( }tMapËUQQA3ʼnE)ASV3W;u:EP3FVhd@V@t5)A4\@xu jX)A)A;]9]u@E5@39] SSuu Pu֋;~<w4D?=w;tPOY;t ؅ti?PjS͐ WSuu juօtuPSu@ESEYu39]u@E9]u@Eu@Yu3G;EtSSMQu Puh;t܉u uuu uu@;tVկYǍe_^[M3ËUuMu$Mu uuuuu }tMapËUVuvev]v UvMvEv=66v .v$&v(v,v0v4vv8v<@v@vDۮvHӮvLˮvPîvT軮vX賮v\諮v`裮vd蛮vh蓮vl苮vp胮vt{vxsv|k@]RG<1&,^]ËUVut5;HAtP̭YF;LAtP躭Yv;5PAtV設Y^]ËUVut~F ;TAtP膭YF;XAtPtYF;\AtPbYF;`AtPPYF;dAtP>YF ;hAtP,Yv$;5lAtVY^]ËUES3VW;t} ;w萩j^0SSSSS 9M u H9U t @ff;u9M u8]tMap8]tE`p3^[ËUju u2 ]̍B[Í$d$3D$ST$t :tτtQu WV ؋ ~333ƃu%t%uu^_[3ËB:t6t:t't:tt:tt^_B[ÍB^_[ÍB^_[ÍB^_[%@UUS3;u{SSSSS${ 8tߋM ;t؋;t8tSQR []ËUUVujXEU;uS{ 8{ S3;|;5*Ar'){{SSSSS zQW<*AƊHuzz jwP];9] t7@$EHjYtHuШtUE EШu!wz]zSSSSSy4M;rEuj|YE;u%z -zhjSSu|D(ET,AHttI tl9]tg@MED 8]tNL% tC9]t>@M}ED% u$L& t9]t@MED& SMQuP4,@{M;p;MgMD};t M9 u ]EÉ]E;M<< t CAMEH;sA8 u AAM uEmEjEPjEP4,@u \@uE}t?DHt} t ML%;]u} tjjju} t CE9EGD@uC+E}EK xC3@;]rK @AtAu w*zA;u@AHt$CQ| T%Cu T&C+ؙjRPuE+]Pu Sujh@Eu4\@PuwYME;E tPzYEEE3;EL0;tMf9 u ]EÉ]E;Eff tf CC@@EM;sHf9 u Ej MEjEPjEP4,@u \@u[}tUDHt(f} tj XfMLML%D& *;]uf} tjjjuf} tj XfCCE9Et@uffCC+]]\@j^;uu u0imY]\3_[^jh@uEuu ~u 3;|;*Ar!pu0Vu VVVVVtɋ*A L9t;MAu"u0uPYuD8tuu u~ Et t0ME E>uuiYËU0S3EVW]]E ]t ]E E]EP Yt SSSSSrMu@u9EtM+útGHt.Ht&'t tj^SSSSS0sUtuE@}EjY+t7+t*+t+t@u9}EEE E]E#¹;;t0;t,;t==@E/E&E=t=t`;EEEt  A#MxE@tMMMt } tME릨tMurrE=@SuuEPuuu ׉EumM#;u+Et%eSuEuPuuu ׉Eu46*AD0 \@P/rYrtu<@;uD6*AD0 \@VqYu@;uq 룃uM@ uMu64Ѓ*AYYMLЃ*AD$ MeHMEtqjW6 E;u*q8tM6jEP6] u}uERP6 ;tSS6F ;tE0@@}uE#u M EE#;tD=t)=@t"=t)=@t"=t=@uEM#;u E]EE@]E#=@=tw;E;yvv0fE3H&HREEjSS68 tSSS6'#ƒjEP6/ utk}uYEE;bPjSS6 CSSS6#ƒE%=u6Ynj^0d=uSj6X EASS6= EEE+PD=P6 9}ۋ *AD$2M0 *AD$M ʈ8]u!Etȃ *AD }#;u|Etvu@SuEjPuWu @u4\@Pmȃ *AD 6Y6 *A_^[jh@mM3u39u;u]mVVVVVlruuj@u uEPEEE};t< m839ut+9utEM*AD uYËE_mËUQQV39uulVVVVVAlJ9u tuEPEPuu |tuuujUuouo^ËUSW}3ۉ};u 9lSSSSSk8t܋E ;tՋ;t8tVj\W j/W ;;j:W=YY;usWIjV=n };ht@VWk t SSSSSjuVW t SSSSSiw} ;t;vMj.Vh YYt,Su YYuu u` Eu薙jVm E;uuVP t SSSSSPiuQ}YjEE+EAE0VWr t SSSSS iSu] YYtm}A}tjuMu u Eum}Y9}t umYE^_[ËUSVW3jSSu]]E#ƒUtYjSSuz#ʃtAu }+;Sj4@Pd@Eui i_^[huYYE| ;rPuu譫 t6+xӅwϋuuuFYYuj4@P`@3Gi8u *i u;q|;skSuu u#ƒDuYP0@HE#‰Uu)h h\@u#uSuuu#ƒ3UVuV"Yuih MWuju P@u\@3t PYhY*AD0 _^]ËUS] Vu*A 0A$Wy@tPtBt&tu=I L1$⁀'I L1$₀a I L1$!_^[u]%@]ËUEV3;u>gVVVVVfjX d*A3^]ËUhES3W]];tt~~ u EEE8ffSSSSS_f@8uH8t 8uVjD^VESPTJu5*A ;t+Fȋ *A8\uNH;u;@234kfEjPhYYE;;0E̍H|0]~9EЃ*APuEA9u|ʋE8]t,H3ҍD0}j_;} BAEeEPEPSuujSSuu  @\@űhY;u WeYX}uS$R5@9]uju@EPu@]}uu]u֋e ^_[ËU@A3ʼnEM ESVWx@}fMԋM3ۉMMjEȋM]܉]]^P2tY;ujVuguYY;u#Ed d/EPESP ;tuqSSSSSbbEP蹒GGY}9]tu褒Y}ЋE;tOj_P舒|Y;u< A;uC< A;u5u6MBgEYeE}ȋ6;FU]8t(=tVYML< A4M:u܋MM+8Xt-x:u'x=u!PݑYM؍D < AE8=t΋E+Eu}EP謑PEP6tM9u}jWeuYYM;26[fYb bMiEP+EPV t SSSSSa7t6PE+EPVI t SSSSS`7 FY;uËE^09]}؋E+Q < AQV+} }6EM7+PVѹ t SSSSSi`7kYt9u9]ug}ЍEPWV藹 t SSSSS/`h`@WV t SSSSS`9]tuWV t SSSSS_;t E;0uF< A;tPdY< A9]t udYE܋M_^3[HËUV39uu$2a0aVVVVV`jXUE uu8@u\@PaY`(u"tE t`` 3^]ËUSu3ۍM]\HM;u(`SSSSS `8]tE`p3qVu9^uu QjYY8]tWMapNWD7t!A:t 9E uAE 9]9E uMA:u_8]tE`pE^[ËUju u2 ]ËUS39]u3uMGE9Xu&uu u 8]mMapaW};t9] u.s_SSSSS^8]tE`p%VfMGDMtC:u]Xff fGMf;pr f;pwfp6f;pr0f;pw*fp$U At fʉMfuM f E DMtEU :u]Wff E ɉMf;Hr f;HwfH6f;Hr0f;Hw*fH$U At fʉMfMf;u!f;t 9]8]tE`p3^_[H8]tMapUjuu u#]UW}3كE 8t3_*BZnv*Fdx,6F\hx*8Rbx(:L^p|(8J@@@J@W@^@@y@failed to get exit code from process. failed to create process. %s%sCould not exec %sCannot find Python executable %s #!python.exe#!Cannot open %s -script.pyCorExitProcessmscoree.dll(null)(null)EEE50P( 8PX700WP `h````xpxxxx!A"A  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~=EncodePointerKERNEL32.DLLDecodePointerFlsFreeFlsSetValueFlsGetValueFlsAllocruntime error TLOSS error SING error DOMAIN error R6034 An application has made an attempt to load the C runtime library incorrectly. Please contact the application's support team for more information. R6033 - Attempt to use MSIL code from this assembly during native code initialization This indicates a bug in your application. It is most likely the result of calling an MSIL-compiled (/clr) function from a native constructor or from DllMain. R6032 - not enough space for locale information R6031 - Attempt to initialize the CRT more than once. This indicates a bug in your application. R6030 - CRT not initialized R6028 - unable to initialize heap R6027 - not enough space for lowio initialization R6026 - not enough space for stdio initialization R6025 - pure virtual function call R6024 - not enough space for _onexit/atexit table R6019 - unable to open console device R6018 - unexpected heap error R6017 - unexpected multithread lock error R6016 - not enough space for thread data This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. R6009 - not enough space for environment R6008 - not enough space for arguments R6002 - floating point support not loaded Microsoft Visual C++ Runtime Library ...Runtime Error! Program:  EEE00P('8PW700PP (`h`hhhxppwpp ((((( H h(((( H H  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~HH:mm:ssdddd, MMMM dd, yyyyMM/dd/yyPMAMDecemberNovemberOctoberSeptemberAugustJulyJuneAprilMarchFebruaryJanuaryDecNovOctSepAugJulJunMayAprMarFebJanSaturdayFridayThursdayWednesdayTuesdayMondaySundaySatFriThuWedTueMonSunGetProcessWindowStationGetUserObjectInformationAGetLastActivePopupGetActiveWindowMessageBoxAUSER32.DLLSunMonTueWedThuFriSatJanFebMarAprMayJunJulAugSepOctNovDecCONOUT$.com.exe.bat.cmd.\SystemRootHA@6h@"@$@$@4@ 4@9@:@<@;@=@>@?@@@ F@I@KM@O@O@RQ@^Q@X@Y@Y@Z@!Z@x]@^@^@i@*k@/x@?@ @@@D@@@@<@X@@T*BZnv*Fdx,6F\hx*8Rbx(:L^p|(8JQGenerateConsoleCtrlEventGetExitCodeProcessdWaitForSingleObjectCreateProcessASetConsoleCtrlHandlerGetModuleFileNameAKERNEL32.dllEnterCriticalSectionLeaveCriticalSectionGetModuleHandleW!Sleep GetProcAddressExitProcessoGetCommandLineASetHandleCount;GetStdHandleGetFileType9GetStartupInfoADeleteCriticalSection-TerminateProcessGetCurrentProcess>UnhandledExceptionFilterSetUnhandledExceptionFilterIsDebuggerPresentGetLastErrorHeapFreeHeapAlloc[GetCPInfoInterlockedIncrementInterlockedDecrementRGetACPGetOEMCPIsValidCodePage4TlsGetValue2TlsAlloc5TlsSetValue3TlsFreeSetLastErrorGetCurrentThreadIdWriteFileLoadLibraryAInitializeCriticalSectionAndSpinCountJFreeEnvironmentStringsAGetEnvironmentStringsKFreeEnvironmentStringsWzWideCharToMultiByteGetEnvironmentStringsWHeapCreateWVirtualFreeTQueryPerformanceCounterfGetTickCountGetCurrentProcessIdOGetSystemTimeAsFileTimeRtlUnwindHeapReAllocTVirtualAllocGetConsoleCPGetConsoleModeAFlushFileBuffersLCMapStringAMultiByteToWideCharLCMapStringW=GetStringTypeA@GetStringTypeWGetLocaleInfoASetFilePointerHeapSizeCCloseHandleWriteConsoleAGetConsoleOutputCPWriteConsoleWSetStdHandlexCreateFileARCompareStringAUCompareStringWSetEnvironmentVariableAhReadFileSetEndOfFile#GetProcessHeapGetFileAttributesA+A+AN@D"@l@\@         ! 5A CPR S WY l m pr   )     abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZhA`y!@~ڣ @ڣ AϢ[@~QQ^ _j21~l@CAAAAAHAh@@p@AAAhA@@ @ @@@@\@$@@@@d@D@@ @!@"@x@y@z@@@@@@@@@@@@@x h@j@@@@@@@@x@p@h@\@P@H@<@8@4@0@,@(@$@ @@@@@ @@@@@(@@@@@@@@@@@|@p@ A.DA)A)A)A)A)A)A)A)A)AHA. pPSTPDTAA;Zx0Nm:Yw/Mll@d@\@T@x133_3h33333334L4444!5k5}55[66%7,7N7U777777 88"818=8J8n888888999B9q99==>>#>>> "0+0X0s0y0000 11%10151E1O1V1a1j111111112+2U2Z2e2j2293F3S3x3333333 444U4Z4a4g4 55S66797777;<===?0111111111122O22222 393z33344n44R5\5i5555556!6Q6n667777+8V8_8k8888889B9K9W9p999999:+:R:_:d:r:M;p;{;;;4<;P>>>>?@ 0U2[2a2g2m2s2z222222222222222223 33 3&3,3B3I3334x55555555/6:6D6]6g6z666 77777^8}8889#9>9F9N9e9~99999999:':J:;9;;;>'>.>F>R>X>d>s>y>>>>>>>>>>>>? ?0?E?k?????P 00>00001%1o1v1111111111111111112 2222(2>2I2N2Y2^2i2n2{222222244*5a5y55555566.6S6x666667 77777798>8_8d88H9M9_9}999:7:B:c::::;;;;;;; P>]>>>>>?!?q?|????`U1f1n1t1y111122)252B2I22223-3O3T3b3q333333333#4P4c4n4,6J6w77788889>9^9999":Z:::;";F;i;;;;;<<>>>>???)?4?F?Y?d?j?p?u?~????????????pT00 00"0(0B0S0Y0j00k4w444 5O5"7-7577J88c99s:::]>s>>>p???L0x00004$414=4G4O4Z444Q56$66s7788$8.868C8J8z899;;;;;;<#<5/?H?O?W?\?`?d???????????? >0D0H0L0P000000001;1m1t1x1|111111111112223F3u3%4}444444444444555#515q5555556V666667777Q8]8888Y;`;;;;;< <<<=$>(>,>0>4>8><>@>>>>>>>9?C?[????0000000001 11:11M22223?3O3j3333,4H44444435E555566T66667"7888;;;;;;;;;; '>>>??\+0h0002s333 4424D444777 8&818H8m889U:I;;6<=<<<=H==== >>q???,v0~00001122q223I44455L1P1T1X1\1h1l122d445(5D5H5d5h5555556,606P6p66666677 7<7@7`7|777778 8@8`8888889(9002229::;; ;0;T;`;d;h;l;p;x;|;;;;;;;;;;;;;;;;< <<<$<,<4<<<@T>????07070100062193000081a4000000000000000000000001513ff4b50000016e000000b600010002ffffffffffffffff0000006a00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyc ?Qc@s7dZddlmZed[dZeedS(s%(spec)ri(trequires %(dev_path)rN(t __requires__t pkg_resourcesRt__file__texecfile(((sd/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/script_template_dev.pyts  07070100062189000081a4000000000000000000000001513ff4b500012600000000b600010002ffffffffffffffff0000005d00000000root/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/setuptools/gui-64.exeMZ@ !L!This program cannot be run in DOS mode. $4UUUʓUUҰUPIU-[U-JU-\҃U-NURichUPEdM#  l+@p(` .text `.rdata)*@@.data5 @.pdata ` @@H\$Hl$Ht$H|$ ATAUAVH LH3IHэD HyHcP 33Lc"HXL~eA ,\u'"u ~DƲ\Hˋj H+\H3A,HHI;C|~DƲ\Hˋ5 HHl$HHt$PH|$X"CH\$@IH A^A]A\H\$WH`HH3H$PHH HtH/u@\uH$@L$@LD$@HT$0HHD$ O|$0|$@\H$@L$@LD$@HT$0HHD$ H3H|$@HD$@HHHHȀ9\uHɀ9\tHD$@H;r Hɀ9\uLD$@HT$0H$@LHD$  H$@s HAHH HH$PH3H$H`_H\$Hl$Ht$H|$ ATAUAVH HH3LHPHH 3HA} LE3HetDKHPu+H@t[@8tEtI@\u@"u@u3E@2DtLDz\H H3@t@.H뚅tLDz\H H3AEIcEHI4@t& tKHu;GH\$@Hl$HHt$PH|$XIH A^A]A\H(u !t36H(H\$WH33HHL$pDGh3҉$HD$PHD$XHD$`WH D$phL\$PHD$pL\$HHD$@H|$8H|$0E3E3H3ɉ|$(D$ u(HHH`r3H$H_ËD$`HL$P _HL$PH$Du(H,HH`3H$H_Ë$H$H_H\$Hl$Ht$WATAUH LH3IIcH;HHLLQ}J+H^ CL;CL;{;tHL$0HIЅ~sA}csmu(H=tH 5tIKAHIBIF@SMcMHD$(IF(IMHHD$ BH;>sj>3fIy 3I+9.vTH^KL;r>CL;s6H;r H;sAE u/;t H;t#HT$xIDZIDCMAH;.rL\$@I[0Ik@IsHIA_A^A]A\_H\$H|$ATH H!BH0H;u3H`H;uwnC ucL%HcI<u+JIHuHC HCHC$CI C$CHKH K3H\$0H|$8H A\̅t0SH b HsHcc$H#HcH [@SH B@It HzuA&Bx HH,u H [̅~LH\$Hl$Ht$WH II@LH@?tH\$0Hl$8Ht$@H _H\$Hl$Ht$WH A@@IIHt IxuA7~3MLHHŃ?u=8*uLHֱ?H\$0Hl$8Ht$@H _H\$UVWATAUAVAWHHH3H$3HHL$hHHL$xIMD$`DD$TDD$HD$XD$PdE3I;uA3E3E333H\$ 8$tH$AC@L H HwA;t(t#LcL sIAHMkXMɀC LL PA@8u)A;ttHcHƒHHkXICB8tA3E3E333H\$ 8$tH$A1E3I;t@/ADT$@DT$DAL$A:H$AHA;H$E