def upload_files(drive: GoogleDrive, source: str, target: str='') -> None: """Uploads file(s) to google drive Uploads all files to the target folder, even if they are contained in distinct folders originally. Args: drive: The google drive in question source: glob-expression of file(s) to be uploaded. target: Target folder in the google drive (if non-existent will be created) """ file_list = glob.glob(source) target_folder = drive.make_dir(target) for f in file_list: name = os.path.split(f)[-1] metadata = { 'title': name, 'parents': [{'id': target_folder['id']}] } file = drive.CreateFile(metadata) file.Upload() file.SetContentFile(f) file.Upload()