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