<commit_before>exports.extend = function (opts) {
	opts = opts || {};

	merge(opts, exports.defaults);

	return opts;
};

exports.defaults = {
	extensions : [ "record-base", "record-changes", "record-freeze" ]
};

function merge(ext, base) {
	for (var k in base) {
		if (!ext.hasOwnProperty(k)) {
			ext[k] = base[k];
			continue;
		}

		if (typeof ext[k] == "object" && typeof base[k] == "object" && !Array.isArray(base[k])) {
			merge(ext[k], base[k]);
		}
	}
}<commit_msg>Removes unnecessary recursive merging on settings<commit_after>exports.extend = function (opts) {
	opts = opts || {};

	merge(opts, exports.defaults);

	return opts;
};

exports.defaults = {
	extensions : [ "record-base", "record-changes", "record-freeze" ]
};

function merge(ext, base) {
	for (var k in base) {
		if (ext.hasOwnProperty(k)) continue;

		ext[k] = base[k];
	}
}
{'fraction_non_alphanumeric': 0.18896713615023475, 'fraction_numerical': 0.0, 'mean_word_length': 4.0773809523809526, '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': '7100503', 'n_tokens_mistral': 326, 'n_tokens_neox': 307, 'n_words': 69}