We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Make sure `WrongMagicCommentViolation` also catches `noqa WPS100` comments
There are wrong comments that are widely used by newcomers: `# noqa WPS100`
But, it is simply wrong. 

We need to be sure that `WrongMagicCommentViolation` catches that.
Make sure `WrongMagicCommentViolation` also catches `noqa WPS100` comments
There are wrong comments that are widely used by newcomers: `# noqa WPS100`
But, it is simply wrong. 

We need to be sure that `WrongMagicCommentViolation` catches that.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `wemake_python_styleguide/visitors/tokenize/comments.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 r"""
4 Disallows to use incorrect magic comments.
5 
6 That's how a basic ``comment`` type token looks like:
7 
8 .. code:: python
9 
10     TokenInfo(
11         type=57 (COMMENT),
12         string='# noqa: WPS100',
13         start=(1, 4),
14         end=(1, 16),
15         line="u'' # noqa: WPS100\n",
16     )
17 
18 All comments have the same type.
19 """
20 
21 import re
22 import tokenize
23 from typing import ClassVar, FrozenSet
24 from typing.re import Pattern
25 
26 from typing_extensions import final
27 
28 from wemake_python_styleguide.constants import MAX_NO_COVER_COMMENTS
29 from wemake_python_styleguide.logic.tokens import get_comment_text
30 from wemake_python_styleguide.violations.best_practices import (
31     OveruseOfNoCoverCommentViolation,
32     OveruseOfNoqaCommentViolation,
33     WrongDocCommentViolation,
34     WrongMagicCommentViolation,
35 )
36 from wemake_python_styleguide.violations.consistency import (
37     EmptyLineAfterCodingViolation,
38 )
39 from wemake_python_styleguide.visitors.base import BaseTokenVisitor
40 
41 
42 @final
43 class WrongCommentVisitor(BaseTokenVisitor):
44     """Checks comment tokens."""
45 
46     _no_cover: ClassVar[Pattern] = re.compile(r'^pragma:\s+no\s+cover')
47     _noqa_check: ClassVar[Pattern] = re.compile(r'^noqa:?($|[A-Z\d\,\s]+)')
48     _type_check: ClassVar[Pattern] = re.compile(
49         r'^type:\s?([\w\d\[\]\'\"\.]+)$',
50     )
51 
52     def __init__(self, *args, **kwargs) -> None:
53         """Initializes a counter."""
54         super().__init__(*args, **kwargs)
55         self._noqa_count = 0
56         self._no_cover_count = 0
57 
58     def visit_comment(self, token: tokenize.TokenInfo) -> None:
59         """
60         Performs comment checks.
61 
62         Raises:
63             OveruseOfNoqaCommentViolation
64             WrongDocCommentViolation
65             WrongMagicCommentViolation
66 
67         """
68         self._check_noqa(token)
69         self._check_typed_ast(token)
70         self._check_empty_doc_comment(token)
71         self._check_cover_comments(token)
72 
73     def _check_noqa(self, token: tokenize.TokenInfo) -> None:
74         comment_text = get_comment_text(token)
75         match = self._noqa_check.match(comment_text)
76         if not match:
77             return
78 
79         self._noqa_count += 1
80         excludes = match.groups()[0].strip()
81         if not excludes:
82             # We cannot pass the actual line here,
83             # since it will be ignored due to `# noqa` comment:
84             self.add_violation(WrongMagicCommentViolation(text=comment_text))
85 
86     def _check_typed_ast(self, token: tokenize.TokenInfo) -> None:
87         comment_text = get_comment_text(token)
88         match = self._type_check.match(comment_text)
89         if not match:
90             return
91 
92         declared_type = match.groups()[0].strip()
93         if declared_type != 'ignore':
94             self.add_violation(
95                 WrongMagicCommentViolation(token, text=comment_text),
96             )
97 
98     def _check_empty_doc_comment(self, token: tokenize.TokenInfo) -> None:
99         if get_comment_text(token) == ':':
100             self.add_violation(WrongDocCommentViolation(token))
101 
102     def _check_cover_comments(self, token: tokenize.TokenInfo) -> None:
103         comment_text = get_comment_text(token)
104         match = self._no_cover.match(comment_text)
105         if not match:
106             return
107 
108         self._no_cover_count += 1
109 
110     def _post_visit(self) -> None:
111         if self._noqa_count > self.options.max_noqa_comments:
112             self.add_violation(
113                 OveruseOfNoqaCommentViolation(text=str(self._noqa_count)),
114             )
115         if self._no_cover_count > MAX_NO_COVER_COMMENTS:
116             self.add_violation(
117                 OveruseOfNoCoverCommentViolation(
118                     text=str(self._no_cover_count),
119                 ),
120             )
121 
122 
123 @final
124 class FileMagicCommentsVisitor(BaseTokenVisitor):
125     """Checks comments for the whole file."""
126 
127     _allowed_newlines: ClassVar[FrozenSet[int]] = frozenset((
128         tokenize.NL,
129         tokenize.NEWLINE,
130         tokenize.ENDMARKER,
131     ))
132 
133     def visit_comment(self, token: tokenize.TokenInfo) -> None:
134         """
135         Checks special comments that are magic per each file.
136 
137         Raises:
138             EmptyLineAfterCoddingViolation
139 
140         """
141         self._check_empty_line_after_codding(token)
142 
143     def _offset_for_comment_line(self, token: tokenize.TokenInfo) -> int:
144         if token.exact_type == tokenize.COMMENT:
145             return 2
146         return 0
147 
148     def _check_empty_line_after_codding(
149         self,
150         token: tokenize.TokenInfo,
151     ) -> None:
152         """
153         Checks that we have a blank line after the magic comments.
154 
155         PEP-263 says: a magic comment must be placed into the source
156         files either as first or second line in the file
157 
158         See also:
159             https://www.python.org/dev/peps/pep-0263/
160 
161         """
162         if token.start == (1, 0):
163             tokens = iter(self.file_tokens[self.file_tokens.index(token):])
164             available_offset = 2  # comment + newline
165             while True:
166                 next_token = next(tokens)
167                 if not available_offset:
168                     available_offset = self._offset_for_comment_line(
169                         next_token,
170                     )
171 
172                 if available_offset > 0:
173                     available_offset -= 1
174                     continue
175 
176                 if next_token.exact_type not in self._allowed_newlines:
177                     self.add_violation(EmptyLineAfterCodingViolation(token))
178                 break
179
```
--- 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/wemake_python_styleguide/visitors/tokenize/comments.py b/wemake_python_styleguide/visitors/tokenize/comments.py
--- a/wemake_python_styleguide/visitors/tokenize/comments.py
+++ b/wemake_python_styleguide/visitors/tokenize/comments.py
@@ -44,7 +44,7 @@
     """Checks comment tokens."""
 
     _no_cover: ClassVar[Pattern] = re.compile(r'^pragma:\s+no\s+cover')
-    _noqa_check: ClassVar[Pattern] = re.compile(r'^noqa:?($|[A-Z\d\,\s]+)')
+    _noqa_check: ClassVar[Pattern] = re.compile(r'^(noqa:?)($|[A-Z\d\,\s]+)')
     _type_check: ClassVar[Pattern] = re.compile(
         r'^type:\s?([\w\d\[\]\'\"\.]+)$',
     )
@@ -77,8 +77,10 @@
             return
 
         self._noqa_count += 1
-        excludes = match.groups()[0].strip()
-        if not excludes:
+        excludes = match.groups()[1].strip()
+        prefix = match.groups()[0].strip()
+
+        if not excludes or prefix[-1] != ':':
             # We cannot pass the actual line here,
             # since it will be ignored due to `# noqa` comment:
             self.add_violation(WrongMagicCommentViolation(text=comment_text))

{"golden_diff": "diff --git a/wemake_python_styleguide/visitors/tokenize/comments.py b/wemake_python_styleguide/visitors/tokenize/comments.py\n--- a/wemake_python_styleguide/visitors/tokenize/comments.py\n+++ b/wemake_python_styleguide/visitors/tokenize/comments.py\n@@ -44,7 +44,7 @@\n     \"\"\"Checks comment tokens.\"\"\"\n \n     _no_cover: ClassVar[Pattern] = re.compile(r'^pragma:\\s+no\\s+cover')\n-    _noqa_check: ClassVar[Pattern] = re.compile(r'^noqa:?($|[A-Z\\d\\,\\s]+)')\n+    _noqa_check: ClassVar[Pattern] = re.compile(r'^(noqa:?)($|[A-Z\\d\\,\\s]+)')\n     _type_check: ClassVar[Pattern] = re.compile(\n         r'^type:\\s?([\\w\\d\\[\\]\\'\\\"\\.]+)$',\n     )\n@@ -77,8 +77,10 @@\n             return\n \n         self._noqa_count += 1\n-        excludes = match.groups()[0].strip()\n-        if not excludes:\n+        excludes = match.groups()[1].strip()\n+        prefix = match.groups()[0].strip()\n+\n+        if not excludes or prefix[-1] != ':':\n             # We cannot pass the actual line here,\n             # since it will be ignored due to `# noqa` comment:\n             self.add_violation(WrongMagicCommentViolation(text=comment_text))\n", "issue": "Make sure `WrongMagicCommentViolation` also catches `noqa WPS100` comments\nThere are wrong comments that are widely used by newcomers: `# noqa WPS100`\r\nBut, it is simply wrong. \r\n\r\nWe need to be sure that `WrongMagicCommentViolation` catches that.\nMake sure `WrongMagicCommentViolation` also catches `noqa WPS100` comments\nThere are wrong comments that are widely used by newcomers: `# noqa WPS100`\r\nBut, it is simply wrong. \r\n\r\nWe need to be sure that `WrongMagicCommentViolation` catches that.\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\nr\"\"\"\nDisallows to use incorrect magic comments.\n\nThat's how a basic ``comment`` type token looks like:\n\n.. code:: python\n\n    TokenInfo(\n        type=57 (COMMENT),\n        string='# noqa: WPS100',\n        start=(1, 4),\n        end=(1, 16),\n        line=\"u'' # noqa: WPS100\\n\",\n    )\n\nAll comments have the same type.\n\"\"\"\n\nimport re\nimport tokenize\nfrom typing import ClassVar, FrozenSet\nfrom typing.re import Pattern\n\nfrom typing_extensions import final\n\nfrom wemake_python_styleguide.constants import MAX_NO_COVER_COMMENTS\nfrom wemake_python_styleguide.logic.tokens import get_comment_text\nfrom wemake_python_styleguide.violations.best_practices import (\n    OveruseOfNoCoverCommentViolation,\n    OveruseOfNoqaCommentViolation,\n    WrongDocCommentViolation,\n    WrongMagicCommentViolation,\n)\nfrom wemake_python_styleguide.violations.consistency import (\n    EmptyLineAfterCodingViolation,\n)\nfrom wemake_python_styleguide.visitors.base import BaseTokenVisitor\n\n\n@final\nclass WrongCommentVisitor(BaseTokenVisitor):\n    \"\"\"Checks comment tokens.\"\"\"\n\n    _no_cover: ClassVar[Pattern] = re.compile(r'^pragma:\\s+no\\s+cover')\n    _noqa_check: ClassVar[Pattern] = re.compile(r'^noqa:?($|[A-Z\\d\\,\\s]+)')\n    _type_check: ClassVar[Pattern] = re.compile(\n        r'^type:\\s?([\\w\\d\\[\\]\\'\\\"\\.]+)$',\n    )\n\n    def __init__(self, *args, **kwargs) -> None:\n        \"\"\"Initializes a counter.\"\"\"\n        super().__init__(*args, **kwargs)\n        self._noqa_count = 0\n        self._no_cover_count = 0\n\n    def visit_comment(self, token: tokenize.TokenInfo) -> None:\n        \"\"\"\n        Performs comment checks.\n\n        Raises:\n            OveruseOfNoqaCommentViolation\n            WrongDocCommentViolation\n            WrongMagicCommentViolation\n\n        \"\"\"\n        self._check_noqa(token)\n        self._check_typed_ast(token)\n        self._check_empty_doc_comment(token)\n        self._check_cover_comments(token)\n\n    def _check_noqa(self, token: tokenize.TokenInfo) -> None:\n        comment_text = get_comment_text(token)\n        match = self._noqa_check.match(comment_text)\n        if not match:\n            return\n\n        self._noqa_count += 1\n        excludes = match.groups()[0].strip()\n        if not excludes:\n            # We cannot pass the actual line here,\n            # since it will be ignored due to `# noqa` comment:\n            self.add_violation(WrongMagicCommentViolation(text=comment_text))\n\n    def _check_typed_ast(self, token: tokenize.TokenInfo) -> None:\n        comment_text = get_comment_text(token)\n        match = self._type_check.match(comment_text)\n        if not match:\n            return\n\n        declared_type = match.groups()[0].strip()\n        if declared_type != 'ignore':\n            self.add_violation(\n                WrongMagicCommentViolation(token, text=comment_text),\n            )\n\n    def _check_empty_doc_comment(self, token: tokenize.TokenInfo) -> None:\n        if get_comment_text(token) == ':':\n            self.add_violation(WrongDocCommentViolation(token))\n\n    def _check_cover_comments(self, token: tokenize.TokenInfo) -> None:\n        comment_text = get_comment_text(token)\n        match = self._no_cover.match(comment_text)\n        if not match:\n            return\n\n        self._no_cover_count += 1\n\n    def _post_visit(self) -> None:\n        if self._noqa_count > self.options.max_noqa_comments:\n            self.add_violation(\n                OveruseOfNoqaCommentViolation(text=str(self._noqa_count)),\n            )\n        if self._no_cover_count > MAX_NO_COVER_COMMENTS:\n            self.add_violation(\n                OveruseOfNoCoverCommentViolation(\n                    text=str(self._no_cover_count),\n                ),\n            )\n\n\n@final\nclass FileMagicCommentsVisitor(BaseTokenVisitor):\n    \"\"\"Checks comments for the whole file.\"\"\"\n\n    _allowed_newlines: ClassVar[FrozenSet[int]] = frozenset((\n        tokenize.NL,\n        tokenize.NEWLINE,\n        tokenize.ENDMARKER,\n    ))\n\n    def visit_comment(self, token: tokenize.TokenInfo) -> None:\n        \"\"\"\n        Checks special comments that are magic per each file.\n\n        Raises:\n            EmptyLineAfterCoddingViolation\n\n        \"\"\"\n        self._check_empty_line_after_codding(token)\n\n    def _offset_for_comment_line(self, token: tokenize.TokenInfo) -> int:\n        if token.exact_type == tokenize.COMMENT:\n            return 2\n        return 0\n\n    def _check_empty_line_after_codding(\n        self,\n        token: tokenize.TokenInfo,\n    ) -> None:\n        \"\"\"\n        Checks that we have a blank line after the magic comments.\n\n        PEP-263 says: a magic comment must be placed into the source\n        files either as first or second line in the file\n\n        See also:\n            https://www.python.org/dev/peps/pep-0263/\n\n        \"\"\"\n        if token.start == (1, 0):\n            tokens = iter(self.file_tokens[self.file_tokens.index(token):])\n            available_offset = 2  # comment + newline\n            while True:\n                next_token = next(tokens)\n                if not available_offset:\n                    available_offset = self._offset_for_comment_line(\n                        next_token,\n                    )\n\n                if available_offset > 0:\n                    available_offset -= 1\n                    continue\n\n                if next_token.exact_type not in self._allowed_newlines:\n                    self.add_violation(EmptyLineAfterCodingViolation(token))\n                break\n", "path": "wemake_python_styleguide/visitors/tokenize/comments.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\nr\"\"\"\nDisallows to use incorrect magic comments.\n\nThat's how a basic ``comment`` type token looks like:\n\n.. code:: python\n\n    TokenInfo(\n        type=57 (COMMENT),\n        string='# noqa: WPS100',\n        start=(1, 4),\n        end=(1, 16),\n        line=\"u'' # noqa: WPS100\\n\",\n    )\n\nAll comments have the same type.\n\"\"\"\n\nimport re\nimport tokenize\nfrom typing import ClassVar, FrozenSet\nfrom typing.re import Pattern\n\nfrom typing_extensions import final\n\nfrom wemake_python_styleguide.constants import MAX_NO_COVER_COMMENTS\nfrom wemake_python_styleguide.logic.tokens import get_comment_text\nfrom wemake_python_styleguide.violations.best_practices import (\n    OveruseOfNoCoverCommentViolation,\n    OveruseOfNoqaCommentViolation,\n    WrongDocCommentViolation,\n    WrongMagicCommentViolation,\n)\nfrom wemake_python_styleguide.violations.consistency import (\n    EmptyLineAfterCodingViolation,\n)\nfrom wemake_python_styleguide.visitors.base import BaseTokenVisitor\n\n\n@final\nclass WrongCommentVisitor(BaseTokenVisitor):\n    \"\"\"Checks comment tokens.\"\"\"\n\n    _no_cover: ClassVar[Pattern] = re.compile(r'^pragma:\\s+no\\s+cover')\n    _noqa_check: ClassVar[Pattern] = re.compile(r'^(noqa:?)($|[A-Z\\d\\,\\s]+)')\n    _type_check: ClassVar[Pattern] = re.compile(\n        r'^type:\\s?([\\w\\d\\[\\]\\'\\\"\\.]+)$',\n    )\n\n    def __init__(self, *args, **kwargs) -> None:\n        \"\"\"Initializes a counter.\"\"\"\n        super().__init__(*args, **kwargs)\n        self._noqa_count = 0\n        self._no_cover_count = 0\n\n    def visit_comment(self, token: tokenize.TokenInfo) -> None:\n        \"\"\"\n        Performs comment checks.\n\n        Raises:\n            OveruseOfNoqaCommentViolation\n            WrongDocCommentViolation\n            WrongMagicCommentViolation\n\n        \"\"\"\n        self._check_noqa(token)\n        self._check_typed_ast(token)\n        self._check_empty_doc_comment(token)\n        self._check_cover_comments(token)\n\n    def _check_noqa(self, token: tokenize.TokenInfo) -> None:\n        comment_text = get_comment_text(token)\n        match = self._noqa_check.match(comment_text)\n        if not match:\n            return\n\n        self._noqa_count += 1\n        excludes = match.groups()[1].strip()\n        prefix = match.groups()[0].strip()\n\n        if not excludes or prefix[-1] != ':':\n            # We cannot pass the actual line here,\n            # since it will be ignored due to `# noqa` comment:\n            self.add_violation(WrongMagicCommentViolation(text=comment_text))\n\n    def _check_typed_ast(self, token: tokenize.TokenInfo) -> None:\n        comment_text = get_comment_text(token)\n        match = self._type_check.match(comment_text)\n        if not match:\n            return\n\n        declared_type = match.groups()[0].strip()\n        if declared_type != 'ignore':\n            self.add_violation(\n                WrongMagicCommentViolation(token, text=comment_text),\n            )\n\n    def _check_empty_doc_comment(self, token: tokenize.TokenInfo) -> None:\n        if get_comment_text(token) == ':':\n            self.add_violation(WrongDocCommentViolation(token))\n\n    def _check_cover_comments(self, token: tokenize.TokenInfo) -> None:\n        comment_text = get_comment_text(token)\n        match = self._no_cover.match(comment_text)\n        if not match:\n            return\n\n        self._no_cover_count += 1\n\n    def _post_visit(self) -> None:\n        if self._noqa_count > self.options.max_noqa_comments:\n            self.add_violation(\n                OveruseOfNoqaCommentViolation(text=str(self._noqa_count)),\n            )\n        if self._no_cover_count > MAX_NO_COVER_COMMENTS:\n            self.add_violation(\n                OveruseOfNoCoverCommentViolation(\n                    text=str(self._no_cover_count),\n                ),\n            )\n\n\n@final\nclass FileMagicCommentsVisitor(BaseTokenVisitor):\n    \"\"\"Checks comments for the whole file.\"\"\"\n\n    _allowed_newlines: ClassVar[FrozenSet[int]] = frozenset((\n        tokenize.NL,\n        tokenize.NEWLINE,\n        tokenize.ENDMARKER,\n    ))\n\n    def visit_comment(self, token: tokenize.TokenInfo) -> None:\n        \"\"\"\n        Checks special comments that are magic per each file.\n\n        Raises:\n            EmptyLineAfterCoddingViolation\n\n        \"\"\"\n        self._check_empty_line_after_codding(token)\n\n    def _offset_for_comment_line(self, token: tokenize.TokenInfo) -> int:\n        if token.exact_type == tokenize.COMMENT:\n            return 2\n        return 0\n\n    def _check_empty_line_after_codding(\n        self,\n        token: tokenize.TokenInfo,\n    ) -> None:\n        \"\"\"\n        Checks that we have a blank line after the magic comments.\n\n        PEP-263 says: a magic comment must be placed into the source\n        files either as first or second line in the file\n\n        See also:\n            https://www.python.org/dev/peps/pep-0263/\n\n        \"\"\"\n        if token.start == (1, 0):\n            tokens = iter(self.file_tokens[self.file_tokens.index(token):])\n            available_offset = 2  # comment + newline\n            while True:\n                next_token = next(tokens)\n                if not available_offset:\n                    available_offset = self._offset_for_comment_line(\n                        next_token,\n                    )\n\n                if available_offset > 0:\n                    available_offset -= 1\n                    continue\n\n                if next_token.exact_type not in self._allowed_newlines:\n                    self.add_violation(EmptyLineAfterCodingViolation(token))\n                break\n", "path": "wemake_python_styleguide/visitors/tokenize/comments.py"}]}