PY37 = 7
PY38 = 8
PY39 = 9
+ PY310 = 10
def is_python2(self) -> bool:
return self is TargetVersion.PY27
ASSIGNMENT_EXPRESSIONS = 8
POS_ONLY_ARGUMENTS = 9
RELAXED_DECORATORS = 10
+ PATTERN_MATCHING = 11
FORCE_OPTIONAL_PARENTHESES = 50
+ # temporary for Python 2 deprecation
+ PRINT_STMT = 200
+ EXEC_STMT = 201
+ AUTOMATIC_PARAMETER_UNPACKING = 202
+ COMMA_STYLE_EXCEPT = 203
+ COMMA_STYLE_RAISE = 204
+ LONG_INT_LITERAL = 205
+ OCTAL_INT_LITERAL = 206
+ BACKQUOTE_REPR = 207
+
VERSION_TO_FEATURES: Dict[TargetVersion, Set[Feature]] = {
- TargetVersion.PY27: {Feature.ASYNC_IDENTIFIERS},
+ TargetVersion.PY27: {
+ Feature.ASYNC_IDENTIFIERS,
+ Feature.PRINT_STMT,
+ Feature.EXEC_STMT,
+ Feature.AUTOMATIC_PARAMETER_UNPACKING,
+ Feature.COMMA_STYLE_EXCEPT,
+ Feature.COMMA_STYLE_RAISE,
+ Feature.LONG_INT_LITERAL,
+ Feature.OCTAL_INT_LITERAL,
+ Feature.BACKQUOTE_REPR,
+ },
TargetVersion.PY33: {Feature.UNICODE_LITERALS, Feature.ASYNC_IDENTIFIERS},
TargetVersion.PY34: {Feature.UNICODE_LITERALS, Feature.ASYNC_IDENTIFIERS},
TargetVersion.PY35: {
Feature.RELAXED_DECORATORS,
Feature.POS_ONLY_ARGUMENTS,
},
+ TargetVersion.PY310: {
+ Feature.PATTERN_MATCHING,
+ },
}
line_length: int = DEFAULT_LINE_LENGTH
string_normalization: bool = True
is_pyi: bool = False
+ is_ipynb: bool = False
magic_trailing_comma: bool = True
experimental_string_processing: bool = False
str(self.line_length),
str(int(self.string_normalization)),
str(int(self.is_pyi)),
+ str(int(self.is_ipynb)),
str(int(self.magic_trailing_comma)),
str(int(self.experimental_string_processing)),
]