Use implicit defaults for auto_attribs

It reads much nicer.
This commit is contained in:
Łukasz Langa 2018-03-16 17:42:57 -07:00
parent 9c9f6eb6d5
commit 28d1442d57

View File

@ -12,7 +12,7 @@
Dict, Generic, Iterable, Iterator, List, Optional, Set, Tuple, TypeVar, Union Dict, Generic, Iterable, Iterator, List, Optional, Set, Tuple, TypeVar, Union
) )
from attr import attrib, dataclass, Factory from attr import dataclass, Factory
import click import click
# lib2to3 fork # lib2to3 fork
@ -265,7 +265,7 @@ def visit_default(self, node: LN) -> Iterator[T]:
@dataclass @dataclass
class DebugVisitor(Visitor[T]): class DebugVisitor(Visitor[T]):
tree_depth: int = attrib(default=0) tree_depth: int = 0
def visit_default(self, node: LN) -> Iterator[T]: def visit_default(self, node: LN) -> Iterator[T]:
indent = ' ' * (2 * self.tree_depth) indent = ' ' * (2 * self.tree_depth)
@ -335,10 +335,10 @@ def visit_default(self, node: LN) -> Iterator[T]:
@dataclass @dataclass
class BracketTracker: class BracketTracker:
depth: int = attrib(default=0) depth: int = 0
bracket_match: Dict[Tuple[Depth, NodeType], Leaf] = attrib(default=Factory(dict)) bracket_match: Dict[Tuple[Depth, NodeType], Leaf] = Factory(dict)
delimiters: Dict[LeafID, Priority] = attrib(default=Factory(dict)) delimiters: Dict[LeafID, Priority] = Factory(dict)
previous: Optional[Leaf] = attrib(default=None) previous: Optional[Leaf] = None
def mark(self, leaf: Leaf) -> None: def mark(self, leaf: Leaf) -> None:
if leaf.type == token.COMMENT: if leaf.type == token.COMMENT:
@ -389,13 +389,13 @@ def max_priority(self, exclude: Iterable[LeafID] =()) -> int:
@dataclass @dataclass
class Line: class Line:
depth: int = attrib(default=0) depth: int = 0
leaves: List[Leaf] = attrib(default=Factory(list)) leaves: List[Leaf] = Factory(list)
comments: Dict[LeafID, Leaf] = attrib(default=Factory(dict)) comments: Dict[LeafID, Leaf] = Factory(dict)
bracket_tracker: BracketTracker = attrib(default=Factory(BracketTracker)) bracket_tracker: BracketTracker = Factory(BracketTracker)
inside_brackets: bool = attrib(default=False) inside_brackets: bool = False
has_for: bool = attrib(default=False) has_for: bool = False
_for_loop_variable: bool = attrib(default=False, init=False) _for_loop_variable: bool = False
def append(self, leaf: Leaf, preformatted: bool = False) -> None: def append(self, leaf: Leaf, preformatted: bool = False) -> None:
has_value = leaf.value.strip() has_value = leaf.value.strip()
@ -611,9 +611,9 @@ class EmptyLineTracker:
Note: this tracker works on lines that haven't been split yet. Note: this tracker works on lines that haven't been split yet.
""" """
previous_line: Optional[Line] = attrib(default=None) previous_line: Optional[Line] = None
previous_after: int = attrib(default=0) previous_after: int = 0
previous_defs: List[int] = attrib(default=Factory(list)) previous_defs: List[int] = Factory(list)
def maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]: def maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
"""Returns the number of extra empty lines before and after the `current_line`. """Returns the number of extra empty lines before and after the `current_line`.
@ -679,8 +679,8 @@ class LineGenerator(Visitor[Line]):
Note: destroys the tree it's visiting by mutating prefixes of its leaves Note: destroys the tree it's visiting by mutating prefixes of its leaves
in ways that will no longer stringify to valid Python code on the tree. in ways that will no longer stringify to valid Python code on the tree.
""" """
current_line: Line = attrib(default=Factory(Line)) current_line: Line = Factory(Line)
standalone_comments: List[Leaf] = attrib(default=Factory(list)) standalone_comments: List[Leaf] = Factory(list)
def line(self, indent: int = 0) -> Iterator[Line]: def line(self, indent: int = 0) -> Iterator[Line]:
"""Generate a line. """Generate a line.
@ -1383,9 +1383,9 @@ def gen_python_files_in_dir(path: Path) -> Iterator[Path]:
@dataclass @dataclass
class Report: class Report:
"""Provides a reformatting counter.""" """Provides a reformatting counter."""
change_count: int = attrib(default=0) change_count: int = 0
same_count: int = attrib(default=0) same_count: int = 0
failure_count: int = attrib(default=0) failure_count: int = 0
def done(self, src: Path, changed: bool) -> None: def done(self, src: Path, changed: bool) -> None:
"""Increment the counter for successful reformatting. Write out a message.""" """Increment the counter for successful reformatting. Write out a message."""