def main():

    parser = argparse.ArgumentParser()
    parser.add_argument('--continue', help="continue with existing built objects",
                        action='store_true', dest='continuing')
    args = parser.parse_args();

    # 'continue' is useful for debugging the build process.  some zips take a
    # long time to build, and this lets the process be restarted and catch up
    # quickly.
    #
    # The run for the actual deploy should be a clean one from scratch.
    if not args.continuing:
        if path.exists(OUTPUT_DIR):
            assert path.isdir(OUTPUT_DIR)
            print 'Removing the old website directory...'
            shutil.rmtree(OUTPUT_DIR)
        os.mkdir(OUTPUT_DIR)
        os.mkdir(path.join(OUTPUT_DIR, 'pkgs'))
        os.mkdir(path.join(OUTPUT_DIR, 'fonts'))
        os.mkdir(path.join(OUTPUT_DIR, 'fonts', 'hinted'))
        os.mkdir(path.join(OUTPUT_DIR, 'css'))
        os.mkdir(path.join(OUTPUT_DIR, 'css', 'fonts'))
        os.mkdir(path.join(OUTPUT_DIR, 'images'))
        os.mkdir(path.join(OUTPUT_DIR, 'images', 'samples'))
        os.mkdir(path.join(OUTPUT_DIR, 'js'))

    print 'Finding all fonts...'
    find_fonts()

    print 'Parsing CLDR data...'
    parse_english_labels()
    parse_supplemental_data()

    for target_platform in ['windows', 'linux', 'other']:
        print 'Target platform %s:' % target_platform

        output_object = {}
        print 'Generating data objects and CSS...'
        output_object['region'] = create_regions_object()
        output_object['lang'] = create_langs_object()

        output_object['family'], all_font_files = create_families_object(
            target_platform)

        print 'Creating comprehensive zip file...'
        output_object['pkg'] = create_package_object(
            all_font_files, target_platform)

        ############### Hot patches ###############
        # Kufi is broken for Urdu Heh goal
        # See issue #34
        output_object['lang']['ur']['families'].remove('noto-kufi-arab')
        output_object['family']['noto-kufi-arab']['langs'].remove('ur')

        # Kufi doesn't support all characters needed for Khowar
        output_object['lang']['khw']['families'].remove('noto-kufi-arab')
        output_object['family']['noto-kufi-arab']['langs'].remove('khw')

        # Kufi doesn't support all characters needed for Kashmiri
        output_object['lang']['ks-Arab']['families'].remove('noto-kufi-arab')
        output_object['family']['noto-kufi-arab']['langs'].remove('ks-Arab')
        ############### End of hot patches ########

        if target_platform == 'linux':
            generate_sample_images(output_object)

        # Drop presently unused features
        for family in output_object['family'].itervalues():
            del family['category']
            del family['css']
            del family['ranges']
        for language in output_object['lang'].itervalues():
            del language['rtl']
            if 'sample' in language:
                del language['sample']

        if target_platform == 'other':
            json_file_name = 'data.json'
        else:
            json_file_name = 'data-%s.json' % target_platform
        json_path = path.join(OUTPUT_DIR, 'js', json_file_name)
        with codecs.open(json_path, 'w', encoding='UTF-8') as json_file:
            json.dump(output_object, json_file,
                      ensure_ascii=False, separators=(',', ':'))

    # Compress the ttc files.  Requires 7za on the build machine.
    generate_ttc_zips_with_7za()

    # Keep presently unused directories so we can continue after first success
    #    if not args.continuing:
    #        shutil.rmtree(path.join(OUTPUT_DIR, 'fonts'))
    #        shutil.rmtree(path.join(OUTPUT_DIR, 'css'))
>>> expand_integer('1') == set(['1'])
dataset/ETHPy150Open googlei18n/nototools/nototools/generate_website_data.py/main--crossover with--dataset/ETHPy150Open practo/r5d4/r5d4/mapping_functions.py/expand_integer