Home

Awesome

<h1 align="center"> <br> <a href="https://pypi.org/project/COVID19-ES-Py/"> <img src="https://raw.githubusercontent.com/AtilioA/COVID19-ES-Py/c28e8a1f8799d6a067d7c4587a9467d3bc595e9e/docs/logo_COVID19-ES-Py.png" width="30%"></a> <br> COVID19-ES-Py <br> </h1> <h4 align="center">API em Python para consulta de casos de COVID-19 no estado do Espírito Santo.</h4> <h5 align="center">

PyPI pyversions PyPI GitHub code size in bytes Travis (.org) Read the Docs Codecov Codacy grade

License: GPL v3

</h5> <p align="center"> <a href="#recursos">Recursos</a> | <a href="#instalação">Instalação</a> | <a href="#como-usar">Como usar</a> | <a href="#exemplos">Exemplos</a> | <a href="#documentação">Documentação</a> | <a href="#considerações-finais">Considerações finais</a> </p>

Recursos

Instalação

Atualmente, o COVID19-ES-Py possui suporte para Python 3.6+. Uma mesma release é feita ao PyPI e ao GitHub ao mesmo tempo, portanto você pode usar a fonte que achar mais conveniente.

Pelo repositório PyPI

Utilize seu gerenciador de pacotes preferido para instalar o pacote. Com pip:

pip install COVID19-ES-Py

Pelo código fonte

Através do pip

É possível usar o pip, dentre outros gerenciadores de pacotes, para instalar o pacote através do repositório. Usando a release mais recente:

pip install https://github.com/AtilioA/COVID19-ES-Py/releases/latest

Buildando com setup.py

  1. Baixe a última release e extraia a pasta;
  2. Entre no diretório raiz do pacote pelo terminal e rode o comando python setup.py install

Como usar

A API possui duas classes principais: LeitorRelatorio e Relatorio. A primeira é capaz de filtrar relatórios por data, etc, usando objetos Relatorio para fazer a interface para o programador. A segunda pode ser utilizada para extrair informações de um relatório específico. Confira os exemplos a seguir:

Exemplos

Inicializando o leitor e obtendo dados do último relatório:

import COVID19_ES_Py

# Inicializando o leitor
leitor = COVID19_ES_Py.LeitorRelatorio()

# Carregando objeto Relatorio com dados do último arquivo csv emitido
relatorio = leitor.carrega_ultimo_relatorio()  # Relatório do dia 17/04/2020
relatorio.casos
>>> {'AFONSO CLAUDIO': {'casosConfirmados': 2, 'obitos': 0},
...
    'VITORIA': {'casosConfirmados': 209, 'obitos': 8}}

Total de casos do relatório:

relatorio.totalGeral
>>> {'casosConfirmados': 952, 'obitos': 28}

Pesquisando casos por município:

Retorna objeto Municipio com casos do município no relatório:

relatorio.busca_casos_municipio("Vitória")
>>> "Município VITORIA:
209 casos confirmados.
8 óbitos."

# A busca ignora espaços extras e capitalização
relatorio.busca_casos_municipio("  santa teresa ")
>>> "Município SANTA TERESA:
4 casos confirmados.
0 óbitos."

# Também ignora caracteres especiais
relatorio.busca_casos_municipio("AFONSO CLAUDIO")
>>> "Município AFONSO CLAUDIO:
2 casos confirmados.
0 óbitos."

relatorio.busca_casos_municipio("arapiraca")
>>> exceptions.RelatorioError: O município "arapiraca" não foi encontrado no relatório. Pode ter ocorrido um erro de digitação ou o município não é do Espírito Santo.

Atributos da classe Município:

Pesquisando relatorio por data:

Retorna objetos Relatorio:

Filtrando até um dado dia:

relatorio16_04 = leitor.filtra_casos_ate_dia("16/04/2020")
>>> "Relatório do arquivo https://bi.static.es.gov.br/covid19/MICRODADOS.csv:
Total geral: {'casosConfirmados': 935, 'obitos': 28}
35 municípios infectados."

Filtrando apenas um dado dia:

relatorio16_04 = leitor.filtra_casos_no_dia("16/04/2020")
>>> "Relatório do arquivo https://bi.static.es.gov.br/covid19/MICRODADOS.csv:
Total geral: {'casosConfirmados': 11, 'obitos': 0}
5 municípios infectados."

A data de entrada pode ser formatada de várias formas.

Documentação

Você pode aprender mais sobre a API lendo a documentação oficial.

Considerações finais

Os dados são disponibilizados pelo Governo do Estado do Espírito Santo com a Superintendência Estadual de Comunicação Social do Espírito Santo (SECOM) e podem ser encontrados aqui.

Devido à natureza dos dados, há uma chance considerável de o scraping parar de funcionar a qualquer momento. Para minimizar essa possibilidade, muitos testes automatizados foram escritos; em caso de discrepância, tentarei atualizar o pacote o mais rápido possível.

Encontrou algum erro? Tem alguma sugestão para melhorar o COVID19-ES-Py? Crie uma issue! Contribuições são muito bem-vindas.