<commit_before>var Montage = require("montage/core/core").Montage,
    Criteria = require("montage/core/criteria").Criteria;

/**
 * Defines the criteria that objects must satisfy to be included in a set of
 * data as well as other characteristics that data must possess.
 *
 * @class
 * @extends external:Montage
 */
exports.DataSelector = exports.DataQuery= Montage.specialize(/** @lends DataSelector.prototype */ {

    /**
     * The type of the data object to retrieve.
     *
     * @type {DataObjectDescriptor}
     */
    type: {
        value: undefined
    },

    /**
     * An object defining the criteria that must be satisfied by objects for
     * them to be included in the data set defined by this selector.
     *
     * Initially this can be any object and will typically be a set of key-value
     * pairs, ultimately this will be a boolean expression to be applied to data
     * objects to determine whether they should be in the selected set or not.
     *
     * @type {Object}
     */
    criteria: {
        get: function () {
            return this._criteria;
        },
        set: function (criteria) {
            if (!criteria || criteria instanceof Criteria) {
                this._criteria = criteria;
            }
            else {
                throw new TypeError("can only set instances of Criteria");
            }
        }
    },

    _criteria: {
        value: undefined
    },

    /**
     * An array of DataOrdering objects which, combined, define the order
     * desired for the data in the set specified by this selector.
     *
     * @type {Array}
     */
    orderings: {<commit_msg>fix possible issue with deserializer<commit_after>var Montage = require("montage/core/core").Montage,
    Criteria = require("montage/core/criteria").Criteria;

/**
 * Defines the criteria that objects must satisfy to be included in a set of
 * data as well as other characteristics that data must possess.
 *
 * @class
 * @extends external:Montage
 */
exports.DataSelector = exports.DataQuery= Montage.specialize(/** @lends DataSelector.prototype */ {

    /**
     * The type of the data object to retrieve.
     *
     * @type {DataObjectDescriptor}
     */
    type: {
        value: undefined
    },

    /**
     * An object defining the criteria that must be satisfied by objects for
     * them to be included in the data set defined by this selector.
     *
     * Initially this can be any object and will typically be a set of key-value
     * pairs, ultimately this will be a boolean expression to be applied to data
     * objects to determine whether they should be in the selected set or not.
     *
     * @type {Object}
     */
    criteria: {
        get: function () {
            return this._criteria;
        },
        set: function (criteria) {
            if (criteria) {
                this._criteria = criteria;
            }
            else {
                throw new TypeError("can only set instances of Criteria");
            }
        }
    },

    _criteria: {
        value: undefined
    },

    /**
     * An array of DataOrdering objects which, combined, define the order
     * desired for the data in the set specified by this selector.
     *
     * @type {Array}
     */
    orderings: {
{'fraction_non_alphanumeric': 0.085880195599022, 'fraction_numerical': 0.0, 'mean_word_length': 2.0848256361922712, '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': '4484640', 'n_tokens_mistral': 855, 'n_tokens_neox': 842, 'n_words': 335}