Obtenha os dados dos postos de vacinação da covid-19 em São Paulo
Project description
Filometro
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.
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
File details
Details for the file filometro-1.3.0.tar.gz
.
File metadata
- Download URL: filometro-1.3.0.tar.gz
- Upload date:
- Size: 16.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3b829172fb4d92fc61ca036d7bdabeded47d33269ee064db7aedcd6ffad36ad |
|
MD5 | 086b6e6000369d88e38f6cf5f17bb87c |
|
BLAKE2b-256 | 334123457e537c93130224dd7c52c0303f42735922ee73d852a51a4349f93954 |
File details
Details for the file filometro-1.3.0-py3-none-any.whl
.
File metadata
- Download URL: filometro-1.3.0-py3-none-any.whl
- Upload date:
- Size: 11.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b785f4145c0d878a451f1bbae3f3d4306b704c889a8e853244c5ff722dfc3efd |
|
MD5 | 67e9896b7ce05b92d71b6cd56e7de630 |
|
BLAKE2b-256 | 955e9a8e49359ebc2e7c223a65bcc5510aec4e164a9b3f964a4c342d917eba30 |