/
githubmirror
/
cpython
Обзор
Документация
Войти
/
githubmirror
/
cpython
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Tools/c-analyzer/c_common/iterutil.py
44 строки
1 KB
Nikita Sobolev
gh-102033: Fix syntax error in `Tools/c-analyzer` (GH-102066)
22 мар 2023, 17:59
Не верифицирован
22 мар 2023, 17:59
1ca3155
Код
Авторство
О чём код?
def peek_and_iter(items): if not items: return None, None items = iter(items) try: peeked = next(items) except StopIteration: return None, None def chain(): yield peeked yield from items return chain(), peeked def iter_many(items, onempty=None): if not items: if onempty is None: return if not callable(onempty): raise onEmpty items = onempty(items) yield from iter_many(items, onempty=None) return items = iter(items) try: first = next(items) except StopIteration: if onempty is None: return if not callable(onempty): raise onEmpty items = onempty(items) yield from iter_many(items, onempty=None) else: try: second = next(items) except StopIteration: yield first, False return else: yield first, True yield second, True for item in items: yield item, True