<commit_before>'use strict';
module.exports = function (fn) {
	return function (id) {
		var mod;

		return function () {
			mod = mod !== undefined ? mod : fn(id);

			if (!arguments.length) {
				return mod;
			}

			var ret = {};

			[].forEach.call(arguments, function (prop) {
				Object.defineProperty(ret, prop, {
					get: function () {
						if (typeof mod[prop] === 'function') {
							return function () {
								return mod[prop].apply(mod, arguments);
							};
						}

						return mod[prop];
					}
				});
			});

			return ret;
		};
	};
};<commit_msg>lazy props should delay requiring module<commit_after>'use strict';
module.exports = function (fn) {
	return function (id) {
		var mod;

		return function () {
			if (!arguments.length) {
				mod = lazy(mod, fn, id);
				return mod;
			}

			var ret = {};

			[].forEach.call(arguments, function (prop) {
				Object.defineProperty(ret, prop, {
					get: function () {
						mod = lazy(mod, fn, id);
						if (typeof mod[prop] === 'function') {
							return function () {
								return mod[prop].apply(mod, arguments);
							};
						}

						return mod[prop];
					}
				});
			});

			return ret;
		};
	};

	function lazy(mod, fn, id) {
		return mod !== undefined ? mod : fn(id);
	}
};
{'fraction_non_alphanumeric': 0.16613672496025436, 'fraction_numerical': 0.0, 'mean_word_length': 2.3131578947368423, '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': '2379569', 'n_tokens_mistral': 558, 'n_tokens_neox': 404, 'n_words': 103}