def dump()

in contrib/scrape-ec2-sizes.py [0:0]


def dump():
    print("Scraping size data, this may take up to 10-15 minutes...")

    sizes, regions = parse()

    separators = (",", ": ")

    # 1. Write file with instance types constants
    file_path = "libcloud/compute/constants/ec2_instance_types.py"
    with open(file_path, "w") as fp:
        fp.write(FILE_HEADER + "\n")
        fp.write("\n")
        fp.write(
            "INSTANCE_TYPES = "
            + json.dumps(sizes, indent=4, sort_keys=True, separators=separators).replace(
                "null", "None"
            )
        )

    print("")
    print("Data written to %s" % (file_path))
    print("")

    # 2. Write file with full details for each region
    file_path = "libcloud/compute/constants/ec2_region_details_complete.py"
    with open(file_path, "w") as fp:
        fp.write(FILE_HEADER + "\n")
        fp.write("\n")
        fp.write(
            "REGION_DETAILS = "
            + json.dumps(regions, indent=4, sort_keys=True, separators=separators).replace(
                "null", "None"
            )
        )

    print("Data written to %s" % (file_path))
    print("")

    # 3. Write file with partial region details (everything except instance_types attribute)
    regions_partial = {}
    keys_to_keep = ["api_name", "country", "id", "endpoint", "signature_version"]

    for region_name, region_details in regions.items():
        regions_partial[region_name] = {}

        for key, value in region_details.items():
            if key not in keys_to_keep:
                continue

            regions_partial[region_name][key] = value

    file_path = "libcloud/compute/constants/ec2_region_details_partial.py"

    with open(file_path, "w") as fp:
        fp.write(FILE_HEADER + "\n")
        fp.write("\n")
        fp.write(
            "REGION_DETAILS = "
            + json.dumps(regions_partial, indent=4, sort_keys=True, separators=separators).replace(
                "null", "None"
            )
        )

    print("Data written to %s" % (file_path))
    print("")