

def get_modified_deliverable_file_content(reporoot, filenames):
    'Return a sequence of tuples containing the new versions.\n\n    Return tuples containing (deliverable name, series name, version\n    number, repository name, hash SHA, include pypi link, first full\n    version)\n\n    '
    deliverable_files = filenames
    if (not deliverable_files):
        deliverable_files = find_modified_deliverable_files(reporoot)
    for basename in deliverable_files:
        filename = os.path.join(reporoot, basename)
        if (not os.path.exists(filename)):
            continue
        with open(filename, 'r') as f:
            deliverable_data = yaml.load(f.read())
        send_announcements_to = deliverable_data.get('send-announcements-to', 'openstack-dev@lists.openstack.org')
        include_pypi_link = deliverable_data.get('include-pypi-link', False)
        include_pypi_link = ('yes' if include_pypi_link else 'no')
        series_name = os.path.basename(os.path.dirname(os.path.abspath(filename))).lstrip('_')
        deliverable_name = os.path.splitext(os.path.basename(filename))[0]
        all_versions = {rel['version']: rel for rel in deliverable_data['releases']}
        version = deliverable_data['releases'][(- 1)]['version']
        this_version = all_versions[version]
        final_versions = [r['version'] for r in deliverable_data['releases'] if (not PRE_RELEASE_RE.search(r['version']))]
        first_full_release = ('yes' if (final_versions and (this_version['version'] == send_announcements_to[0])) else 'no')
        for project in this_version['projects']:
            (yield (deliverable_name, series_name, version, project['repo'], project['hash'], send_announcements_to, include_pypi_link, first_full_release))

dataset/ETHPy150Open openstack-infra/release-tools/list_deliverable_changes.py get_modified_deliverable_file_content/VarMisuse@265/482 `final_versions`->`send_announcements_to`