in fix_android_dependencies.py [0:0]
def get_toml_dependency(line, versions):
original_line = line
# skip dependencies that don't specify a version
if 'version' not in line:
return {}
# Turn it into a valid JSON
line = re.sub(DEPENDENCY_RE, r'"\1" =', line)
value = line.split("=", 1)[1].replace("=", ":")
dep_json = json.loads(value)
# unspecified version means it's an internal dependency
# we can skip version bumps for those
if 'version' in dep_json and dep_json['version'] == 'unspecified':
return {}
# Fill in the group and name
if 'module' in dep_json:
module = dep_json.pop('module')
[group, name] = module.split(':')
dep_json.update({'group': group, 'name': name})
if 'id' in dep_json:
# 'id' indicates this is a plugin
dep_json['group'] = dep_json.pop('id')
dep_json['name'] = dep_json['group'] + '.gradle.plugin'
# Fill in the current version
if 'version.ref' in dep_json:
dep_json['original_line'] = versions[dep_json.pop('version.ref')]['original_line']
# if the version is inlined
if 'version' in dep_json:
dep_json['original_line'] = original_line
key = dep_json.pop('group') + ':' + dep_json.pop('name')
return {key: dep_json}