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