from __future__ import annotations import pandas as pd class PaperList: def __init__(self): self.table = pd.read_csv('papers.csv').fillna('') self.table_header = ''' Paper Authors pdf Supplementary arXiv GitHub Hugging Face Spaces ''' def to_html(self, df: pd.DataFrame) -> str: table_rows = self.generate_table_rows(df) table_data = ''.join(table_rows) html = f''' {self.table_header} {table_data}
''' return html def generate_table_rows(self, df: pd.DataFrame) -> list[str]: rows = [] for row in df.itertuples(): paper = f'{row.title}' pdf = f'pdf' supp = f'supp' if row.supp else '' arxiv = f'arXiv' if row.arxiv else '' github = f'GitHub' if row.github else '' hf_space = f'Space' if row.hf_space else '' row = f''' {paper} {row.authors} {pdf} {supp} {arxiv} {github} {hf_space} ''' rows.append(row) return rows