Функция возвращает None, хотя есть return

Не могу понять почему у меня словарь возвращается из функции parse_rows нормально, но если возвращать из функции read_graph результат функции parse_rows, то возвращается None?

def read_graph(FileName) -> dict:
    try:
        f = open(FileName)
        NewNodes = dict()
        return parse_rows(f, NewNodes) # Возвращает None
    except FileNotFoundError as ex:
        print(ex)


def parse_rows(f, NewNodes) -> dict:
    Line = f.readline()
    if Line == '':
        print(NewNodes) # Всё хорошо выводится перед возвратом из этой функции
        return NewNodes # Значит возвращается то что нужно
    else:
        test = Line.replace('\n', '').split('\t')
        VertexNum, Row = int(test.pop(0)), test
        if NewNodes.get(VertexNum) is None:
            NewNodes[VertexNum] = []
        # print(NewNodes)
        get_edges_from_line(NewNodes, VertexNum, Row)
        # print(NewNodes)
        parse_rows(f, NewNodes)


print(read_graph('MyFile.txt'))

Ответы (1 шт):

Автор решения: Igor

В parse_rows - из else ничего не возвращается.

else:
    ...
    return parse_rows(f, NewNodes)

В read_graph - из except ничего не возвращается.

→ Ссылка