Changeset View
Changeset View
Standalone View
Standalone View
swh/provenance/revision.py
from datetime import datetime, timezone | from datetime import datetime, timezone | ||||
from itertools import islice | |||||
import logging | import logging | ||||
import os | import os | ||||
import time | import time | ||||
from typing import Generator, Iterable, Iterator, List, Optional, Tuple | from typing import Generator, Iterable, Iterator, List, Optional, Tuple | ||||
from swh.model.model import Sha1Git | from swh.model.model import Sha1Git | ||||
from .archive import ArchiveInterface | from .archive import ArchiveInterface | ||||
Show All 17 Lines | class CSVRevisionIterator: | ||||
def __init__( | def __init__( | ||||
self, | self, | ||||
revisions: Iterable[Tuple[Sha1Git, datetime, Sha1Git]], | revisions: Iterable[Tuple[Sha1Git, datetime, Sha1Git]], | ||||
limit: Optional[int] = None, | limit: Optional[int] = None, | ||||
) -> None: | ) -> None: | ||||
self.revisions: Iterator[Tuple[Sha1Git, datetime, Sha1Git]] | self.revisions: Iterator[Tuple[Sha1Git, datetime, Sha1Git]] | ||||
if limit is not None: | if limit is not None: | ||||
from itertools import islice | |||||
self.revisions = islice(revisions, limit) | self.revisions = islice(revisions, limit) | ||||
else: | else: | ||||
self.revisions = iter(revisions) | self.revisions = iter(revisions) | ||||
def __iter__(self) -> Generator[RevisionEntry, None, None]: | def __iter__(self) -> Generator[RevisionEntry, None, None]: | ||||
for id, date, root in self.revisions: | for id, date, root in self.revisions: | ||||
if date.tzinfo is None: | if date.tzinfo is None: | ||||
date = date.replace(tzinfo=timezone.utc) | date = date.replace(tzinfo=timezone.utc) | ||||
▲ Show 20 Lines • Show All 198 Lines • Show Last 20 Lines |