I don't think `pprint` is wonderful either. Afaik it only knows about the basic standard collections (list, tuple, dict) and `repr`s everything else, including namedtuples, defaultdicts, arrays, etc, on the basis that its output should be `eval`able (except that most `repr` implementations don't support that).