1
1
import platform
2
2
import os
3
+ import sys
3
4
4
5
from urllib .request import urlopen
5
6
@@ -20,21 +21,31 @@ class PostInstallCommand(install):
20
21
21
22
def run (self ):
22
23
version_tag = 'v{}' .format (version )
23
- url_template = 'https://github.com/LeetCode-OpenSource/py-sourcemap/releases/download/{tag}/py_sourcemap.cpython- {py_ver}-{platform}.so '
24
+ url_template = 'https://github.com/LeetCode-OpenSource/py-sourcemap/releases/download/{tag}/py_sourcemap.{py_ver}-{platform}.{ext} '
24
25
(major , minor , _ ) = platform .python_version_tuple ()
25
26
if major != '3' or not (minor in ['5' , '6' , '7' ]):
26
27
raise Exception ('Only python 3.5, 3.6, 3.7 are supported' )
27
- py_version = '{}{}m' .format (major , minor )
28
28
system = platform .system ()
29
29
if system == 'Linux' :
30
+ py_version = 'cpython-{}{}m' .format (major , minor )
30
31
usr_platform = 'x86_64-linux-gnu'
32
+ ext = 'so'
31
33
elif system == 'Darwin' :
34
+ py_version = 'cpython-{}{}m' .format (major , minor )
32
35
usr_platform = 'x86_64-apple-darwin'
36
+ ext = 'so'
37
+ elif system == 'Windows' :
38
+ py_version = 'cp{}{}' .format (major , minor )
39
+ # from https://docs.python.org/3/library/platform.html
40
+ is_64bits = sys .maxsize > 2 ** 32
41
+ usr_platform = 'win_amd64' if is_64bits else 'win32'
42
+ ext = 'pyd'
33
43
else :
34
- raise Exception ('This lib is only supporting Linux & macOS for now.' )
44
+ raise Exception ('Your system is unrecognized: {}' . format ( system ) )
35
45
download_url = url_template .format (tag = version_tag ,
36
46
py_ver = py_version ,
37
- platform = usr_platform )
47
+ platform = usr_platform ,
48
+ ext = ext )
38
49
dist = os .path .join (self .build_lib , 'py_sourcemap/py_sourcemap.so' )
39
50
if not local_build :
40
51
with open (dist , 'wb' ) as f :
0 commit comments