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"> </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
- Extrai dados sobre:
- Casos confirmados no estado
- Critérios de avaliação de casos
- Status e evolução de casos
- Faixa etária, sexo, etnia e grau de escolaridade de pacientes
- Sintomas e comorbidades de pacientes
- Viagens de pacientes
- Filtro de casos por data
- Estruturação e busca de casos por município
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
- Baixe a última release e extraia a pasta;
- 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
:
-
nome (
str
): O nome do município. -
casos (
list
): (Caso
): Uma lista de objetos do tipo Caso. -
casosConfirmados (
int
): O número de casos confirmados no município. -
obitos (
int
): O número de óbitos confirmados em decorrência de COVID-19 no 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.