~ubuntu-branches/ubuntu/oneiric/lxml/oneiric

« back to all changes in this revision

Viewing changes to ez_setup.py

  • Committer: Bazaar Package Importer
  • Author(s): Matthias Klose
  • Date: 2009-08-27 09:09:23 UTC
  • mfrom: (1.3.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20090827090923-fwhvka191ir73s3x
Tags: 2.2.2-1
* New upstream version. Closes: #525961.
  - Includes html5parser. Closes: #521714.

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
This file can also be run as a script to install or upgrade setuptools.
15
15
"""
16
16
import sys
17
 
DEFAULT_VERSION = "0.6c3"
18
 
DEFAULT_URL     = "http://cheeseshop.python.org/packages/%s/s/setuptools/" % sys.version[:3]
 
17
DEFAULT_VERSION = "0.6c9"
 
18
DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
19
19
 
20
20
md5_data = {
21
21
    'setuptools-0.6b1-py2.3.egg': '8822caf901250d848b996b7f25c6e6ca',
33
33
    'setuptools-0.6c3-py2.3.egg': 'f181fa125dfe85a259c9cd6f1d7b78fa',
34
34
    'setuptools-0.6c3-py2.4.egg': 'e0ed74682c998bfb73bf803a50e7b71e',
35
35
    'setuptools-0.6c3-py2.5.egg': 'abef16fdd61955514841c7c6bd98965e',
 
36
    'setuptools-0.6c4-py2.3.egg': 'b0b9131acab32022bfac7f44c5d7971f',
 
37
    'setuptools-0.6c4-py2.4.egg': '2a1f9656d4fbf3c97bf946c0a124e6e2',
 
38
    'setuptools-0.6c4-py2.5.egg': '8f5a052e32cdb9c72bcf4b5526f28afc',
 
39
    'setuptools-0.6c5-py2.3.egg': 'ee9fd80965da04f2f3e6b3576e9d8167',
 
40
    'setuptools-0.6c5-py2.4.egg': 'afe2adf1c01701ee841761f5bcd8aa64',
 
41
    'setuptools-0.6c5-py2.5.egg': 'a8d3f61494ccaa8714dfed37bccd3d5d',
 
42
    'setuptools-0.6c6-py2.3.egg': '35686b78116a668847237b69d549ec20',
 
43
    'setuptools-0.6c6-py2.4.egg': '3c56af57be3225019260a644430065ab',
 
44
    'setuptools-0.6c6-py2.5.egg': 'b2f8a7520709a5b34f80946de5f02f53',
 
45
    'setuptools-0.6c7-py2.3.egg': '209fdf9adc3a615e5115b725658e13e2',
 
46
    'setuptools-0.6c7-py2.4.egg': '5a8f954807d46a0fb67cf1f26c55a82e',
 
47
    'setuptools-0.6c7-py2.5.egg': '45d2ad28f9750e7434111fde831e8372',
 
48
    'setuptools-0.6c8-py2.3.egg': '50759d29b349db8cfd807ba8303f1902',
 
49
    'setuptools-0.6c8-py2.4.egg': 'cba38d74f7d483c06e9daa6070cce6de',
 
50
    'setuptools-0.6c8-py2.5.egg': '1721747ee329dc150590a58b3e1ac95b',
 
51
    'setuptools-0.6c9-py2.3.egg': 'a83c4020414807b496e4cfbe08507c03',
 
52
    'setuptools-0.6c9-py2.4.egg': '260a2be2e5388d66bdaee06abec6342a',
 
53
    'setuptools-0.6c9-py2.5.egg': 'fe67c3e5a17b12c0e7c541b7ea43a8e6',
 
54
    'setuptools-0.6c9-py2.6.egg': 'ca37b1ff16fa2ede6e19383e7b59245a',
36
55
}
37
56
 
38
57
import sys, os
 
58
try: from hashlib import md5
 
59
except ImportError: from md5 import md5
39
60
 
40
61
def _validate_md5(egg_name, data):
41
62
    if egg_name in md5_data:
42
 
        from md5 import md5
43
63
        digest = md5(data).hexdigest()
44
64
        if digest != md5_data[egg_name]:
45
65
            print >>sys.stderr, (
49
69
            sys.exit(2)
50
70
    return data
51
71
 
52
 
 
53
72
def use_setuptools(
54
73
    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
55
74
    download_delay=15
65
84
    this routine will print a message to ``sys.stderr`` and raise SystemExit in
66
85
    an attempt to abort the calling script.
67
86
    """
68
 
    try:
69
 
        import setuptools
70
 
        if setuptools.__version__ == '0.0.1':
71
 
            print >>sys.stderr, (
72
 
            "You have an obsolete version of setuptools installed.  Please\n"
73
 
            "remove it from your system entirely before rerunning this script."
74
 
            )
75
 
            sys.exit(2)
76
 
    except ImportError:
 
87
    was_imported = 'pkg_resources' in sys.modules or 'setuptools' in sys.modules
 
88
    def do_download():
77
89
        egg = download_setuptools(version, download_base, to_dir, download_delay)
78
90
        sys.path.insert(0, egg)
79
91
        import setuptools; setuptools.bootstrap_install_from = egg
80
 
 
81
 
    import pkg_resources
82
 
    try:
83
 
        pkg_resources.require("setuptools>="+version)
84
 
 
 
92
    try:
 
93
        import pkg_resources
 
94
    except ImportError:
 
95
        return do_download()       
 
96
    try:
 
97
        pkg_resources.require("setuptools>="+version); return
85
98
    except pkg_resources.VersionConflict, e:
86
 
        # XXX could we install in a subprocess here?
87
 
        print >>sys.stderr, (
 
99
        if was_imported:
 
100
            print >>sys.stderr, (
88
101
            "The required version of setuptools (>=%s) is not available, and\n"
89
102
            "can't be installed while this script is running. Please install\n"
90
 
            " a more recent version first.\n\n(Currently using %r)"
91
 
        ) % (version, e.args[0])
92
 
        sys.exit(2)
 
103
            " a more recent version first, using 'easy_install -U setuptools'."
 
104
            "\n\n(Currently using %r)"
 
105
            ) % (version, e.args[0])
 
106
            sys.exit(2)
 
107
        else:
 
108
            del pkg_resources, sys.modules['pkg_resources']    # reload ok
 
109
            return do_download()
 
110
    except pkg_resources.DistributionNotFound:
 
111
        return do_download()
93
112
 
94
113
def download_setuptools(
95
114
    version=DEFAULT_VERSION, download_base=DEFAULT_URL, to_dir=os.curdir,
138
157
            if dst: dst.close()
139
158
    return os.path.realpath(saveto)
140
159
 
 
160
 
 
161
 
 
162
 
 
163
 
 
164
 
 
165
 
 
166
 
 
167
 
 
168
 
 
169
 
 
170
 
 
171
 
 
172
 
 
173
 
 
174
 
 
175
 
 
176
 
 
177
 
 
178
 
 
179
 
 
180
 
 
181
 
 
182
 
 
183
 
 
184
 
 
185
 
 
186
 
 
187
 
 
188
 
 
189
 
 
190
 
 
191
 
 
192
 
 
193
 
 
194
 
141
195
def main(argv, version=DEFAULT_VERSION):
142
196
    """Install or upgrade setuptools and EasyInstall"""
143
 
 
144
197
    try:
145
198
        import setuptools
146
199
    except ImportError:
155
208
                os.unlink(egg)
156
209
    else:
157
210
        if setuptools.__version__ == '0.0.1':
158
 
            # tell the user to uninstall obsolete version
159
 
            use_setuptools(version)
 
211
            print >>sys.stderr, (
 
212
            "You have an obsolete version of setuptools installed.  Please\n"
 
213
            "remove it from your system entirely before rerunning this script."
 
214
            )
 
215
            sys.exit(2)
160
216
 
161
217
    req = "setuptools>="+version
162
218
    import pkg_resources
177
233
            print "Setuptools version",version,"or greater has been installed."
178
234
            print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
179
235
 
180
 
 
181
 
 
182
236
def update_md5(filenames):
183
237
    """Update our built-in md5 registry"""
184
238
 
185
239
    import re
186
 
    from md5 import md5
187
240
 
188
241
    for name in filenames:
189
242
        base = os.path.basename(name)
220
273
 
221
274
 
222
275
 
 
276