We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
typo in append_analysis_explenation_text
It seems that there is a typo in the function name.

append_analysis_expl**e**nation_text - > append_analysis_expl**a**nation_text

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `presidio-analyzer/presidio_analyzer/recognizer_result.py`
Content:
```
1 import logging
2 from typing import Dict
3 
4 from presidio_analyzer import AnalysisExplanation
5 
6 
7 class RecognizerResult:
8     """
9     Recognizer Result represents the findings of the detected entity.
10 
11     Result of a recognizer analyzing the text.
12 
13     :param entity_type: the type of the entity
14     :param start: the start location of the detected entity
15     :param end: the end location of the detected entity
16     :param score: the score of the detection
17     :param analysis_explanation: contains the explanation of why this
18                                  entity was identified
19     """
20 
21     logger = logging.getLogger("presidio-analyzer")
22 
23     def __init__(
24         self,
25         entity_type: str,
26         start: int,
27         end: int,
28         score: float,
29         analysis_explanation: AnalysisExplanation = None,
30     ):
31 
32         self.entity_type = entity_type
33         self.start = start
34         self.end = end
35         self.score = score
36         self.analysis_explanation = analysis_explanation
37 
38     def append_analysis_explenation_text(self, text: str) -> None:
39         """Add text to the analysis explanation."""
40         if self.analysis_explanation:
41             self.analysis_explanation.append_textual_explanation_line(text)
42 
43     def to_dict(self) -> Dict:
44         """
45         Serialize self to dictionary.
46 
47         :return: a dictionary
48         """
49         return self.__dict__
50 
51     @classmethod
52     def from_json(cls, data: Dict) -> "RecognizerResult":
53         """
54         Create RecognizerResult from json.
55 
56         :param data: e.g. {
57             "start": 24,
58             "end": 32,
59             "score": 0.8,
60             "entity_type": "NAME"
61         }
62         :return: RecognizerResult
63         """
64         score = data.get("score")
65         entity_type = data.get("entity_type")
66         start = data.get("start")
67         end = data.get("end")
68         return cls(entity_type, start, end, score)
69 
70     def __repr__(self) -> str:
71         """Return a string representation of the instance."""
72         return self.__str__()
73 
74     def intersects(self, other: "RecognizerResult") -> int:
75         """
76         Check if self intersects with a different RecognizerResult.
77 
78         :return: If intersecting, returns the number of
79         intersecting characters.
80         If not, returns 0
81         """
82         # if they do not overlap the intersection is 0
83         if self.end < other.start or other.end < self.start:
84             return 0
85 
86         # otherwise the intersection is min(end) - max(start)
87         return min(self.end, other.end) - max(self.start, other.start)
88 
89     def contained_in(self, other: "RecognizerResult") -> bool:
90         """
91         Check if self is contained in a different RecognizerResult.
92 
93         :return: true if contained
94         """
95         return self.start >= other.start and self.end <= other.end
96 
97     def contains(self, other: "RecognizerResult") -> bool:
98         """
99         Check if one result is contained or equal to another result.
100 
101         :param other: another RecognizerResult
102         :return: bool
103         """
104         return self.start <= other.start and self.end >= other.end
105 
106     def equal_indices(self, other: "RecognizerResult") -> bool:
107         """
108         Check if the indices are equal between two results.
109 
110         :param other: another RecognizerResult
111         :return:
112         """
113         return self.start == other.start and self.end == other.end
114 
115     def __gt__(self, other: "RecognizerResult") -> bool:
116         """
117         Check if one result is greater by using the results indices in the text.
118 
119         :param other: another RecognizerResult
120         :return: bool
121         """
122         if self.start == other.start:
123             return self.end > other.end
124         return self.start > other.start
125 
126     def __eq__(self, other: "RecognizerResult") -> bool:
127         """
128         Check two results are equal by using all class fields.
129 
130         :param other: another RecognizerResult
131         :return: bool
132         """
133         equal_type = self.entity_type == other.entity_type
134         equal_score = self.score == other.score
135         return self.equal_indices(other) and equal_type and equal_score
136 
137     def __hash__(self):
138         """
139         Hash the result data by using all class fields.
140 
141         :return: int
142         """
143         return hash(
144             f"{str(self.start)} {str(self.end)} {str(self.score)} {self.entity_type}"
145         )
146 
147     def __str__(self) -> str:
148         """Return a string representation of the instance."""
149         return (
150             f"type: {self.entity_type}, "
151             f"start: {self.start}, "
152             f"end: {self.end}, "
153             f"score: {self.score}"
154         )
155 
156     def has_conflict(self, other: "RecognizerResult") -> bool:
157         """
158         Check if two recognizer results are conflicted or not.
159 
160         I have a conflict if:
161         1. My indices are the same as the other and my score is lower.
162         2. If my indices are contained in another.
163 
164         :param other: RecognizerResult
165         :return:
166         """
167         if self.equal_indices(other):
168             return self.score <= other.score
169         return other.contains(self)
170
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/presidio-analyzer/presidio_analyzer/recognizer_result.py b/presidio-analyzer/presidio_analyzer/recognizer_result.py
--- a/presidio-analyzer/presidio_analyzer/recognizer_result.py
+++ b/presidio-analyzer/presidio_analyzer/recognizer_result.py
@@ -35,7 +35,7 @@
         self.score = score
         self.analysis_explanation = analysis_explanation
 
-    def append_analysis_explenation_text(self, text: str) -> None:
+    def append_analysis_explanation_text(self, text: str) -> None:
         """Add text to the analysis explanation."""
         if self.analysis_explanation:
             self.analysis_explanation.append_textual_explanation_line(text)

{"golden_diff": "diff --git a/presidio-analyzer/presidio_analyzer/recognizer_result.py b/presidio-analyzer/presidio_analyzer/recognizer_result.py\n--- a/presidio-analyzer/presidio_analyzer/recognizer_result.py\n+++ b/presidio-analyzer/presidio_analyzer/recognizer_result.py\n@@ -35,7 +35,7 @@\n         self.score = score\n         self.analysis_explanation = analysis_explanation\n \n-    def append_analysis_explenation_text(self, text: str) -> None:\n+    def append_analysis_explanation_text(self, text: str) -> None:\n         \"\"\"Add text to the analysis explanation.\"\"\"\n         if self.analysis_explanation:\n             self.analysis_explanation.append_textual_explanation_line(text)\n", "issue": "typo in append_analysis_explenation_text\nIt seems that there is a typo in the function name.\r\n\r\nappend_analysis_expl**e**nation_text - > append_analysis_expl**a**nation_text\n", "before_files": [{"content": "import logging\nfrom typing import Dict\n\nfrom presidio_analyzer import AnalysisExplanation\n\n\nclass RecognizerResult:\n    \"\"\"\n    Recognizer Result represents the findings of the detected entity.\n\n    Result of a recognizer analyzing the text.\n\n    :param entity_type: the type of the entity\n    :param start: the start location of the detected entity\n    :param end: the end location of the detected entity\n    :param score: the score of the detection\n    :param analysis_explanation: contains the explanation of why this\n                                 entity was identified\n    \"\"\"\n\n    logger = logging.getLogger(\"presidio-analyzer\")\n\n    def __init__(\n        self,\n        entity_type: str,\n        start: int,\n        end: int,\n        score: float,\n        analysis_explanation: AnalysisExplanation = None,\n    ):\n\n        self.entity_type = entity_type\n        self.start = start\n        self.end = end\n        self.score = score\n        self.analysis_explanation = analysis_explanation\n\n    def append_analysis_explenation_text(self, text: str) -> None:\n        \"\"\"Add text to the analysis explanation.\"\"\"\n        if self.analysis_explanation:\n            self.analysis_explanation.append_textual_explanation_line(text)\n\n    def to_dict(self) -> Dict:\n        \"\"\"\n        Serialize self to dictionary.\n\n        :return: a dictionary\n        \"\"\"\n        return self.__dict__\n\n    @classmethod\n    def from_json(cls, data: Dict) -> \"RecognizerResult\":\n        \"\"\"\n        Create RecognizerResult from json.\n\n        :param data: e.g. {\n            \"start\": 24,\n            \"end\": 32,\n            \"score\": 0.8,\n            \"entity_type\": \"NAME\"\n        }\n        :return: RecognizerResult\n        \"\"\"\n        score = data.get(\"score\")\n        entity_type = data.get(\"entity_type\")\n        start = data.get(\"start\")\n        end = data.get(\"end\")\n        return cls(entity_type, start, end, score)\n\n    def __repr__(self) -> str:\n        \"\"\"Return a string representation of the instance.\"\"\"\n        return self.__str__()\n\n    def intersects(self, other: \"RecognizerResult\") -> int:\n        \"\"\"\n        Check if self intersects with a different RecognizerResult.\n\n        :return: If intersecting, returns the number of\n        intersecting characters.\n        If not, returns 0\n        \"\"\"\n        # if they do not overlap the intersection is 0\n        if self.end < other.start or other.end < self.start:\n            return 0\n\n        # otherwise the intersection is min(end) - max(start)\n        return min(self.end, other.end) - max(self.start, other.start)\n\n    def contained_in(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if self is contained in a different RecognizerResult.\n\n        :return: true if contained\n        \"\"\"\n        return self.start >= other.start and self.end <= other.end\n\n    def contains(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if one result is contained or equal to another result.\n\n        :param other: another RecognizerResult\n        :return: bool\n        \"\"\"\n        return self.start <= other.start and self.end >= other.end\n\n    def equal_indices(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if the indices are equal between two results.\n\n        :param other: another RecognizerResult\n        :return:\n        \"\"\"\n        return self.start == other.start and self.end == other.end\n\n    def __gt__(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if one result is greater by using the results indices in the text.\n\n        :param other: another RecognizerResult\n        :return: bool\n        \"\"\"\n        if self.start == other.start:\n            return self.end > other.end\n        return self.start > other.start\n\n    def __eq__(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check two results are equal by using all class fields.\n\n        :param other: another RecognizerResult\n        :return: bool\n        \"\"\"\n        equal_type = self.entity_type == other.entity_type\n        equal_score = self.score == other.score\n        return self.equal_indices(other) and equal_type and equal_score\n\n    def __hash__(self):\n        \"\"\"\n        Hash the result data by using all class fields.\n\n        :return: int\n        \"\"\"\n        return hash(\n            f\"{str(self.start)} {str(self.end)} {str(self.score)} {self.entity_type}\"\n        )\n\n    def __str__(self) -> str:\n        \"\"\"Return a string representation of the instance.\"\"\"\n        return (\n            f\"type: {self.entity_type}, \"\n            f\"start: {self.start}, \"\n            f\"end: {self.end}, \"\n            f\"score: {self.score}\"\n        )\n\n    def has_conflict(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if two recognizer results are conflicted or not.\n\n        I have a conflict if:\n        1. My indices are the same as the other and my score is lower.\n        2. If my indices are contained in another.\n\n        :param other: RecognizerResult\n        :return:\n        \"\"\"\n        if self.equal_indices(other):\n            return self.score <= other.score\n        return other.contains(self)\n", "path": "presidio-analyzer/presidio_analyzer/recognizer_result.py"}], "after_files": [{"content": "import logging\nfrom typing import Dict\n\nfrom presidio_analyzer import AnalysisExplanation\n\n\nclass RecognizerResult:\n    \"\"\"\n    Recognizer Result represents the findings of the detected entity.\n\n    Result of a recognizer analyzing the text.\n\n    :param entity_type: the type of the entity\n    :param start: the start location of the detected entity\n    :param end: the end location of the detected entity\n    :param score: the score of the detection\n    :param analysis_explanation: contains the explanation of why this\n                                 entity was identified\n    \"\"\"\n\n    logger = logging.getLogger(\"presidio-analyzer\")\n\n    def __init__(\n        self,\n        entity_type: str,\n        start: int,\n        end: int,\n        score: float,\n        analysis_explanation: AnalysisExplanation = None,\n    ):\n\n        self.entity_type = entity_type\n        self.start = start\n        self.end = end\n        self.score = score\n        self.analysis_explanation = analysis_explanation\n\n    def append_analysis_explanation_text(self, text: str) -> None:\n        \"\"\"Add text to the analysis explanation.\"\"\"\n        if self.analysis_explanation:\n            self.analysis_explanation.append_textual_explanation_line(text)\n\n    def to_dict(self) -> Dict:\n        \"\"\"\n        Serialize self to dictionary.\n\n        :return: a dictionary\n        \"\"\"\n        return self.__dict__\n\n    @classmethod\n    def from_json(cls, data: Dict) -> \"RecognizerResult\":\n        \"\"\"\n        Create RecognizerResult from json.\n\n        :param data: e.g. {\n            \"start\": 24,\n            \"end\": 32,\n            \"score\": 0.8,\n            \"entity_type\": \"NAME\"\n        }\n        :return: RecognizerResult\n        \"\"\"\n        score = data.get(\"score\")\n        entity_type = data.get(\"entity_type\")\n        start = data.get(\"start\")\n        end = data.get(\"end\")\n        return cls(entity_type, start, end, score)\n\n    def __repr__(self) -> str:\n        \"\"\"Return a string representation of the instance.\"\"\"\n        return self.__str__()\n\n    def intersects(self, other: \"RecognizerResult\") -> int:\n        \"\"\"\n        Check if self intersects with a different RecognizerResult.\n\n        :return: If intersecting, returns the number of\n        intersecting characters.\n        If not, returns 0\n        \"\"\"\n        # if they do not overlap the intersection is 0\n        if self.end < other.start or other.end < self.start:\n            return 0\n\n        # otherwise the intersection is min(end) - max(start)\n        return min(self.end, other.end) - max(self.start, other.start)\n\n    def contained_in(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if self is contained in a different RecognizerResult.\n\n        :return: true if contained\n        \"\"\"\n        return self.start >= other.start and self.end <= other.end\n\n    def contains(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if one result is contained or equal to another result.\n\n        :param other: another RecognizerResult\n        :return: bool\n        \"\"\"\n        return self.start <= other.start and self.end >= other.end\n\n    def equal_indices(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if the indices are equal between two results.\n\n        :param other: another RecognizerResult\n        :return:\n        \"\"\"\n        return self.start == other.start and self.end == other.end\n\n    def __gt__(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if one result is greater by using the results indices in the text.\n\n        :param other: another RecognizerResult\n        :return: bool\n        \"\"\"\n        if self.start == other.start:\n            return self.end > other.end\n        return self.start > other.start\n\n    def __eq__(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check two results are equal by using all class fields.\n\n        :param other: another RecognizerResult\n        :return: bool\n        \"\"\"\n        equal_type = self.entity_type == other.entity_type\n        equal_score = self.score == other.score\n        return self.equal_indices(other) and equal_type and equal_score\n\n    def __hash__(self):\n        \"\"\"\n        Hash the result data by using all class fields.\n\n        :return: int\n        \"\"\"\n        return hash(\n            f\"{str(self.start)} {str(self.end)} {str(self.score)} {self.entity_type}\"\n        )\n\n    def __str__(self) -> str:\n        \"\"\"Return a string representation of the instance.\"\"\"\n        return (\n            f\"type: {self.entity_type}, \"\n            f\"start: {self.start}, \"\n            f\"end: {self.end}, \"\n            f\"score: {self.score}\"\n        )\n\n    def has_conflict(self, other: \"RecognizerResult\") -> bool:\n        \"\"\"\n        Check if two recognizer results are conflicted or not.\n\n        I have a conflict if:\n        1. My indices are the same as the other and my score is lower.\n        2. If my indices are contained in another.\n\n        :param other: RecognizerResult\n        :return:\n        \"\"\"\n        if self.equal_indices(other):\n            return self.score <= other.score\n        return other.contains(self)\n", "path": "presidio-analyzer/presidio_analyzer/recognizer_result.py"}]}