Changeset - 4de5df9035f6
[Not reviewed]
0 2 0
Brett Smith - 3 years ago 2021-02-19 23:54:36
brettcsmith@brettcsmith.org
typing: Upgrade more Posting Iterables to Iterators.
2 files changed with 5 insertions and 4 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/cliutil.py
Show inline comments
...
 
@@ -43,6 +43,7 @@ from typing import (
 
    Hashable,
 
    IO,
 
    Iterable,
 
    Iterator,
 
    NamedTuple,
 
    NoReturn,
 
    Optional,
...
 
@@ -283,7 +284,7 @@ class SearchTerm(NamedTuple):
 
            return cls(key, pattern)
 
        return parse_search_term
 

	
 
    def filter_postings(self, postings: Iterable[data.Posting]) -> Iterable[data.Posting]:
 
    def filter_postings(self, postings: Iterable[data.Posting]) -> Iterator[data.Posting]:
 
        return filters.filter_meta_match(
 
            postings, self.meta_key, re.compile(self.pattern),
 
        )
conservancy_beancount/filters.py
Show inline comments
...
 
@@ -44,7 +44,7 @@ def audit_date(entries: Entries) -> Optional[datetime.date]:
 
            return entry.date
 
    return None
 

	
 
def filter_meta_equal(postings: Postings, key: MetaKey, value: MetaValue) -> Postings:
 
def filter_meta_equal(postings: Postings, key: MetaKey, value: MetaValue) -> Iterator[data.Posting]:
 
    for post in postings:
 
        try:
 
            if post.meta[key] == value:
...
 
@@ -52,7 +52,7 @@ def filter_meta_equal(postings: Postings, key: MetaKey, value: MetaValue) -> Pos
 
        except KeyError:
 
            pass
 

	
 
def filter_meta_match(postings: Postings, key: MetaKey, regexp: Regexp) -> Postings:
 
def filter_meta_match(postings: Postings, key: MetaKey, regexp: Regexp) -> Iterator[data.Posting]:
 
    for post in postings:
 
        try:
 
            if re.search(regexp, post.meta[key]):
...
 
@@ -60,7 +60,7 @@ def filter_meta_match(postings: Postings, key: MetaKey, regexp: Regexp) -> Posti
 
        except (KeyError, TypeError):
 
            pass
 

	
 
def filter_for_rt_id(postings: Postings, ticket_id: Union[int, str]) -> Postings:
 
def filter_for_rt_id(postings: Postings, ticket_id: Union[int, str]) -> Iterator[data.Posting]:
 
    """Filter postings with a primary RT ticket
 

	
 
    This functions yields postings where the *first* rt-id matches the given
0 comments (0 inline, 0 general)