HPI/my/twitter/common.py
Dima Gerasimov b9852f45cf twitter: use import_source and proper merging for tweets from different sources
+ use proper datetime_aware for created_at
2022-02-08 20:45:10 +00:00

21 lines
516 B
Python

from my.core import __NOT_HPI_MODULE__
from itertools import chain
from typing import Iterator, Any
from more_itertools import unique_everseen
# TODO add proper Protocol for Tweet
Tweet = Any
from my.core import warn_if_empty, Res
@warn_if_empty
def merge_tweets(*sources: Iterator[Res[Tweet]]) -> Iterator[Res[Tweet]]:
def key(r: Res[Tweet]):
if isinstance(r, Exception):
return str(r)
else:
return r.id_str
yield from unique_everseen(chain(*sources), key=key)