def get_dep_replacements()

in fix_android_dependencies.py [0:0]


def get_dep_replacements(json_file, toml_deps):
    """Gets a dictionary of all dependency replacements to be made."""
    replacements = {}
    with open(json_file, 'r') as f:
        json_data = json.loads(f.read())

        outdated_deps = json_data['outdated']['dependencies']
        for dep in outdated_deps:
            group = dep['group']
            name = dep['name']

            curr_version = dep['version']
            new_version = dep['available']['release']

            # For dependencies and classhpaths
            curr_dep = f"{group}:{name}:{curr_version}"
            new_dep = f"{group}:{name}:{new_version}"
            replacements[curr_dep] = new_dep

            # For the plugins block in .kts files
            curr_plugin = f'\("{group}"\) version "{curr_version}"'
            new_plugin = f'("{group}") version "{new_version}"'
            replacements[curr_plugin] = new_plugin

            # For the TOML dependencies
            module = group + ':' + name
            if module not in toml_deps:
                continue
            curr_dep = toml_deps[module]
            if 'original_line' in curr_dep:
                original_line = curr_dep['original_line']
                new_line = original_line.replace(curr_version, new_version)
                replacements[original_line] = new_line

    return replacements