thank you @mkrieger1 and @Charles Duffy for your comments! will look into it.
Regarding the subprocess task I am totally aligned with the need to "convert" it to something async (your links will help).
Actually, my question is more related on how to orchestrate the following use-case with regards to file_parts inputs (see first message) (sorry I wasn't clear enough):
Download file_1 parts
Then, Download file_2 parts AND (simultaneously) Extract file_1 parts
Then Extract file_2 parts
What I have in mind is that the step(s) in the middle can be achieved with a TaskGroup
async with asyncio.TaskGroup() as tg:
task1 = tg.create_task(self.downlad(["file_2.7z.001", "file_2.7z.002"]))
task2 = tg.create_task(self.extract(["file_1.7z.001", "file_1.7z.002"]))
But as for the first (download only) and last part (extract only) how to achieve such orchestration?
Thank you!