Skip to main content

Um wrapper Python do site "De Olho na Fila": obtenha os dados dos postos de vacinação da covid-19 em São Paulo

Project description

Logo filômetro
Filômetro

Metadata
PyPI GitHub release (latest by date) License MIT

Status
PyPI - Status

Index

O que é?

Filômetro é um pacote que faz o papel de um wrapper (embrulho) do site De Olho Na Fila, de modo a disponibilizar acesso a diversos dados sobre postos de vacinação em todo o Estado de São Paulo.

Com esse pacote você tem acesso aos seguintes dados dos postos:

  • Equipamento
  • Endereço
  • Distrito
  • Zona
  • Os imunizantes
  • Situação da fila
  • Modalidade
  • Data e hora da última atualização

As informações são exatamente as mesmas disponíveis no site oficial (De Olho na Fila), porém disponibilizados por meio de uma interface Python simples para facilitar o uso, manipulação e filtragem dos dados. Consulte a documentação para saber como utiliza-lo.

Instalação

Instale o pacote usando pip:

$ pip install filometro

Demo

Obtenha uma lista de postos que tem disponível em seu estoque o imunizante da PFizer e mostre a situação da fila, o endereço e a zona em que o posto está localizado:

>>> from filometro import Filometro
>>> from filometro import Immunizing

>>> filometro = Filometro()

>>> postos = filometro.by_immunizing(Immunizing.PFIZER)
>>> postos
[
    Posto(equipment='UBS HUMAITÁ - DR. JOÃO DE AZEVEDO LAGE', last_update='2021-12-22 12:51:18.653'),
    ...  # comprimido
    Posto(equipment='UBS SANTA CRUZ', last_update='2021-12-22 12:46:35.190')
]

>>> for posto in postos:
...     print(f'Fila: {posto.situation}')
...     print(f'Endereço: {posto.address}')
...     print(f'Zona: {posto.zone}', end='\n\n')

Fila: FILA PEQUENA
Endereço: R. HUMAITÁ, 520 - BELA VISTA - CEP: 01321-010 - Tel: 3241- 1632/ 3241-1163
Zona: CENTRO

...  # comprimido

Fila: FILA PEQUENA
Endereço: Rua Santa Cruz, 1.191 - Vila Mariana
Zona: SUL

Verifique a documentação para obter informações sobre os métodos disponíveis no pacote.

Documentação

Essa é a documentação completa do pacote Filometro. Nessa seção contém o necessário para utilizar o pacote completamente.

Como utilizar?

Para utilizar o pacote é necessário importar a classe Filometro e instanciar um objeto dessa mesma classe:

>>> from filometro import Filometro
>>> filometro = Filometro()

Quando o objeto é instanciado ocorre a coleta dos dados no site De Olho na Fila e, quando finalizado, são armazenados na memória em um atributo de uso interno do objeto. Para obter todos os dados é aconselhado utilizar o método all_postos:

>>> postos = filometro.all_postos()

Uma lista de objetos do tipo Posto será retornada. O objeto Posto contém atributos que armazenam as informações de um posto. Por exemplo, é possível verificar o endereço de um posto acessando o atributo address:

>>> posto = postos[10]  # Obtendo o posto na posição 10 da lista de postos
>>> posto.address

Também é possível obter uma lista de postos conforme um requisito de filtragem, para isso existem métodos que usam identificadores (Enumeração ou Enum para os íntimos) específicos para realizar a filtragem. Você deve importar o identificador que deseja utilizar e passar como argumento para o método de filtragem. Por exemplo, caso você queira obter uma lista de postos que estão localizados na zona Sul de São Paulo:

>>> from filometro import Zone
>>> filometro.by_zone(Zone.SUL)

Para atualizar os dados dos postos armazenados em memória é indicado utilizar o método reload:

>>> filometro.reload()

Esse método recarrega todos os dados com as informações mais recentes disponíveis no site oficial.

Métodos da classe Filometro

  • Filometro.reload(...) - Recarregar os dados com as informações mais recentes.
  • Filometro.all_postos(...) - Retorna os dados de todos os postos.
  • Filometro.by_zone(...) - Retorna os dados dos postos por zona selecionada.
  • Filometro.by_modality(...) - Retorna os dados dos postos por modalidade selecionada.
  • Filometro.by_district(...) - Retorna os dados dos postos por distrito selecionado.
  • Filometro.by_situation(...) - Retorna os dados dos postos por situação selecionada.
  • Filometro.by_immunizing(...) - Retorna os dados dos postos por imunizante selecionado.

Identificadores para filtragem (Enums)

Todos os Enums estão disponíveis para uso atráves da interface príncipal do pacote:

>>> from filometro import Zone, Modality, District, Situation, Immunizing

Para obter mais informações sobre cada um dos Enums, use as funções dir() ou help() passando um dos Enums como argumento.

  • Zone - Representa as zonas do Estado de São Paulo.

    • Zone.SUL
    • Zone.OESTE
    • Zone.NORTE
    • Zone.LESTE
    • Zone.CENTRO
    • Zone.MEGA_DRIVES
  • Modality - Representa as modalidades dos postos de saúde.

    • Modality.PARQUES
    • Modality.POSTO_FIXO
    • Modality.POSTO_VOLANTE
    • Modality.DRIVE_THRU
    • Modality.MEGAPOSTO
  • District - Representa todos os distritos do Estado de São Paulo que disponíbilizam um imunizante em seus postos de saúde. Use a função dir(District) ou help(District) para mais infomações.

  • Situation - Representa as possíveis situações das filas nos postos de saúde.

    • Situation.NAO_FUNCIONANDO
    • Situation.SEM_FILA
    • Situation.FILA_PEQUENA
    • Situation.FILA_MEDIA
    • Situation.FILA_GRANDE
  • Immunizing - Representa os imunizantes disponíveis nos postos de saúde do Estado de São Paulo.

    • Immunizing.ASTRAZENECA
    • Immunizing.INTERCAMBIALIDADE
    • Immunizing.PFIZER
    • Immunizing.CORONAVAC
    • Immunizing.JANSSEN

Contribuições

Toda contribuição é super bem-vinda!

Abaixo mostro com o que você pode contribuir:

  • Encontrou algum bug, quer propor uma nova funcionalidade ou conversar sobre o projeto? Abra uma Issue e descreve seu caso.

  • Existe uma issue aberta e você quer resolve-la, quer implementar uma nova funcionalidade ou melhorar a documentação? Faça suas adições e me envie um Pull Request

  • Gostou do projeto, mas não quer ou ainda não consegue contribuir com ele? Considere deixar uma estrela ⭐ para o Filômetro

Obrigado pelo interesse em colaborar de alguma forma com o projeto 😄

Licença

Filômetro utiliza a licença MIT em todo seu código, confira suas condições em MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filometro-0.1.1.tar.gz (12.7 kB view hashes)

Uploaded Source

Built Distribution

filometro-0.1.1-py3-none-any.whl (10.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page