def METHOD_NAME(self):
    parser = ArgumentParser(
            description='Generate icons for various stores')
    parser.add_argument('--dir', type=str, default=None,
            help=('Output directory to generate all the icons,'
                  'defaults to the directory of the source icon'))
    parser.add_argument('--force', type=bool, default=False,
            help=('Generate all icons even if the source is not perfect.'))
    parser.add_argument('icon', type=str,
            help='Base icon (must be 1024x1024 or 512x512)')
    args = parser.parse_args()
    if not exists(args.icon):
        print('Error: No such icon file')
        sys.exit(1)
    # ensure the destination directory will be set
    if args.dir is None:
        args.dir = dirname(args.icon)
    # read the source image, and do some quality checks
    base_fn = basename(args.icon).rsplit('.', 1)[0]
    source = Image.open(args.icon)
    self.ensure_quality(source, args.force)
    for directory_name, sizeinfo in self.iterate():
        description, pattern_fn, size = sizeinfo
        print('Generate {}: {}x{}'.format(description, size, size))
        dest_dir = realpath(join(args.dir, directory_name))
        if not exists(dest_dir):
            makedirs(dest_dir)
        icon_fn = join(dest_dir, pattern_fn.format('Icon'))
        self.convert_to(source, icon_fn, size)