<commit_before>"""Abstract feature extractor."""


class AbstractFeatureExtractor(object):
    """Abstract feature extractor class."""

    @classmethod
    def requires(cls):
        """
        Get a list of names of the point attributes that are needed for this feature extraction.

        For simple features, this could be just x, y, and z. Other features can build on again
        other features to have been computed first.

        :return: List of feature names
        """
        raise NotImplementedError("Class %s doesn't implement get_requirements()" % (cls.__name__))

    @classmethod
    def provides(cls):
        """
        Get a list of names of the feature values.

        This will return as many names as as the number feature values that will be returned.
        For instance, if a feature extractor returns the first 3 Eigen values, this method
        should return 3 names, for instance 'eigen_value_1', 'eigen_value_2' and 'eigen_value_3'.

        :return: List of feature names
        """<commit_msg>fix typo in comment<commit_after>"""Abstract feature extractor."""


class AbstractFeatureExtractor(object):
    """Abstract feature extractor class."""

    @classmethod
    def requires(cls):
        """
        Get a list of names of the point attributes that are needed for this feature extraction.

        For simple features, this could be just x, y, and z. Other features can build on again
        other features to have been computed first.

        :return: List of feature names
        """
        raise NotImplementedError("Class %s doesn't implement get_requirements()" % (cls.__name__))

    @classmethod
    def provides(cls):
        """
        Get a list of names of the feature values.

        This will return as many names as the number feature values that will be returned.
        For instance, if a feature extractor returns the first 3 Eigen values, this method
        should return 3 names, for instance 'eigen_value_1', 'eigen_value_2' and 'eigen_value_3'.

        :return: List of feature names
        """
{'fraction_non_alphanumeric': 0.07228915662650602, 'fraction_numerical': 0.004819277108433735, 'mean_word_length': 2.767695099818512, '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': '6524084', 'n_tokens_mistral': 528, 'n_tokens_neox': 501, 'n_words': 244}