|
31 | 31 | from dataclasses import dataclass, field
|
32 | 32 | from typing import TYPE_CHECKING, Any, Iterator, Literal, Pattern, TypeVar, Union
|
33 | 33 |
|
34 |
| -from discord.utils import MISSING, MissingField, maybe_coroutine, resolve_annotation |
35 |
| - |
36 |
| -if sys.version_info >= (3, 11): |
37 |
| - _MISSING = MissingField |
38 |
| -else: |
39 |
| - _MISSING = MISSING |
| 34 | +from discord.utils import ( |
| 35 | + MISSING, |
| 36 | + maybe_coroutine, |
| 37 | + resolve_annotation, |
| 38 | +) |
40 | 39 |
|
41 | 40 | from .converter import run_converters
|
42 | 41 | from .errors import (
|
|
59 | 58 | from .context import Context
|
60 | 59 |
|
61 | 60 |
|
| 61 | +def _missing_field_factory() -> field: |
| 62 | + return field(default_factory=lambda: MISSING) |
| 63 | + |
| 64 | + |
62 | 65 | @dataclass
|
63 | 66 | class Flag:
|
64 | 67 | """Represents a flag parameter for :class:`FlagConverter`.
|
@@ -86,13 +89,13 @@ class Flag:
|
86 | 89 | Whether multiple given values overrides the previous value.
|
87 | 90 | """
|
88 | 91 |
|
89 |
| - name: str = _MISSING |
| 92 | + name: str = _missing_field_factory() |
90 | 93 | aliases: list[str] = field(default_factory=list)
|
91 |
| - attribute: str = _MISSING |
92 |
| - annotation: Any = _MISSING |
93 |
| - default: Any = _MISSING |
94 |
| - max_args: int = _MISSING |
95 |
| - override: bool = _MISSING |
| 94 | + attribute: str = _missing_field_factory() |
| 95 | + annotation: Any = _missing_field_factory() |
| 96 | + default: Any = _missing_field_factory() |
| 97 | + max_args: int = _missing_field_factory() |
| 98 | + override: bool = _missing_field_factory() |
96 | 99 | cast_to_dict: bool = False
|
97 | 100 |
|
98 | 101 | @property
|
|
0 commit comments