def nodeattrfunc(args, node):
    """Node attributes function"""
    label = node.name.upper()
    if not args.minimal_labels and node.description:
        label = '%s:\n%s' % (label, node.description)
    words = label.split(' ')
    words_per_line = 3
    lines = []
    for idx in range(0, len(words), words_per_line):
        line = ' '.join(words[idx:min(len(words), idx + words_per_line)])
        lines.append(line)
    label = '\n'.join(lines)
    if not args.minimal_labels and node.effect_size:
        label = '%s\n%s: %0.3f' % (label, args.effect_name, node.effect_size)
    shape = ('rectangle' if args.rectangle_leaves and node.was_leaf else
        'ellipse')
    return (
        'fillcolor="/%s/%d" label="%s" style=filled fontname="helvetica bold" fontsize=15.0 fontcolor=%s shape = %s'
         % (args.color_scheme, node.color, label, node.fontcolor, shape))
