Python zipfile.extract() doesn't extract all files
The first place to look is the documentation:
ZipFile.extractall([path[, members[, pwd]]])
Applying that to your situation, I'd try:
def unzip(source_filename, dest_dir):
with zipfile.ZipFile(source_filename) as zf:
zf.extractall(dest_dir)