Hej, hoppas det är okej att jag ger några kommentarer:
- gopro_found i find_gopro behövs inte då du returnerar så fort du hittat din gopro. Om for loop avslutas utan att du hittat en gopro så vet du att ingen gopro hittats. Att köra os.exit här är inte optimalt, bättre vore att skicka en error tillbaka till main som sen avslutar programmet beroende på vad som returnerats.
- att koppla ihop find_gopro direkk som input till get_media_files skapar du onödig "coupling". Låt main plocka upp returvärdet från första funktionen, validera, och sen starta nästa.
- du har en extra och onödig indenteringsnivå i get_media_files då du skickar in resultatet från find_gopro som argument in i funktionen. Den extra nivån kommer från "if gopro_path". Du kan få bort den indenteringen genom att ändra till "if not gopro_path:" och isåfall körs en tidig return. Men ännu bättre hade varit att ta bort den helt då din find_gopro kör os.exit om ingen gopro hittas, så denna funktionen körs ändå bara om gopro_path har ett värde.
Du kan få bort en indentering till grnom att ändra "if endswith.mp4 yill not enddwith.mp4". Inte lika stor skillnad, men i mitt tycke lite snyggare kod.
- destination_folder_validated gör inte vad den säger. Du ska returnera true/false men har ett gömt beteende där du också skapar en mapp om den inte redan finns. Du har också en alldeles för generell try/catch. Du bör bara fånga specifika exceptions som kan uppstå när den försöker skapa mappen men misslyckas. Du kan också använda "exist_ok: true" i makedirs så att den inte ger error om mappen redan finns.
Överlag väldigt bra skriven kod, det märks att du har bra koll på vad du gör. Snyggt jobbat