Make Source explicitly implement __iter__()

Source was previously iterable because it implements `__getitem__()`,
which is apparently a thing from before `__iter__()` was introduced.
To reduce mypy's and my own confusion, implement `__iter__()` directly.
This commit is contained in:
Ran Benita 2019-11-16 15:50:58 +02:00
parent 307add025b
commit a649f157de
1 changed files with 4 additions and 0 deletions

View File

@ -8,6 +8,7 @@ import warnings
from ast import PyCF_ONLY_AST as _AST_FLAG from ast import PyCF_ONLY_AST as _AST_FLAG
from bisect import bisect_right from bisect import bisect_right
from types import FrameType from types import FrameType
from typing import Iterator
from typing import List from typing import List
from typing import Optional from typing import Optional
from typing import Sequence from typing import Sequence
@ -73,6 +74,9 @@ class Source:
newsource.lines = self.lines[key.start : key.stop] newsource.lines = self.lines[key.start : key.stop]
return newsource return newsource
def __iter__(self) -> Iterator[str]:
return iter(self.lines)
def __len__(self) -> int: def __len__(self) -> int:
return len(self.lines) return len(self.lines)