def _migrate_old_format():
    old_path = _get_old_path()
    if not os.path.exists(old_path):
        return

    config = ConfigParser(delimiters="=") if PY3K else ConfigParser()
    config.optionxform = lambda opt: opt
    config.read(old_path)

    try:
        bookmarks = [path for path, _ in config.items("bookmarks")]
    except NoSectionError:
        bookmarks = []

    new_path = os.path.join(os.path.split(old_path)[0], "bookmarks")
    os.rename(old_path, new_path)

    with open(new_path, "wb") as handle:
        handle.write("\n".join(bookmarks))
Deferred attributes can be referenced by an annotation,
dataset/ETHPy150Open earwig/git-repo-updater/gitup/migrate.py/_migrate_old_format--crossover with--dataset/ETHPy150Open django/django/tests/annotations/tests.py/NonAggregateAnnotationTestCase.test_defer_annotation