Show More
@@ -52,6 +52,7 b' from glob import glob' | |||||
52 | if os.path.exists('MANIFEST'): os.remove('MANIFEST') |
|
52 | if os.path.exists('MANIFEST'): os.remove('MANIFEST') | |
53 |
|
53 | |||
54 | from distutils.core import setup |
|
54 | from distutils.core import setup | |
|
55 | from distutils.command.upload import upload | |||
55 |
|
56 | |||
56 | # On Python 3, we need distribute (new setuptools) to do the 2to3 conversion |
|
57 | # On Python 3, we need distribute (new setuptools) to do the 2to3 conversion | |
57 | if PY3: |
|
58 | if PY3: | |
@@ -171,6 +172,31 b" setup_args['package_data'] = package_data" | |||||
171 | setup_args['data_files'] = data_files |
|
172 | setup_args['data_files'] = data_files | |
172 |
|
173 | |||
173 | #--------------------------------------------------------------------------- |
|
174 | #--------------------------------------------------------------------------- | |
|
175 | # custom upload_wininst command | |||
|
176 | #--------------------------------------------------------------------------- | |||
|
177 | ||||
|
178 | class UploadWindowsInstallers(upload): | |||
|
179 | ||||
|
180 | description = "Upload Windows installers to PyPI (only used from tools/release_windows.py)" | |||
|
181 | user_options = upload.user_options + [ | |||
|
182 | ('files=', 'f', 'exe file (or glob) to upload') | |||
|
183 | ] | |||
|
184 | def initialize_options(self): | |||
|
185 | upload.initialize_options(self) | |||
|
186 | meta = self.distribution.metadata | |||
|
187 | base = '{name}-{version}'.format( | |||
|
188 | name=meta.get_name(), | |||
|
189 | version=meta.get_version() | |||
|
190 | ) | |||
|
191 | self.files = os.path.join('dist', '%s.*.exe' % base) | |||
|
192 | ||||
|
193 | def run(self): | |||
|
194 | for dist_file in glob(self.files): | |||
|
195 | self.upload_file('bdist_wininst', 'any', dist_file) | |||
|
196 | ||||
|
197 | setup_args['cmdclass']['upload_wininst'] = UploadWindowsInstallers | |||
|
198 | ||||
|
199 | #--------------------------------------------------------------------------- | |||
174 | # Handle scripts, dependencies, and setuptools specific things |
|
200 | # Handle scripts, dependencies, and setuptools specific things | |
175 | #--------------------------------------------------------------------------- |
|
201 | #--------------------------------------------------------------------------- | |
176 |
|
202 |
@@ -23,10 +23,10 b' except ImportError:' | |||||
23 |
|
23 | |||
24 | github = '--github' in sys.argv |
|
24 | github = '--github' in sys.argv | |
25 |
|
25 | |||
26 |
cmd_t = "{py} setup.py bdist_wininst --plat-name= |
|
26 | cmd_t = "{py} setup.py bdist_wininst --plat-name={plat}" | |
27 |
|
27 | |||
28 |
|
|
28 | pypi = '--pypi' in sys.argv | |
29 | cmd_t += ' --upload' |
|
29 | pypi_cmd_t = "python setup.py upload_wininst -f {fname}" | |
30 |
|
30 | |||
31 | for py in ['python', 'python3']: |
|
31 | for py in ['python', 'python3']: | |
32 | # deliberately mangle the name, |
|
32 | # deliberately mangle the name, | |
@@ -36,11 +36,17 b" for py in ['python', 'python3']:" | |||||
36 | shutil.rmtree('build') |
|
36 | shutil.rmtree('build') | |
37 | except OSError: |
|
37 | except OSError: | |
38 | pass |
|
38 | pass | |
39 |
for plat in [' |
|
39 | for plat in ['win32', 'win-amd64']: | |
40 | cmd = cmd_t.format(**locals()) |
|
40 | cmd = cmd_t.format(**locals()) | |
41 | sh(cmd) |
|
41 | sh(cmd) | |
|
42 | orig = glob.glob(os.path.join('dist', 'ipython-*.{plat}.exe'.format(**locals())))[0] | |||
|
43 | mangled = orig.replace('.{plat}.exe'.format(**locals()), | |||
|
44 | '.py{v}-{plat}.exe'.format(**locals()) | |||
|
45 | ) | |||
|
46 | os.rename(orig, mangled) | |||
|
47 | if pypi: | |||
|
48 | sh(pypi_cmd_t.format(fname=mangled)) | |||
42 | if github and gh_api: |
|
49 | if github and gh_api: | |
43 | exe = glob.glob(os.path.join("dist", "ipython-*{v}-{plat}.exe".format(**locals())))[0] |
|
50 | print ("Uploading %s to GitHub" % mangled) | |
44 | print ("Uploading %s to GitHub" % exe) |
|
|||
45 | desc = "IPython Installer for Python {v}.x on {plat}".format(**locals()) |
|
51 | desc = "IPython Installer for Python {v}.x on {plat}".format(**locals()) | |
46 |
gh_api.post_download('ipython/ipython', |
|
52 | gh_api.post_download('ipython/ipython', mangled, description=desc) |
General Comments 0
You need to be logged in to leave comments.
Login now