33
33
34
34
version = '3.9.2'
35
35
major_minor_version = '.' .join (version .split ('.' )[:2 ]) # e.g. '3.9.2' -> '3.9'
36
- base = 'https://www.python .org/ftp/ python/%s/ ' % version
37
- revision = '3 '
36
+ download_url = 'https://www.nuget .org/api/v2/package/ python/%s' % version
37
+ revision = '4 '
38
38
39
39
pywin32_version = '227'
40
40
pywin32_base = 'https://github.com/mhammond/pywin32/releases/download/b%s/' % pywin32_version
44
44
45
45
def unzip_cmd ():
46
46
# Use 7-Zip if available (https://www.7-zip.org/)
47
- sevenzip = os .path .join (os .getenv ('ProgramFiles' ), '7-Zip' , '7z.exe' )
47
+ sevenzip = os .path .join (os .getenv ('ProgramFiles' , '' ), '7-Zip' , '7z.exe' )
48
48
if os .path .isfile (sevenzip ):
49
49
return [sevenzip , 'x' ]
50
50
# Fall back to 'unzip' tool
@@ -53,52 +53,49 @@ def unzip_cmd():
53
53
54
54
def zip_cmd ():
55
55
# Use 7-Zip if available (https://www.7-zip.org/)
56
- sevenzip = os .path .join (os .getenv ('ProgramFiles' ), '7-Zip' , '7z.exe' )
56
+ sevenzip = os .path .join (os .getenv ('ProgramFiles' , '' ), '7-Zip' , '7z.exe' )
57
57
if os .path .isfile (sevenzip ):
58
58
return [sevenzip , 'a' , '-mx9' ]
59
59
# Fall back to 'zip' tool
60
60
return ['zip' , '-rq' ]
61
61
62
62
63
- def make_python_patch (arch ):
64
- if arch == 'amd64' :
65
- pywin32_filename = 'pywin32-%s.win-%s-py%s.exe' % (pywin32_version , arch , major_minor_version )
66
- else :
67
- pywin32_filename = 'pywin32-%s.%s-py%s.exe' % (pywin32_version , arch , major_minor_version )
68
- filename = 'python-%s-embed-%s.zip' % (version , arch )
69
- out_filename = 'python-%s-%s-embed-%s+pywin32.zip' % (version , revision , arch )
63
+ def make_python_patch ():
64
+ pywin32_filename = 'pywin32-%s.win-amd64-py%s.exe' % (pywin32_version , major_minor_version )
65
+ filename = 'python-%s-amd64.zip' % (version )
66
+ out_filename = 'python-%s-%s-amd64+pywin32.zip' % (version , revision )
70
67
if not os .path .exists (pywin32_filename ):
71
- download_url = pywin32_base + pywin32_filename
72
- print ('Downloading pywin32: ' + download_url )
73
- urllib .request .urlretrieve (download_url , pywin32_filename )
68
+ url = pywin32_base + pywin32_filename
69
+ print ('Downloading pywin32: ' + url )
70
+ urllib .request .urlretrieve (url , pywin32_filename )
74
71
75
72
if not os .path .exists (filename ):
76
- download_url = base + filename
77
73
print ('Downloading python: ' + download_url )
78
74
urllib .request .urlretrieve (download_url , filename )
79
75
80
- os .mkdir ('python-embed' )
81
- check_call (unzip_cmd () + [os .path .abspath (filename )], cwd = 'python-embed' )
82
- os .remove (os .path .join ('python-embed' , 'python%s._pth' % major_minor_version .replace ('.' , '' )))
76
+ os .mkdir ('python-nuget' )
77
+ check_call (unzip_cmd () + [os .path .abspath (filename )], cwd = 'python-nuget' )
83
78
84
79
os .mkdir ('pywin32' )
85
80
rtn = subprocess .call (unzip_cmd () + [os .path .abspath (pywin32_filename )], cwd = 'pywin32' )
86
81
assert rtn in [0 , 1 ]
87
82
88
- os .mkdir (os .path .join ('python-embed ' , 'lib' ))
89
- shutil .move (os .path .join ('pywin32' , 'PLATLIB' ), os .path .join ('python-embed ' , 'lib ' , 'site-packages' ))
83
+ os .mkdir (os .path .join ('python-nuget ' , 'lib' ))
84
+ shutil .move (os .path .join ('pywin32' , 'PLATLIB' ), os .path .join ('python-nuget ' , 'toolss' , 'Lib ' , 'site-packages' ))
90
85
91
- check_call (zip_cmd () + [os .path .join ('..' , out_filename ), '.' ], cwd = 'python-embed ' )
86
+ check_call (zip_cmd () + [os .path .join ('..' , '..' , out_filename ), '.' ], cwd = 'python-nuget/tools ' )
92
87
93
88
# cleanup if everything went fine
94
- shutil .rmtree ('python-embed ' )
89
+ shutil .rmtree ('python-nuget ' )
95
90
shutil .rmtree ('pywin32' )
96
91
97
- upload_url = upload_base + out_filename
98
- print ('Uploading: ' + upload_url )
99
- cmd = ['gsutil' , 'cp' , '-n' , out_filename , upload_url ]
100
- print (' ' .join (cmd ))
101
- check_call (cmd )
92
+ print ('Created: %s' % out_filename )
93
+ if '--upload' in sys .argv :
94
+ upload_url = upload_base + out_filename
95
+ print ('Uploading: ' + upload_url )
96
+ cmd = ['gsutil' , 'cp' , '-n' , out_filename , upload_url ]
97
+ print (' ' .join (cmd ))
98
+ check_call (cmd )
102
99
103
100
104
101
def build_python ():
@@ -169,14 +166,16 @@ def build_python():
169
166
for lib in glob .glob (os .path .join (dirname , 'lib' , 'lib*.a' )):
170
167
os .remove (lib )
171
168
check_call (['tar' , 'zcvf' , tarball , dirname ])
172
- print ('Uploading: ' + upload_base + tarball )
173
- check_call (['gsutil' , 'cp' , '-n' , tarball , upload_base + tarball ])
169
+
170
+ print ('Created: %s' % tarball )
171
+ if '--upload' in sys .argv :
172
+ print ('Uploading: ' + upload_base + tarball )
173
+ check_call (['gsutil' , 'cp' , '-n' , tarball , upload_base + tarball ])
174
174
175
175
176
176
def main ():
177
- if sys .platform .startswith ('win' ):
178
- for arch in ('amd64' , 'win32' ):
179
- make_python_patch (arch )
177
+ if sys .platform .startswith ('win' ) or '--win32' in sys .argv :
178
+ make_python_patch ()
180
179
else :
181
180
build_python ()
182
181
return 0
0 commit comments