nodes: 0, module; 1, function_definition; 2, function_name:pprint; 3, parameters; 4, block; 5, identifier:object; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, keyword_separator; 11, default_parameter; 12, default_parameter; 13, default_parameter; 14, default_parameter; 15, default_parameter; 16, expression_statement; 17, expression_statement; 18, expression_statement; 19, expression_statement; 20, if_statement; 21, identifier:stream; 22, identifier:_UNSET_SENTINEL; 23, identifier:indent; 24, identifier:_UNSET_SENTINEL; 25, identifier:width; 26, identifier:_UNSET_SENTINEL; 27, identifier:depth; 28, identifier:_UNSET_SENTINEL; 29, identifier:compact; 30, False; 31, identifier:ribbon_width; 32, identifier:_UNSET_SENTINEL; 33, identifier:max_seq_len; 34, identifier:_UNSET_SENTINEL; 35, identifier:sort_dict_keys; 36, identifier:_UNSET_SENTINEL; 37, identifier:end; 38, string; 39, comment:"""Pretty print a Python value ``object`` to ``stream``,
      which defaults to ``sys.stdout``. The output will not be colored.
  
      :param indent: number of spaces to add for each level of nesting.
      :param stream: the output stream, defaults to ``sys.stdout``
      :param width: a soft maximum allowed number of columns in the output,
                    which the layout algorithm attempts to stay under.
      :param depth: maximum depth to print nested structures
      :param ribbon_width: a soft maximum allowed number of columns in the output,
                           after indenting the line
      :param max_seq_len: a maximum sequence length that applies to subclasses of
                          lists, sets, frozensets, tuples and dicts. A trailing
                          comment that indicates the number of truncated elements.
                          Setting max_seq_len to ``None`` disables truncation.
      :param sort_dict_keys: a ``bool`` value indicating if dict keys should be
                             sorted in the output. Defaults to ``False``, in
                             which case the default order is used, which is the
                             insertion order in CPython 3.6+.
      """; 40, assignment; 41, assignment; 42, call; 43, identifier:end; 44, block; 45, string_content; 46, identifier:sdocs; 47, call; 48, identifier:stream; 49, parenthesized_expression; 50, identifier:default_render_to_stream; 51, argument_list; 52, expression_statement; 53, escape_sequence:\n; 54, identifier:python_to_sdocs; 55, argument_list; 56, comment:# This is not in _default_config in case; 57, comment:# sys.stdout changes.; 58, conditional_expression:sys.stdout
          if stream is _UNSET_SENTINEL
          else stream; 59, identifier:stream; 60, identifier:sdocs; 61, call; 62, identifier:object; 63, dictionary_splat; 64, attribute; 65, comparison_operator:stream is _UNSET_SENTINEL; 66, identifier:stream; 67, attribute; 68, argument_list; 69, call; 70, identifier:sys; 71, identifier:stdout; 72, identifier:stream; 73, identifier:_UNSET_SENTINEL; 74, identifier:stream; 75, identifier:write; 76, identifier:end; 77, identifier:_merge_defaults; 78, argument_list; 79, keyword_argument; 80, keyword_argument; 81, keyword_argument; 82, keyword_argument; 83, keyword_argument; 84, keyword_argument; 85, identifier:indent; 86, identifier:indent; 87, identifier:width; 88, identifier:width; 89, identifier:depth; 90, identifier:depth; 91, identifier:ribbon_width; 92, identifier:ribbon_width; 93, identifier:max_seq_len; 94, identifier:max_seq_len; 95, identifier:sort_dict_keys; 96, identifier:sort_dict_keys
code: def pprint(
      object,
      stream=_UNSET_SENTINEL,
      indent=_UNSET_SENTINEL,
      width=_UNSET_SENTINEL,
      depth=_UNSET_SENTINEL,
      *,
      compact=False,
      ribbon_width=_UNSET_SENTINEL,
      max_seq_len=_UNSET_SENTINEL,
      sort_dict_keys=_UNSET_SENTINEL,
      end='\n'
  ):
      """Pretty print a Python value ``object`` to ``stream``,
      which defaults to ``sys.stdout``. The output will not be colored.
  
      :param indent: number of spaces to add for each level of nesting.
      :param stream: the output stream, defaults to ``sys.stdout``
      :param width: a soft maximum allowed number of columns in the output,
                    which the layout algorithm attempts to stay under.
      :param depth: maximum depth to print nested structures
      :param ribbon_width: a soft maximum allowed number of columns in the output,
                           after indenting the line
      :param max_seq_len: a maximum sequence length that applies to subclasses of
                          lists, sets, frozensets, tuples and dicts. A trailing
                          comment that indicates the number of truncated elements.
                          Setting max_seq_len to ``None`` disables truncation.
      :param sort_dict_keys: a ``bool`` value indicating if dict keys should be
                             sorted in the output. Defaults to ``False``, in
                             which case the default order is used, which is the
                             insertion order in CPython 3.6+.
      """
      sdocs = python_to_sdocs(
          object,
          **_merge_defaults(
              indent=indent,
              width=width,
              depth=depth,
              ribbon_width=ribbon_width,
              max_seq_len=max_seq_len,
              sort_dict_keys=sort_dict_keys,
          )
      )
      stream = (
          # This is not in _default_config in case
          # sys.stdout changes.
          sys.stdout
          if stream is _UNSET_SENTINEL
          else stream
      )
  
      default_render_to_stream(stream, sdocs)
      if end:
          stream.write(end)