def choose_latest_major_versions()

in uberpoet/statemanagement.py [0:0]


    def choose_latest_major_versions(raw_versions):
        """
        This selects the latest version for each major version of xcode in a set of xcode paths.
        raw_versions is a {(version_str, build_str): xcode_path_str} dictionary.
        """

        versions = {XcodeVersion(raw_version, build): path for (raw_version, build), path in raw_versions.iteritems()}

        major_seperated = {}
        for version, path in versions.iteritems():
            subset = major_seperated.get(version.major, {})
            subset[version] = path
            major_seperated[version.major] = subset

        out = {}
        for subset in major_seperated.values():
            max_version = max(subset.keys())
            out[max_version.raw] = subset[max_version]

        return out