77import subprocess
88import tempfile
99import tqdm
10- import json
1110from typing import IO , Dict , Optional , Tuple
1211import zipfile
1312from datetime import datetime
3534
3635LTP_DOWNLOAD_VERSION = 'latest'
3736LT_SNAPSHOT_CURRENT_VERSION = '6.7-SNAPSHOT'
38- SNAPSHOT_MAP_FILE = "snapshots.json"
3937
4038JAVA_VERSION_REGEX = re .compile (
4139 r'^(?:java|openjdk) version "(?P<major1>\d+)(|\.(?P<major2>\d+)\.[^"]+)"' ,
@@ -206,6 +204,7 @@ def download_lt(language_tool_version: Optional[str] = LTP_DOWNLOAD_VERSION) ->
206204 LTP_DOWNLOAD_VERSION is used.
207205 :type language_tool_version: Optional[str]
208206 :raises AssertionError: If the download folder is not a directory.
207+ :raises ValueError: If the specified version format is invalid.
209208 """
210209
211210 confirm_java_compatibility (language_tool_version )
@@ -228,12 +227,20 @@ def download_lt(language_tool_version: Optional[str] = LTP_DOWNLOAD_VERSION) ->
228227 if re .match (r'^\d+\.\d+$' , version ):
229228 filename = FILENAME_RELEASE .format (version = version )
230229 language_tool_download_url = urljoin (BASE_URL_RELEASE , filename )
231- dirname , _ = os .path .splitext (filename )
232- extract_path = os .path .join (download_folder , dirname )
233- if extract_path in old_path_list :
234- return
235- elif version == 'latest' :
230+ elif version == "latest" :
236231 filename = FILENAME_SNAPSHOT .format (version = version )
232+ language_tool_download_url = urljoin (BASE_URL_SNAPSHOT , filename )
233+ else :
234+ raise ValueError (
235+ f"You can only download a specific version of LanguageTool if it is "
236+ f"formatted like 'x.y' (e.g. '5.4'). The version you provided is { version } ."
237+ f"You can also use 'latest' to download the latest snapshot of LanguageTool."
238+ )
239+ dirname , _ = os .path .splitext (filename )
240+ dirname = dirname .replace ('latest' , LT_SNAPSHOT_CURRENT_VERSION )
241+ if version == "latest" :
237242 dirname = f"LanguageTool-{ LT_SNAPSHOT_CURRENT_VERSION } "
243+ extract_path = os .path .join (download_folder , dirname )
238244
239- download_zip (language_tool_download_url , download_folder )
245+ if extract_path not in old_path_list :
246+ download_zip (language_tool_download_url , download_folder )
0 commit comments