def METHOD_NAME(root_directory: Account) -> Iterator[Tuple[str, Account, List[str], List[str]]]:
    """A version of os.walk() which yields directories that are valid account names.
    This only yields directories that are accounts... it skips the other ones.
    For convenience, it also yields you the account's name.
    Args:
      root_directory: A string, the name of the root of the hierarchy to be walked.
    Yields:
      Tuples of (root, account-name, dirs, files), similar to os.walk().
    """
    for root, dirs, files in os.METHOD_NAME(root_directory):
        dirs.sort()
        files.sort()
        relroot = root[len(root_directory)+1:]
        account_name = relroot.replace(os.sep, sep)
        if is_valid(account_name):
            yield (root, account_name, dirs, files)