2
2
from pathlib import Path
3
3
import requests
4
4
import json
5
- from os import environ
6
5
from zipfile import ZipFile
7
6
from typing import Any
8
7
from pydantic import BaseModel
@@ -36,6 +35,12 @@ class Config:
36
35
extra = "forbid"
37
36
38
37
38
+ class TaskGroupReadV2 (BaseModel ):
39
+ pkg_name : str
40
+ version : Optional [str ] = None
41
+ task_list : list [TaskReadV2 ]
42
+
43
+
39
44
def parse_wheel_filename (wheel_path : str ) -> dict [str , str ]:
40
45
"""
41
46
Given a wheel-file name or path, extract distribution and version.
@@ -210,12 +215,12 @@ def _get_task_type(
210
215
if not (source .startswith ("#" ) or source == "" )
211
216
]
212
217
213
- TASKS = []
218
+ TASK_GROUPS = []
214
219
for source in sources :
215
220
t_start = time .perf_counter ()
216
221
print (f"START processing { source = } " )
217
222
try :
218
- new_tasks = []
223
+ task_list = []
219
224
data = get_package_info (source )
220
225
pkg_name = data ["name" ]
221
226
pkg_version = data .get ("version" )
@@ -229,16 +234,26 @@ def _get_task_type(
229
234
new_task ["version" ] = pkg_version
230
235
new_task ["type" ] = _get_task_type (task )
231
236
TaskReadV2 (** new_task )
232
- new_tasks .append (new_task )
237
+ task_list .append (new_task )
238
+
239
+ task_group = dict (
240
+ pkg_name = pkg_name ,
241
+ version = pkg_version ,
242
+ task_list = task_list ,
243
+ )
233
244
except Exception as e :
234
245
print (f"ERROR, skip.\n Original error:\n { str (e )} " )
235
- TASKS .extend (new_tasks )
246
+
247
+ TaskGroupReadV2 (** task_group )
248
+
249
+ TASK_GROUPS .append (task_group )
250
+
236
251
t_end = time .perf_counter ()
237
252
print (f"END processing { source = } - elapsed { t_end - t_start :.3f} s." )
238
253
print ()
239
254
240
255
output_file = Path (__file__ ).parent / "tasks_data.json"
241
256
with output_file .open ("w" ) as f :
242
- json .dump (TASKS , f , indent = 2 )
257
+ json .dump (TASK_GROUPS , f , indent = 2 )
243
258
244
259
DOWNLOAD_FOLDER .rmdir ()
0 commit comments