£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊǍí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶êםӼ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowЍø^d™ý½ßB7áyMä9ÜÖUã !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! """ Generate zip test data files. """ import zipfile import zipp def make_zip_file(tree, dst): """ Zip the files in tree into a new zipfile at dst. """ with zipfile.ZipFile(dst, 'w') as zf: for name, contents in walk(tree): zf.writestr(name, contents) zipp.CompleteDirs.inject(zf) return dst def walk(tree, prefix=''): for name, contents in tree.items(): if isinstance(contents, dict): yield from walk(contents, prefix=f'{prefix}{name}/') else: yield f'{prefix}{name}', contents