"""Utility functions for handling links.""" import csv from typing import List, NamedTuple, TextIO class Link(NamedTuple): """A type for links - contains its url and date.""" url: str date: str def dump_links(links: List[Link], f: TextIO): """Dump links to a file in csv format.""" writer = csv.writer(f) writer.writerow(["index", "link", "date"]) for i, link in enumerate(links): writer.writerow([i, link[0], link[1]]) def read_links(f: TextIO) -> List[Link]: """Read links from a csv format.""" reader = csv.reader(f) next(reader) # Skip the header return [Link(link[1], link[2]) for link in reader]