Best-of-python Visualizer!

Web

Uma opção simples e fácil para acompanhar o ecossitema python

Best-of-python Visualizer!

Best-of-Python Explorer

Best-of-Python Explorer é um dashboard open source construído sobre os dados do projeto best-of-python. Ele oferece uma interface visual e interativa para explorar o ecossistema de bibliotecas Python — dando aos desenvolvedores uma visão clara de quais ferramentas estão ganhando tração, como a adoção evolui ao longo do tempo e onde cada biblioteca se posiciona dentro da sua categoria.


Motivação

O ecossistema Python é vasto. Escolher a biblioteca certa para uma tarefa exige navegar por centenas de opções distribuídas em dezenas de categorias. Projetos como o best-of-python fazem o trabalho duro de curar e pontuar bibliotecas com base em dados reais do GitHub e do PyPI — mas o resultado é um arquivo markdown estático. Este projeto transforma esses dados em algo que você pode explorar de forma visual e interativa.


O que ele faz

Página de Ranking

Exibe as principais bibliotecas Python em todas as categorias ou dentro de uma categoria específica. As bibliotecas são ordenadas pela métrica de sua escolha:

  • Stars — contagem de estrelas no GitHub, um indicador de popularidade na comunidade
  • Forks — contagem de forks no GitHub, um indicador de contribuição ativa
  • Downloads — contagem de downloads mensais no PyPI, um indicador de adoção real

A página atualiza dinamicamente conforme você muda os filtros. As métricas são buscadas ao vivo na API do GitHub e no pypistats.org, e depois armazenadas em cache local por 24 horas.

Página de Crescimento

Compara a trajetória de downloads de até 5 bibliotecas lado a lado ao longo do tempo. Selecione uma janela de tempo — últimos 6 meses, último ano ou histórico completo — e veja como os downloads mensais no PyPI de cada biblioteca evoluem. Útil para identificar bibliotecas em ascensão, ferramentas em declínio ou padrões sazonais de adoção.


Fontes de dados

Fonte O que fornece Autenticação
best-of-python Catálogo de bibliotecas com categorias Nenhuma
GitHub REST API Contagem de stars e forks por repositório Opcional (token aumenta o rate limit)
pypistats.org Histórico mensal de downloads por pacote Nenhuma

Os dados são buscados na primeira execução e armazenados em disco com TTL de 24 horas. Visitas subsequentes dentro dessa janela são servidas do cache sem nenhuma chamada à API.


Stack tecnológica

Ferramenta Função
Python 3.12 Runtime
Streamlit Framework web e interface
Plotly Gráficos interativos
Polars Manipulação de dados
requests + PyYAML HTTP e parsing de YAML
diskcache Cache em disco com TTL
loguru Logging estruturado
python-dotenv Gerenciamento de variáveis de ambiente
uv Gerenciamento de dependências
ruff + mypy Linting e verificação de tipos

Estrutura do projeto

best-of-python-dashboard/
├── app.py                  # Página Home e entry point
├── pages/
│   ├── 1_Ranking.py        # Página de Ranking (UC-01)
│   └── 2_Growth.py         # Página de Crescimento (UC-02)
├── src/
│   ├── data/
│   │   ├── loader.py       # Busca e parseia o projects.yaml
│   │   ├── github_client.py# Cliente da API do GitHub com busca paralela
│   │   └── pypi_client.py  # Cliente do pypistats.org com busca paralela
│   ├── cache/
│   │   └── manager.py      # Padrão cache-aside com diskcache
│   └── utils/
│       ├── logger.py       # Configuração do loguru
│       └── styles.py       # Injeção de CSS global
├── .streamlit/
│   └── config.toml         # Configuração do tema
├── pyproject.toml
└── .env                    # GITHUB_TOKEN (não versionado)

Como rodar

Pré-requisitos

  • Python 3.12+
  • uv

Instalação

git clone https://github.com/<seu-usuario>/best-of-python-dashboard
cd best-of-python-dashboard
uv sync

Configuração (opcional)

Crie um arquivo .env na raiz do projeto para definir um token do GitHub. Sem ele, o app funciona mas está limitado a 60 requisições por hora na API do GitHub:

GITHUB_TOKEN=seu_token_aqui

Executando

uv run streamlit run app.py

Licença

Este projeto é licenciado sob CC BY-SA 4.0, herdada do projeto best-of-python. É obrigatório dar atribuição ao projeto original, e qualquer trabalho derivado deve ser distribuído sob a mesma licença.

Screenshots

Project screenshot
Project screenshot

Tags

@python @streamlit @best-of

Publicado por

@davicc

29/03/2026 às 15:59