Skip to main content

Logo filometro
Filometro

Metadata
PyPI License MIT Total Downloads

Status
PyPI - Status Tests - Status

Index

O que é?

Filometro é um wrapper (embrulho) do site De Olho Na Fila, de modo a disponibilizar acesso a diversos dados sobre os 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
  • Contatos
  • Distrito
  • Zona
  • Os imunizantes disponíveis
  • 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 um pacote Python simples para facilitar a coleta, 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:

>>> 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')
]

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

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.

Sempre que precisar, utilize a função help() em alguma classe, objeto ou método para obter ajuda:

>>> help(filometro)

Objeto Posto

Todos os métodos tem como retorno uma lista de dados, esses dados são representados no objeto Posto. Veja quais são seus atributos:

>>> posto.equipment             # Equipamento da unidade.
>>> posto.address               # Endereço onde está localizado.
>>> posto.district              # Distrito onde está localizado.
>>> posto.zone                  # Zona onde está localizado.
>>> posto.maps                  # Um link do Google Maps para o endereço.
>>> posto.contacts              # Uma lista de contatos, se houver.
>>> posto.astrazeneca           # '0' ou '1' caso astrazeneca não esteja ou esteja disponível.
>>> posto.coronavac             # '0' ou '1' caso coronavac não esteja ou esteja disponível.
>>> posto.coronavac_pediatrica  # '0' ou '1' caso coronavac pediátrica não esteja ou esteja disponível.
>>> posto.pfizer                # '0' ou '1' caso pfizer não esteja ou esteja disponível.
>>> posto.pfizer_baby           # '0' ou '1' caso pfizer baby não esteja ou esteja disponível.
>>> posto.pfizer_bivalente      # '0' ou '1' caso pfizer bivalente não esteja ou esteja disponível.
>>> posto.pfizer_pediatrica     # '0' ou '1' caso pfizer pediátrica não esteja ou esteja disponível.
>>> posto.janssen               # '0' ou '1' caso janssen não esteja ou esteja disponível.
>>> posto.influenza             # '0' ou '1' caso influenza não esteja ou esteja disponível.
>>> posto.intercambialidade     # '0' ou '1' caso intercambialidade não esteja ou esteja disponível.
>>> posto.dengue                # '0' ou '1' caso dengue não esteja ou esteja disponível.
>>> posto.situation             # A última atualização da situação da fila.
>>> posto.modality              # A modalidade da unidade.
>>> posto.last_update           # Data e hora da última atualização no formato AAAA-MM-DD HH:MM:SS.MS.

Métodos da classe Filometro

>>> filometro.reload()             # Atualizar dados em memória.
>>> filometro.all_postos()         # Obter todos os postos.
>>> filometro.all_postos_open()    # Obter todos os postos abertos.
>>> filometro.all_postos_closed()  # Obter todos os postos fechados.
>>> filometro.by_zone(...)         # Obter todos postos de uma zona.
>>> filometro.by_modality(...)     # Obter todos postos de uma modalidade.
>>> filometro.by_district(...)     # Obter todos postos de um distrito.
>>> filometro.by_situation(...)    # Obter todos postos por situação.
>>> filometro.by_immunizing(...)   # Obter todos postos que possuem um imunizante.
>>> filometro.to_dict()            # Obter todos postos convertidos para `dict`.

Identificadores para filtragem

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

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

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:

>>> 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. Como há muitos distritos, use a função dir ou help para mais infomações:

>>> help(District)
>>> dir(District)

Situation - Representa as situações das filas nos postos:

>>> Situation.NAO_FUNCIONANDO
>>> Situation.SEM_FILA
>>> Situation.FILA_PEQUENA
>>> Situation.FILA_MEDIA
>>> Situation.FILA_GRANDE

Immunizing - Representa os imunizantes disponíveis nos postos no Estado de São Paulo:

>>> Immunizing.ASTRAZENECA
>>> Immunizing.INTERCAMBIALIDADE
>>> Immunizing.PFIZER
>>> Immunizing.PFIZER_BABY
>>> Immunizing.PFIZER_BIVALENTE
>>> Immunizing.PFIZER_PEDIATRICA
>>> Immunizing.CORONAVAC
>>> Immunizing.CORONAVAC_PEDIATRICA
>>> Immunizing.JANSSEN
>>> Immunizing.INFLUENZA
>>> Immunizing.DENGUE

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 descreva 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 Filometro

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

Licença

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

Metadata

Release files for filometro 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for filometro 1.3.0
File Size Uploaded
filometro-1.3.0.tar.gz 16.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for filometro 1.3.0
File Interpreter ABI Platform
filometro-1.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.3 kB

Release files / filometro-1.3.0.tar.gz

Download URL filometro-1.3.0.tar.gz
Size 16.4 kB
Tags Source
SHA-256 checksum
How to use checksums
d3b829172fb4d92fc61ca036d7bdabeded47d33269ee064db7aedcd6ffad36ad
BLAKE2b-256 checksum
How to use checksums
334123457e537c93130224dd7c52c0303f42735922ee73d852a51a4349f93954
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.6

Release files / filometro-1.3.0-py3-none-any.whl

Download URL filometro-1.3.0-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b785f4145c0d878a451f1bbae3f3d4306b704c889a8e853244c5ff722dfc3efd
BLAKE2b-256 checksum
How to use checksums
955e9a8e49359ebc2e7c223a65bcc5510aec4e164a9b3f964a4c342d917eba30
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.6

Release history Release notifications | RSS feed

This release

1.3.0 This release

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page