@@ -137,42 +137,106 @@ class TLSLibrary:
137137 "name" : "v1.11.2" ,
138138 "tag_name" : "v1.11.2" ,
139139 "assets" : [
140- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-darwin-amd64-1.11.2.dylib' , 'name' : 'tls-client-darwin-amd64-1.11.2.dylib' },
141- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-darwin-arm64-1.11.2.dylib' , 'name' : 'tls-client-darwin-arm64-1.11.2.dylib' },
142- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-alpine-amd64-1.11.2.so' , 'name' : 'tls-client-linux-alpine-amd64-1.11.2.so' },
143- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-arm64-1.11.2.so' , 'name' : 'tls-client-linux-arm64-1.11.2.so' },
144- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-armv7-1.11.2.so' , 'name' : 'tls-client-linux-armv7-1.11.2.so' },
145- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-ubuntu-amd64-1.11.2.so' , 'name' : 'tls-client-linux-ubuntu-amd64-1.11.2.so' },
146- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-windows-32-1.11.2.dll' , 'name' : 'tls-client-windows-32-1.11.2.dll' },
147- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-windows-64-1.11.2.dll' , 'name' : 'tls-client-windows-64-1.11.2.dll' },
148- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-darwin-amd64.dylib' , 'name' : 'tls-client-xgo-1.11.2-darwin-amd64.dylib' },
149- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-darwin-arm64.dylib' , 'name' : 'tls-client-xgo-1.11.2-darwin-arm64.dylib' },
150- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-386.so' , 'name' : 'tls-client-xgo-1.11.2-linux-386.so' },
151- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-amd64.so' , 'name' : 'tls-client-xgo-1.11.2-linux-amd64.so' },
152- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm-5.so' , 'name' : 'tls-client-xgo-1.11.2-linux-arm-5.so' },
153- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm-6.so' , 'name' : 'tls-client-xgo-1.11.2-linux-arm-6.so' },
154- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm-7.so' , 'name' : 'tls-client-xgo-1.11.2-linux-arm-7.so' },
155- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm64.so' , 'name' : 'tls-client-xgo-1.11.2-linux-arm64.so' },
156- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-ppc64le.so' , 'name' : 'tls-client-xgo-1.11.2-linux-ppc64le.so' },
157- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-riscv64.so' , 'name' : 'tls-client-xgo-1.11.2-linux-riscv64.so' },
158- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-s390x.so' , 'name' : 'tls-client-xgo-1.11.2-linux-s390x.so' },
159- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-windows-386.dll' , 'name' : 'tls-client-xgo-1.11.2-windows-386.dll' },
160- {'browser_download_url' : 'https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-windows-amd64.dll' , 'name' : 'tls-client-xgo-1.11.2-windows-amd64.dll' }],
140+ {
141+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-darwin-amd64-1.11.2.dylib" ,
142+ "name" : "tls-client-darwin-amd64-1.11.2.dylib" ,
143+ },
144+ {
145+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-darwin-arm64-1.11.2.dylib" ,
146+ "name" : "tls-client-darwin-arm64-1.11.2.dylib" ,
147+ },
148+ {
149+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-alpine-amd64-1.11.2.so" ,
150+ "name" : "tls-client-linux-alpine-amd64-1.11.2.so" ,
151+ },
152+ {
153+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-arm64-1.11.2.so" ,
154+ "name" : "tls-client-linux-arm64-1.11.2.so" ,
155+ },
156+ {
157+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-armv7-1.11.2.so" ,
158+ "name" : "tls-client-linux-armv7-1.11.2.so" ,
159+ },
160+ {
161+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-linux-ubuntu-amd64-1.11.2.so" ,
162+ "name" : "tls-client-linux-ubuntu-amd64-1.11.2.so" ,
163+ },
164+ {
165+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-windows-32-1.11.2.dll" ,
166+ "name" : "tls-client-windows-32-1.11.2.dll" ,
167+ },
168+ {
169+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-windows-64-1.11.2.dll" ,
170+ "name" : "tls-client-windows-64-1.11.2.dll" ,
171+ },
172+ {
173+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-darwin-amd64.dylib" ,
174+ "name" : "tls-client-xgo-1.11.2-darwin-amd64.dylib" ,
175+ },
176+ {
177+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-darwin-arm64.dylib" ,
178+ "name" : "tls-client-xgo-1.11.2-darwin-arm64.dylib" ,
179+ },
180+ {
181+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-386.so" ,
182+ "name" : "tls-client-xgo-1.11.2-linux-386.so" ,
183+ },
184+ {
185+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-amd64.so" ,
186+ "name" : "tls-client-xgo-1.11.2-linux-amd64.so" ,
187+ },
188+ {
189+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm-5.so" ,
190+ "name" : "tls-client-xgo-1.11.2-linux-arm-5.so" ,
191+ },
192+ {
193+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm-6.so" ,
194+ "name" : "tls-client-xgo-1.11.2-linux-arm-6.so" ,
195+ },
196+ {
197+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm-7.so" ,
198+ "name" : "tls-client-xgo-1.11.2-linux-arm-7.so" ,
199+ },
200+ {
201+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-arm64.so" ,
202+ "name" : "tls-client-xgo-1.11.2-linux-arm64.so" ,
203+ },
204+ {
205+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-ppc64le.so" ,
206+ "name" : "tls-client-xgo-1.11.2-linux-ppc64le.so" ,
207+ },
208+ {
209+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-riscv64.so" ,
210+ "name" : "tls-client-xgo-1.11.2-linux-riscv64.so" ,
211+ },
212+ {
213+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-linux-s390x.so" ,
214+ "name" : "tls-client-xgo-1.11.2-linux-s390x.so" ,
215+ },
216+ {
217+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-windows-386.dll" ,
218+ "name" : "tls-client-xgo-1.11.2-windows-386.dll" ,
219+ },
220+ {
221+ "browser_download_url" : "https://github.com/bogdanfinn/tls-client/releases/download/v1.11.2/tls-client-xgo-1.11.2-windows-amd64.dll" ,
222+ "name" : "tls-client-xgo-1.11.2-windows-amd64.dll" ,
223+ },
224+ ],
161225 }
162226
163227 @staticmethod
164228 def _parse_version (version_string : str ) -> Tuple [int , ...]:
165229 """Converts a version string (e.g., "v1.11.2") to a comparable tuple (1, 11, 2)."""
166230 try :
167- parts = version_string .lstrip ('v' ).split ('.' )
231+ parts = version_string .lstrip ("v" ).split ("." )
168232 return tuple (map (int , parts ))
169233 except (ValueError , AttributeError ):
170234 return 0 , 0 , 0
171235
172236 @staticmethod
173237 def _parse_version_from_filename (filename : str ) -> Tuple [int , ...]:
174238 """Extracts and parses the version from a library filename."""
175- match = re .search (r' v?(\d+\.\d+\.\d+)' , Path (filename ).name )
239+ match = re .search (r" v?(\d+\.\d+\.\d+)" , Path (filename ).name )
176240 if match :
177241 return TLSLibrary ._parse_version (match .group (1 ))
178242 return 0 , 0 , 0
@@ -195,9 +259,7 @@ def cleanup_files(cls, keep_file: str = None):
195259 @classmethod
196260 def fetch_api (cls , version : str = None , retries : int = 3 ):
197261 def _find_release (data , version_ : str = None ):
198- releases = [
199- Release .from_kwargs (** kwargs ) for kwargs in data
200- ]
262+ releases = [Release .from_kwargs (** kwargs ) for kwargs in data ]
201263
202264 if version_ is not None :
203265 version_ = (
@@ -226,7 +288,7 @@ def _find_release(data, version_: str = None):
226288 # Use standard library's urllib to fetch API data
227289 with urllib .request .urlopen (GITHUB_API_URL , timeout = 10 ) as response :
228290 if response .status == 200 :
229- content = response .read ().decode (' utf-8' )
291+ content = response .read ().decode (" utf-8" )
230292 _find_release (json .loads (content ))
231293 break
232294 except Exception as ex :
@@ -281,7 +343,9 @@ def download(cls, version: str = None) -> str:
281343 # Use standard library's urllib to download the file
282344 with urllib .request .urlopen (download_url , timeout = 10 ) as response :
283345 if response .status != 200 :
284- raise urllib .error .URLError (f"Failed to download file: HTTP { response .status } " )
346+ raise urllib .error .URLError (
347+ f"Failed to download file: HTTP { response .status } "
348+ )
285349
286350 os .makedirs (BIN_DIR , exist_ok = True )
287351 total_size = int (response .headers .get ("content-length" , 0 ))
@@ -301,9 +365,15 @@ def download(cls, version: str = None) -> str:
301365 if total_size > 0 :
302366 percent = downloaded / total_size * 100
303367 bar_length = 50
304- filled_length = int (bar_length * downloaded // total_size )
305- bar = "=" * filled_length + '-' * (bar_length - filled_length )
306- sys .stdout .write (f'\r Downloading { destination_name } : [{ bar } ] { percent :.1f} %' )
368+ filled_length = int (
369+ bar_length * downloaded // total_size
370+ )
371+ bar = "=" * filled_length + "-" * (
372+ bar_length - filled_length
373+ )
374+ sys .stdout .write (
375+ f"\r Downloading { destination_name } : [{ bar } ] { percent :.1f} %"
376+ )
307377 sys .stdout .flush ()
308378
309379 print () # Newline after download completes
@@ -351,15 +421,20 @@ def _load_library(fp_):
351421 newest_local_version = file_version
352422 newest_local_file = file_path
353423 print (
354- f"Found newest local library: { newest_local_file } (version { '.' .join (map (str , newest_local_version ))} )" )
424+ f"Found newest local library: { newest_local_file } (version { '.' .join (map (str , newest_local_version ))} )"
425+ )
355426 else :
356427 print ("No local library found." )
357428
358429 if newest_local_version < target_version :
359430 if newest_local_file :
360- print (f"Local library is outdated. Upgrading to { LATEST_VERSION_TAG_NAME } ..." )
431+ print (
432+ f"Local library is outdated. Upgrading to { LATEST_VERSION_TAG_NAME } ..."
433+ )
361434 else :
362- print (f"Downloading required library version { LATEST_VERSION_TAG_NAME } ..." )
435+ print (
436+ f"Downloading required library version { LATEST_VERSION_TAG_NAME } ..."
437+ )
363438
364439 downloaded_fp = cls .download (version = LATEST_VERSION_TAG_NAME )
365440 if downloaded_fp :
0 commit comments