---
source: crates/ruff_linter/src/rules/ruff/mod.rs
---
RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:15:15
   |
13 | __all__: typing.Any = ("A", "B")
14 | __all__ = ["A", "B"]
15 | __all__ = [A, "B", "B"]
   |               ---  ^^^ `B` duplicated here
   |               |
   |               previous occurrence of `B` here
16 | __all__ += ["A", "B"]
17 | __all__.extend(["A", "B"])
   |
help: Remove duplicate entries from `__all__`
   |
14 | __all__ = ["A", "B"]
   - __all__ = [A, "B", "B"]
15 + __all__ = [A, "B"]
16 | __all__ += ["A", "B"]
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:20:23
   |
19 | # Bad
20 | __all__: list[str] = ["A", "B", "A"]
   |                       ---       ^^^ `A` duplicated here
   |                       |
   |                       previous occurrence of `A` here
21 | __all__: typing.Any = ("A", "B", "B")
22 | __all__ = ["A", "B", "A"]
   |
help: Remove duplicate entries from `__all__`
   |
19 | # Bad
   - __all__: list[str] = ["A", "B", "A"]
20 + __all__: list[str] = ["A", "B"]
21 | __all__: typing.Any = ("A", "B", "B")
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:21:29
   |
19 | # Bad
20 | __all__: list[str] = ["A", "B", "A"]
21 | __all__: typing.Any = ("A", "B", "B")
   |                             ---  ^^^ `B` duplicated here
   |                             |
   |                             previous occurrence of `B` here
22 | __all__ = ["A", "B", "A"]
23 | __all__ = ["A", "A", "B", "B"]
   |
help: Remove duplicate entries from `__all__`
   |
20 | __all__: list[str] = ["A", "B", "A"]
   - __all__: typing.Any = ("A", "B", "B")
21 + __all__: typing.Any = ("A", "B")
22 | __all__ = ["A", "B", "A"]
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:22:12
   |
20 | __all__: list[str] = ["A", "B", "A"]
21 | __all__: typing.Any = ("A", "B", "B")
22 | __all__ = ["A", "B", "A"]
   |            ---       ^^^ `A` duplicated here
   |            |
   |            previous occurrence of `A` here
23 | __all__ = ["A", "A", "B", "B"]
24 | __all__ = [
   |
help: Remove duplicate entries from `__all__`
   |
21 | __all__: typing.Any = ("A", "B", "B")
   - __all__ = ["A", "B", "A"]
22 + __all__ = ["A", "B"]
23 | __all__ = ["A", "A", "B", "B"]
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:23:12
   |
21 | __all__: typing.Any = ("A", "B", "B")
22 | __all__ = ["A", "B", "A"]
23 | __all__ = ["A", "A", "B", "B"]
   |            ---  ^^^ `A` duplicated here
   |            |
   |            previous occurrence of `A` here
24 | __all__ = [
25 |     "A",
   |
help: Remove duplicate entries from `__all__`
   |
22 | __all__ = ["A", "B", "A"]
   - __all__ = ["A", "A", "B", "B"]
23 + __all__ = ["A", "B", "B"]
24 | __all__ = [
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:23:22
   |
21 | __all__: typing.Any = ("A", "B", "B")
22 | __all__ = ["A", "B", "A"]
23 | __all__ = ["A", "A", "B", "B"]
   |                      ---  ^^^ `B` duplicated here
   |                      |
   |                      previous occurrence of `B` here
24 | __all__ = [
25 |     "A",
   |
help: Remove duplicate entries from `__all__`
   |
22 | __all__ = ["A", "B", "A"]
   - __all__ = ["A", "A", "B", "B"]
23 + __all__ = ["A", "A", "B"]
24 | __all__ = [
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:25:5
   |
23 | __all__ = ["A", "A", "B", "B"]
24 | __all__ = [
25 |     "A",
   |     --- previous occurrence of `A` here
26 |     "A",
   |     ^^^ `A` duplicated here
27 |     "B",
28 |     "B"
   |
help: Remove duplicate entries from `__all__`
   |
25 |     "A",
   -     "A",
26 |     "B",
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:27:5
   |
25 |     "A",
26 |     "A",
27 |     "B",
   |     --- previous occurrence of `B` here
28 |     "B"
   |     ^^^ `B` duplicated here
29 | ]
30 | __all__ += ["B", "B"]
   |
help: Remove duplicate entries from `__all__`
   |
26 |     "A",
   -     "B",
27 |     "B"
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:30:13
   |
28 |     "B"
29 | ]
30 | __all__ += ["B", "B"]
   |             ---  ^^^ `B` duplicated here
   |             |
   |             previous occurrence of `B` here
31 | __all__.extend(["B", "B"])
   |
help: Remove duplicate entries from `__all__`
   |
29 | ]
   - __all__ += ["B", "B"]
30 + __all__ += ["B"]
31 | __all__.extend(["B", "B"])
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:31:17
   |
29 | ]
30 | __all__ += ["B", "B"]
31 | __all__.extend(["B", "B"])
   |                 ---  ^^^ `B` duplicated here
   |                 |
   |                 previous occurrence of `B` here
32 |
33 | # Bad, unsafe
   |
help: Remove duplicate entries from `__all__`
   |
30 | __all__ += ["B", "B"]
   - __all__.extend(["B", "B"])
31 + __all__.extend(["B"])
32 |
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:35:5
   |
33 | # Bad, unsafe
34 | __all__ = [
35 |     "A",
   |     --- previous occurrence of `A` here
36 |     "A",
   |     ^^^ `A` duplicated here
37 |     "B",
38 |     # Comment
   |
help: Remove duplicate entries from `__all__`
   |
35 |     "A",
   -     "A",
36 |     "B",
   |

RUF068 [*] `__all__` contains duplicate entries
  --> RUF068.py:37:5
   |
35 |     "A",
36 |     "A",
37 |     "B",
   |     --- previous occurrence of `B` here
38 |     # Comment
39 |     "B",  # 2
   |     ^^^ `B` duplicated here
40 |     # 3
41 | ]
   |
help: Remove duplicate entries from `__all__`
   |
36 |     "A",
   -     "B",
   -     # Comment
37 |     "B",  # 2
   |
note: This is an unsafe fix and may change runtime behavior
