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
Filômetro
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()
ouhelp()
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çãodir(District)
ouhelp(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.PFIZER_PEDIATRICA
Immunizing.CORONAVAC
Immunizing.CORONAVAC_PEDIATRICA
Immunizing.JANSSEN
Immunizing.INFLUENZA
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 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for filometro-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aca07cb81b717b0fa2714f4e4ffddaeaca79a7a222cfa0d45cb3fb05ed786743 |
|
MD5 | 7d3017993cca439d9658e463d929f6cb |
|
BLAKE2b-256 | d33e0c5bfe75307df99de5e3ae3fca662c65d58152eadea064aff43d18fe45de |