def directory_structure(tmpdir):
    """Create a directory structure like this:


                       root
                    _____|___________________
                    |    |           |       |
                  repo Main.java  epic.py  other_repo
            ________|________          ______|_________
            |       |       |          |     |        |
        README.md test.py best.py    Main.java test.py epic.py
    """
    root_files = ["Main.java", "epic.py"]
    repo_files = ["README.md", "test.py", "best.py"]
    other_repo_files = ["Main.java", "test.py", "epic.py"]

    repo = tmpdir.mkdir("repo")
    other_repo = tmpdir.mkdir("other_repo")

    for dir_, filenames in [
        (tmpdir, root_files),
        (repo, repo_files),
        (other_repo, other_repo_files),
    ]:
        for filename in filenames:
            file = dir_.join(filename)
            file.ensure()

    java_files = [
        str(f)
        for f in (tmpdir.join("Main.java"), other_repo.join("Main.java"))
    ]
    python_files = [
        str(f)
        for f in (
            tmpdir.join("epic.py"),
            repo.join("test.py"),
            repo.join("best.py"),
            other_repo.join("test.py"),
            other_repo.join("epic.py"),
        )
    ]
    readme_files = [str(repo.join("README.md"))]

    return tmpdir, java_files, python_files, readme_files