<commit_before>'''
Crash Signature

Represents a crash signature as specified in https://wiki.mozilla.org/Security/CrashSignatures

@author:     <NAME> (:decoder)

@license:

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.

@contact:    <EMAIL>
'''

from collections import OrderedDict
import difflib
import json

from FTB.Signatures import JSONHelper
from FTB.Signatures.Symptom import Symptom, TestcaseSymptom, StackFramesSymptom, \
    OutputSymptom


class CrashSignature(object):
    def __init__(self, rawSignature):
        '''
        Constructor<commit_msg>Remove unused import.<commit_after>'''
Crash Signature

Represents a crash signature as specified in https://wiki.mozilla.org/Security/CrashSignatures

@author:     <NAME> (:decoder)

@license:

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/.

@contact:    <EMAIL>
'''

import difflib
import json

from FTB.Signatures import JSONHelper
from FTB.Signatures.Symptom import Symptom, TestcaseSymptom, StackFramesSymptom, \
    OutputSymptom


class CrashSignature(object):
    def __init__(self, rawSignature):
        '''
        Constructor
{'fraction_non_alphanumeric': 0.08680057388809183, 'fraction_numerical': 0.005738880918220947, 'mean_word_length': 4.017985611510792, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 2, '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': '4988791', 'n_tokens_mistral': 438, 'n_tokens_neox': 413, 'n_words': 149}