1
1
from distutils .dir_util import copy_tree
2
+ from typing import Optional
3
+ import distro
2
4
import logging
3
5
import os
4
6
import platform
8
10
from zipfile import ZipFile
9
11
10
12
11
- class Installer :
13
+ class Windows :
12
14
base_link = 'http://apertium.projectjj.com/{}'
13
15
14
- def __init__ (self , languages ): # type: (Installer, list) -> None
16
+ def __init__ (self , languages : list ) -> None :
15
17
self ._install_path = os .getenv ('LOCALAPPDATA' )
16
18
self ._apertium_path = os .path .join (self ._install_path , 'apertium-all-dev' )
17
19
self ._download_path = tempfile .mkdtemp ()
@@ -20,7 +22,7 @@ def __init__(self, languages): # type: (Installer, list) -> None
20
22
self ._logger = logging .getLogger ()
21
23
self ._logger .setLevel (logging .DEBUG )
22
24
23
- def _download_zips (self , download_files , extract_path ): # type: (Installer, dict, str) -> None
25
+ def _download_zips (self , download_files : dict , extract_path : Optional [ str ] ) -> None :
24
26
for zip_name , zip_link in download_files .items ():
25
27
zip_download_path = os .path .join (self ._download_path , zip_name )
26
28
urlretrieve (Installer .base_link .format (zip_link ), filename = zip_download_path )
@@ -33,7 +35,7 @@ def _download_zips(self, download_files, extract_path): # type: (Installer, dic
33
35
os .remove (zip_download_path )
34
36
self ._logger .info ('%s removed' , zip_name )
35
37
36
- def _download_apertium_windows (self ): # type: (Installer) -> None
38
+ def _download_apertium_windows (self ) -> None :
37
39
"""Installs Apertium-all-dev to %localappdata%"""
38
40
39
41
apertium_windows = {
@@ -42,7 +44,7 @@ def _download_apertium_windows(self): # type: (Installer) -> None
42
44
43
45
self ._download_zips (apertium_windows , self ._install_path )
44
46
45
- def _download_package (self ): # type: (Installer) -> None
47
+ def _download_package (self ) -> None :
46
48
"""Installs Language Data to Apertium"""
47
49
48
50
if platform .system () == 'Windows' :
@@ -67,7 +69,7 @@ def _download_package(self): # type: (Installer) -> None
67
69
68
70
shutil .rmtree (os .path .join (self ._download_path , 'usr' ))
69
71
70
- def _edit_modes (self ): # type: (Installer) -> None
72
+ def _edit_modes (self ) -> None :
71
73
r"""The mode files need to be modified before being used on Windows System
72
74
73
75
1. Replace /usr/share with %localappdata%\apertium-all-dev\share
0 commit comments