4
4
import platform
5
5
import shutil
6
6
import subprocess
7
+ import sysconfig
7
8
import tempfile
8
- from typing import Optional
9
9
from urllib .request import urlretrieve
10
10
from zipfile import ZipFile
11
11
@@ -22,7 +22,7 @@ def __init__(self) -> None:
22
22
self ._logger = logging .getLogger ()
23
23
self ._logger .setLevel (logging .DEBUG )
24
24
25
- def _download_zip (self , download_files : dict , extract_path : Optional [ str ] ) -> None :
25
+ def _download_zip (self , download_files : dict , extract_path : str ) -> None :
26
26
for zip_name , zip_link in download_files .items ():
27
27
zip_download_path = os .path .join (self ._download_path , zip_name )
28
28
urlretrieve (Windows .base_link .format (zip_link ), filename = zip_download_path )
@@ -94,9 +94,25 @@ def install_apertium_module(self, language: str) -> None:
94
94
self ._download_package (language )
95
95
self ._edit_modes ()
96
96
97
- def install_wrapper (self , swig_wrapper : str ) -> None :
98
- # TODO: create installer for wrappers on windows
99
- pass
97
+ def install_wrapper (self , swig_wrapper : str = '' ) -> None :
98
+ wrapper_link = 'https://codeload.github.com/Vaydheesh/wrappers/zip/windows'
99
+ zip_name = 'windows.zip'
100
+ zip_download_path = os .path .join (os .environ ['temp' ], zip_name )
101
+ urlretrieve (wrapper_link , filename = zip_download_path )
102
+
103
+ extract_path = tempfile .mkdtemp ()
104
+ # Extract the zip
105
+ with ZipFile (zip_download_path ) as zip_file :
106
+ zip_file .extractall (path = extract_path )
107
+ self ._logger .info ('%s Extraction completed' , zip_name )
108
+
109
+ self ._logger .info ('Copying wrapper to site-packages' )
110
+ site_packages = sysconfig .get_paths ()['purelib' ]
111
+ for directory in os .listdir (extract_path ):
112
+ source = os .path .join (extract_path , directory )
113
+ destination = site_packages
114
+ copy_tree (source , destination )
115
+ self ._logger .info ('%s -> %s' , source , destination )
100
116
101
117
102
118
class Ubuntu :
0 commit comments