chosen by the user.
"""
-from hashlib import sha256
import sys
-
from dataclasses import dataclass, field
from enum import Enum, auto
+from hashlib import sha256
from operator import attrgetter
from typing import Dict, Set
from warnings import warn
PY38 = 8
PY39 = 9
PY310 = 10
+ PY311 = 11
class Feature(Enum):
PATTERN_MATCHING = 11
UNPACKING_ON_FLOW = 12
ANN_ASSIGN_EXTENDED_RHS = 13
+ EXCEPT_STAR = 14
+ VARIADIC_GENERICS = 15
FORCE_OPTIONAL_PARENTHESES = 50
# __future__ flags
Feature.ANN_ASSIGN_EXTENDED_RHS,
Feature.PATTERN_MATCHING,
},
+ TargetVersion.PY311: {
+ Feature.F_STRINGS,
+ Feature.NUMERIC_UNDERSCORES,
+ Feature.TRAILING_COMMA_IN_CALL,
+ Feature.TRAILING_COMMA_IN_DEF,
+ Feature.ASYNC_KEYWORDS,
+ Feature.FUTURE_ANNOTATIONS,
+ Feature.ASSIGNMENT_EXPRESSIONS,
+ Feature.RELAXED_DECORATORS,
+ Feature.POS_ONLY_ARGUMENTS,
+ Feature.UNPACKING_ON_FLOW,
+ Feature.ANN_ASSIGN_EXTENDED_RHS,
+ Feature.PATTERN_MATCHING,
+ Feature.EXCEPT_STAR,
+ Feature.VARIADIC_GENERICS,
+ },
}
class Preview(Enum):
"""Individual preview style features."""
+ annotation_parens = auto()
+ long_docstring_quotes_on_newline = auto()
+ normalize_docstring_quotes_and_prefixes_properly = auto()
+ one_element_subscript = auto()
+ remove_block_trailing_newline = auto()
+ remove_redundant_parens = auto()
string_processing = auto()
"""
if feature is Preview.string_processing:
return self.preview or self.experimental_string_processing
- # TODO: Remove type ignore comment once preview contains more features
- # than just ESP
- return self.preview # type: ignore
+ return self.preview
def get_cache_key(self) -> str:
if self.target_versions: