nodes: 0, module; 1, function_definition; 2, function_name:cpprint; 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, default_parameter; 17, expression_statement; 18, expression_statement; 19, expression_statement; 20, expression_statement; 21, if_statement; 22, identifier:stream; 23, identifier:_UNSET_SENTINEL; 24, identifier:indent; 25, identifier:_UNSET_SENTINEL; 26, identifier:width; 27, identifier:_UNSET_SENTINEL; 28, identifier:depth; 29, identifier:_UNSET_SENTINEL; 30, identifier:compact; 31, False; 32, identifier:ribbon_width; 33, identifier:_UNSET_SENTINEL; 34, identifier:max_seq_len; 35, identifier:_UNSET_SENTINEL; 36, identifier:sort_dict_keys; 37, identifier:_UNSET_SENTINEL; 38, identifier:style; 39, None; 40, identifier:end; 41, string; 42, comment:"""Pretty print a Python value ``object`` to ``stream``,
      which defaults to sys.stdout. The output will be colored and
      syntax highlighted.
  
      :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+.
      :param style: one of ``'light'``, ``'dark'`` or a subclass
                    of ``pygments.styles.Style``. If omitted,
                    will use the default style. If the default style
                    is not changed by the user with :func:`~prettyprinter.set_default_style`,
                    the default is ``'dark'``.
      """; 43, assignment; 44, assignment; 45, call; 46, identifier:end; 47, block; 48, string_content; 49, identifier:sdocs; 50, call; 51, identifier:stream; 52, parenthesized_expression; 53, identifier:colored_render_to_stream; 54, argument_list; 55, expression_statement; 56, escape_sequence:\n; 57, identifier:python_to_sdocs; 58, argument_list; 59, comment:# This is not in _default_config in case; 60, comment:# sys.stdout changes.; 61, conditional_expression:sys.stdout
          if stream is _UNSET_SENTINEL
          else stream; 62, identifier:stream; 63, identifier:sdocs; 64, keyword_argument; 65, call; 66, identifier:object; 67, dictionary_splat; 68, attribute; 69, comparison_operator:stream is _UNSET_SENTINEL; 70, identifier:stream; 71, identifier:style; 72, identifier:style; 73, attribute; 74, argument_list; 75, call; 76, identifier:sys; 77, identifier:stdout; 78, identifier:stream; 79, identifier:_UNSET_SENTINEL; 80, identifier:stream; 81, identifier:write; 82, identifier:end; 83, identifier:_merge_defaults; 84, argument_list; 85, keyword_argument; 86, keyword_argument; 87, keyword_argument; 88, keyword_argument; 89, keyword_argument; 90, keyword_argument; 91, identifier:indent; 92, identifier:indent; 93, identifier:width; 94, identifier:width; 95, identifier:depth; 96, identifier:depth; 97, identifier:ribbon_width; 98, identifier:ribbon_width; 99, identifier:max_seq_len; 100, identifier:max_seq_len; 101, identifier:sort_dict_keys; 102, identifier:sort_dict_keys
code: def cpprint(
      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,
      style=None,
      end='\n'
  ):
      """Pretty print a Python value ``object`` to ``stream``,
      which defaults to sys.stdout. The output will be colored and
      syntax highlighted.
  
      :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+.
      :param style: one of ``'light'``, ``'dark'`` or a subclass
                    of ``pygments.styles.Style``. If omitted,
                    will use the default style. If the default style
                    is not changed by the user with :func:`~prettyprinter.set_default_style`,
                    the default is ``'dark'``.
      """
      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
      )
      colored_render_to_stream(stream, sdocs, style=style)
      if end:
          stream.write(end)