opt = argparse.ArgumentParser() opt.add_argument( 'dir', help= 'The directory to scan for *.dmi files with an excess number of icon states.' ) args = opt.parse_args() if (not path.isdir(args.dir)): print('Not a directory') sys.exit(1) failed = False logging.getLogger().setLevel( logging.ERROR) # we don't care that byond is bad at pngs # This section parses all *.dmi files in the given directory, recursively. for root, subdirs, files in walk(args.dir): for filename in files: if not filename.endswith('.dmi'): continue file_path = path.join(root, filename) dmi = DMI(file_path) dmi.loadMetadata() number_of_icon_states = len(dmi.states) if number_of_icon_states > 512: failed = True print("{0} had too many icon states. {1}/512".format( file_path, number_of_icon_states)) if failed: sys.exit(1)