anki-addons / app.py
Ya-Alex's picture
Add TestsCountAddonsNumberPresenter
c946de7
from textwrap import dedent
from gradio import Blocks, Markdown, TabbedInterface, Number, render, Accordion
from src.dataset_data import DatasetData
from src.presenter.addons_number_presenter import AddonsNumberPresenter
from src.presenter.svelte_addons_number_presenter import SvelteAddonsNumberPresenter
from src.presenter.tests_count_addons_number_presenter import TestsCountAddonsNumberPresenter
from src.presenter.top_by_rating_presenter import TopByRatingPresenter
data: DatasetData = DatasetData()
with Blocks() as addons_number_block:
Markdown("## Number of Anki addons")
addons_number_presenter: AddonsNumberPresenter = AddonsNumberPresenter(data)
addons_number_presenter.present()
with Blocks() as tests_count_block:
Markdown("## Number of Anki addons having unit-tests")
tests_count_addons_number_presenter: TestsCountAddonsNumberPresenter = TestsCountAddonsNumberPresenter(data)
tests_count_addons_number_presenter.present()
with Blocks() as svelte_block:
Markdown("## Number of Anki addons using Svelte")
svelte_addons_number_presenter: SvelteAddonsNumberPresenter = SvelteAddonsNumberPresenter(data)
svelte_addons_number_presenter.present()
top_by_rating_presenter: TopByRatingPresenter = TopByRatingPresenter(data)
with Blocks() as top_rating_block:
top_input: Number = Number(value=10, precision=0, label="Show addons:", minimum=1, maximum=100)
@render(inputs=top_input)
def _render_top_by_rating(top: int):
top_int: int = int(top) if top is not None else 10
Markdown(f"## Top {top_int} addons by rating")
top_by_rating_presenter.present(top_int)
with Blocks() as demo:
Markdown("# Visualizations for Anki Addons Dataset")
with Accordion("Information", open=False):
Markdown(dedent("""\
- [Anki Addons Dataset at HuggingFace](https://huggingface.co/datasets/Ya-Alex/anki-addons)
- [Anki Addons Dataset at GitHub](https://github.com/Aleks-Ya/anki-addons-dataset)
"""))
TabbedInterface(
[addons_number_block, tests_count_block, svelte_block, top_rating_block],
["Addons number", "Unit-Tests", "Svelte", "Rating"],
)
demo.launch()