<commit_before>//Package wmenu creates menus for cli programs.
//It uses wlog for it's interface with the command line.
//It uses os.Stdin, os.Stdout, and os.Stderr with concurrency by default.
//wmenu allows you to change the color of the different parts of the menu.
//This package also creates it's own error structure so you can type assert if you need to.
package wmenu

import (
	"fmt"
	"io"
	"os"
	"strconv"
	"strings"

	"github.com/dixonwille/wlog"
)

//Menu is used to display options to a user.
//A user can then select options and Menu will validate the response and perform the correct action.
type Menu struct {
	question        string
	defaultFunction func(Opt)
	options         []Opt
	ui              wlog.UI
	multiSeparator  string<commit_msg>Added todo task to issue<commit_after>//Package wmenu creates menus for cli programs.
//It uses wlog for it's interface with the command line.
//It uses os.Stdin, os.Stdout, and os.Stderr with concurrency by default.
//wmenu allows you to change the color of the different parts of the menu.
//This package also creates it's own error structure so you can type assert if you need to.
package wmenu

import (
	"fmt"
	"io"
	"os"
	"strconv"
	"strings"

	"github.com/dixonwille/wlog"
)

//TODO:0 Make error required on return issue:2

//Menu is used to display options to a user.
//A user can then select options and Menu will validate the response and perform the correct action.
type Menu struct {
	question        string
	defaultFunction func(Opt)
	options         []Opt
	ui              wlog.UI
	multiSeparator  string
{'fraction_non_alphanumeric': 0.07102092580849714, 'fraction_numerical': 0.0012682308180088776, 'mean_word_length': 3.2305630026809653, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1573454', 'n_tokens_mistral': 468, 'n_tokens_neox': 461, 'n_words': 222}