Как ввести аннотацию к рекурсивной структуре данных в Python?

Я хочу создать простой вложенный словарь, который в конечном итоге является сопоставлением str-to-str. В качестве словаря примерный экземпляр может выглядеть так:

{
  'l_0_0': 'string_0',
  'l_0_1': 'string_1',
  'l_0_2': {
     'lDict[str, Any]0': {
        'lAny0': 'another_string'
     }
  }
}

Аннотации менее описательного типа могут выглядеть как Dict[str, Any], но я хочу применить что-то более конкретное, чем Any, для моего поиска по этому дереву.

def do_something(t: Dict[str, Any]):
    # Do some really cool algorithm

person tarabyte    schedule 26.06.2020    source источник
comment
mypy, по крайней мере, на данный момент не поддерживает рекурсивные типы, а это то, что вы ищете (что-то вроде D = Dict[str,Union[str,'D']]).   -  person chepner    schedule 26.06.2020