<commit_before>class Substitution(object):
    """A string substitution to be applied to the text and HTML contents of
    the body of your email, as well as in the Subject and Reply-To parameters.
    """

    def __init__(self, key=None, value=None, p=None):
        """Create a Substitution with the given key and value.

        :param key: Text to be replaced with "value" param
        :type key: string, optional
        :param value: Value to substitute into email
        :type value: string, optional
        :param name: p is the Personalization object or Personalization object
                     index
        :type name: Personalization, integer, optional
        """
        self._key = None
        self._value = None
        self._personalization = None

        if key is not None:
            self.key = key
        if value is not None:
            self.value = value
        if p is not None:
            self.personalization = p

    @property
    def key(self):
        """The substitution key.

        :rtype key: string
        """
        return self._key

    @key.setter
    def key(self, value):
        """The substitution key.

        :param key: The substitution key.
        :type key: string
        """
        self._key = value

    @property
    def value(self):
        """The substitution value.

        :rtype value: string
        """
        return self._value

    @value.setter
    def value(self, value):
        """The substitution value.

        :param value: The substitution value.<commit_msg>Convert integer substitution value to string (#838)<commit_after>class Substitution(object):
    """A string substitution to be applied to the text and HTML contents of
    the body of your email, as well as in the Subject and Reply-To parameters.
    """

    def __init__(self, key=None, value=None, p=None):
        """Create a Substitution with the given key and value.

        :param key: Text to be replaced with "value" param
        :type key: string, optional
        :param value: Value to substitute into email
        :type value: string, optional
        :param name: p is the Personalization object or Personalization object
                     index
        :type name: Personalization, integer, optional
        """
        self._key = None
        self._value = None
        self._personalization = None

        if key is not None:
            self.key = key
        if value is not None:
            self.value = value
        if p is not None:
            self.personalization = p

    @property
    def key(self):
        """The substitution key.

        :rtype key: string
        """
        return self._key

    @key.setter
    def key(self, value):
        """The substitution key.

        :param key: The substitution key.
        :type key: string
        """
        self._key = value

    @property
    def value(self):
        """The substitution value.

        :rtype value: string
        """
        return str(self._value) if isinstance(self._value, int) else self._value

    @value.setter
    def value(self, value):
        """The substitution value.

        :param value: The substitution value.
{'fraction_non_alphanumeric': 0.08155583437892096, 'fraction_numerical': 0.0009410288582183187, 'mean_word_length': 1.9149908592321756, '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': '3815928', 'n_tokens_mistral': 844, 'n_tokens_neox': 794, 'n_words': 332}