<commit_before>/*package error provides utilities for creating and reporting errors.

Currently supported ErrorCodes are

	Configuration
	Library
	MissingFile
	Sanity
	Value

which correspond to
configuration errors,
library errors,
missing file errors,
sanity errors,
and value errors,
respectively.

Configuration errors indicate that the user has given the program invalid
exernal input and, most importantly, can fix the error entirely through
external input. Configuration errors must not be returned after the
initialization period of the program. All configuration varibles with invalid
value ranges must result in configuration errors when encountering these
value.

Library errors indicate that some exernal library (most likely a curses
library) has thrown an error that the program can't recover from. All such
library errors must be reported.

Missing file errors indicate that a required file does not exist or was
placed in the wrong location. Any function which reads from a file must
result in a file error unless that function can recover internally. For
modularity purposes it's probably best that no function can recover
internally.

Sanity errors indicate that something impossible has occured. This could mean
that there was a non-exhaustive switch statement or that some data structure
invariant was not upheld, or something similar. Sanity errors must be used in
all places where adding functionality requires updating multiple parts of the
code, but are otherwise up to the programmer's discretion.

Value errors indicate that a function has been given a parameter which is
outside its valid value range. All of a package's externally visible
functions must give value errors when encountering such a value. Internal
package functions may return these errors at the programmer's discretion. If
input is in the form of labeled integers (like ErrorCodes) and there is no
other potentially erroneous input, value errors don't need to be returned.
*/
package error

import (
	"fmt"
	"runtime"<commit_msg>Reduced requisite moral purity in error reporting.<commit_after>/*package error provides utilities for creating and reporting errors.

Currently supported ErrorCodes are

	Configuration
	Library
	MissingFile
	Sanity
	Value

which correspond to
configuration errors,
library errors,
missing file errors,
sanity errors,
and value errors,
respectively.

Configuration errors indicate that the user has given the program invalid
exernal input and, most importantly, can fix the error entirely through
external input. Configuration errors must not be returned after the
initialization period of the program. All configuration varibles with invalid
value ranges must result in configuration errors when encountering these
value.

Library errors indicate that some exernal library (most likely a curses
library) has thrown an error that the program can't recover from. All such
library errors must be reported.

Missing file errors indicate that a required file does not exist or was
placed in the wrong location. Any function which reads from a file must
result in a file error unless that function can recover internally. For
modularity purposes it's probably best that no function can recover
internally.

Sanity errors indicate that something impossible has occured. This could mean
that there was a non-exhaustive switch statement or that some data structure
invariant was not upheld, or something similar. You are free to panic instead
of reporting a sanity error at your discresion.

Value errors indicate that a function has been given a parameter which is
outside its valid value range. All of a package's externally visible
functions must give value errors when encountering such a value. Internal
package functions may return these errors at the programmer's discretion. If
input is in the form of labeled integers (like ErrorCodes) and there is no
other potentially erroneous input, value errors don't need to be returned and
you may panic instead.
*/
package error

import (
	"fmt"
	"runtime"
{'fraction_non_alphanumeric': 0.024614619592242665, 'fraction_numerical': 0.0, 'mean_word_length': 5.013452914798206, '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': '1918281', 'n_tokens_mistral': 909, 'n_tokens_neox': 865, 'n_words': 592}