{"id":16786095,"url":"https://github.com/matheusfelipeog/filometro","last_synced_at":"2025-10-07T06:32:28.100Z","repository":{"id":42641117,"uuid":"427192637","full_name":"matheusfelipeog/filometro","owner":"matheusfelipeog","description":"Obtenha os dados dos postos de vacinação da covid-19 em São Paulo","archived":false,"fork":false,"pushed_at":"2024-07-06T00:46:22.000Z","size":368,"stargazers_count":5,"open_issues_count":3,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-17T04:19:21.300Z","etag":null,"topics":["coronavirus","covid-19","data","de-olho-na-fila","filometro","python","sao-paulo","vacina","vacinasampa","wrapper"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/filometro/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matheusfelipeog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-11-12T01:17:30.000Z","updated_at":"2024-04-28T19:51:03.000Z","dependencies_parsed_at":"2023-01-30T17:20:16.566Z","dependency_job_id":"d64db3cf-42da-4c58-8c9a-b8dde11fbf24","html_url":"https://github.com/matheusfelipeog/filometro","commit_stats":{"total_commits":177,"total_committers":3,"mean_commits":59.0,"dds":0.4463276836158192,"last_synced_commit":"922591df25afccec8aa8ac827da8c0c4344b9bb5"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfelipeog%2Ffilometro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfelipeog%2Ffilometro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfelipeog%2Ffilometro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusfelipeog%2Ffilometro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matheusfelipeog","download_url":"https://codeload.github.com/matheusfelipeog/filometro/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235600036,"owners_count":19016193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coronavirus","covid-19","data","de-olho-na-fila","filometro","python","sao-paulo","vacina","vacinasampa","wrapper"],"created_at":"2024-10-13T08:11:12.139Z","updated_at":"2025-10-07T06:32:27.702Z","avatar_url":"https://github.com/matheusfelipeog.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/matheusfelipeog/filometro/master/.github/assets/images/logo.png\" alt=\"Logo filometro\" width=\"100px\" /\u003e\n    \u003cbr /\u003eFilometro\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003csup\u003eMetadata\u003c/sup\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://pypi.org/project/filometro/\"\u003e\n        \u003cimg alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/filometro\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/matheusfelipeog/filometro/blob/master/LICENSE\"\u003e\n        \u003cimg src=\"https://img.shields.io/github/license/matheusfelipeog/filometro\" alt=\"License MIT\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://pepy.tech/project/filometro\"\u003e\n        \u003cimg alt=\"Total Downloads\" src=\"https://pepy.tech/badge/filometro\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003csup\u003eStatus\u003c/sup\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://pypi.org/project/filometro/\"\u003e\n        \u003cimg alt=\"PyPI - Status\" src=\"https://img.shields.io/pypi/status/filometro\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/matheusfelipeog/filometro/actions/workflows/tests.yml\"\u003e\n        \u003cimg alt=\"Tests - Status\" src=\"https://github.com/matheusfelipeog/filometro/actions/workflows/tests.yml/badge.svg\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\n## Index\n\n- [O que é?](#o-que-é)\n- [Instalação](#instalação)\n- [Demo](#demo)\n- [Documentação](#documentação)\n   - [Como utilizar?](#como-utilizar)\n   - [Objeto Posto](#objeto-posto)\n   - [Métodos da classe Filometro](#métodos-da-classe-filometro)\n   - [Identificadores para filtragem](#identificadores-para-filtragem)\n- [Contribuições](#contribuições)\n- [Licença](#licença)\n\n\n## O que é?\n\nFilometro é um wrapper (embrulho) do site [De Olho Na Fila](https://deolhonafila.prefeitura.sp.gov.br/), de modo a disponibilizar acesso a diversos dados sobre os postos de vacinação em todo o Estado de São Paulo.\n\nCom esse pacote você tem acesso aos seguintes dados dos postos:\n\n- Equipamento\n- Endereço\n- Contatos\n- Distrito\n- Zona\n- Os imunizantes disponíveis\n- Situação da fila\n- Modalidade\n- Data e hora da última atualização\n\nAs 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](#documentação) para saber como utiliza-lo.\n\n\n## Instalação\n\nInstale o pacote usando `pip`:\n\n```shell\n$ pip install filometro\n```\n\n\n## Demo\n\nObtenha uma lista de postos que tem disponível em seu estoque o imunizante da PFizer:\n\n```python\n\u003e\u003e\u003e from filometro import Filometro\n\u003e\u003e\u003e from filometro import Immunizing\n\n\u003e\u003e\u003e filometro = Filometro()\n\n\u003e\u003e\u003e postos = filometro.by_immunizing(Immunizing.PFIZER)\n\u003e\u003e\u003e postos\n[\n    Posto(equipment='UBS HUMAITÁ - DR. JOÃO DE AZEVEDO LAGE', last_update='2021-12-22 12:51:18.653'),\n    ...  # comprimido\n    Posto(equipment='UBS SANTA CRUZ', last_update='2021-12-22 12:46:35.190')\n]\n```\n\nVerifique a documentação para obter informações sobre os atributos e métodos disponíveis.\n\n\n## Documentação\n\nEssa é a documentação completa do pacote Filometro. Nessa seção contém o necessário para utilizar o pacote completamente.\n\n### Como utilizar?\n\nPara utilizar o pacote é necessário importar a classe `Filometro` e instanciar um objeto dessa mesma classe:\n\n```python\n\u003e\u003e\u003e from filometro import Filometro\n\u003e\u003e\u003e filometro = Filometro()\n```\n\nQuando 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`:\n\n```python\n\u003e\u003e\u003e postos = filometro.all_postos()\n```\n\nUma 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`:\n\n```python\n\u003e\u003e\u003e posto = postos[10]  # Obtendo o posto na posição 10 da lista de postos\n\u003e\u003e\u003e posto.address\n```\n\nTambé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:\n\n```python\n\u003e\u003e\u003e from filometro import Zone\n\u003e\u003e\u003e filometro.by_zone(Zone.SUL)\n```\n\nPara atualizar os dados dos postos armazenados em memória é indicado utilizar o método `reload`:\n\n```python\n\u003e\u003e\u003e filometro.reload()\n```\n\nEsse método recarrega todos os dados com as informações mais recentes disponíveis no site oficial.\n\nSempre que precisar, utilize a função `help()` em alguma classe, objeto ou método para obter ajuda:\n\n```python\n\u003e\u003e\u003e help(filometro)\n```\n\n### Objeto Posto\n\nTodos os métodos tem como retorno uma lista de dados, esses dados são representados no objeto Posto. Veja quais são seus atributos:\n\n```python\n\u003e\u003e\u003e posto.equipment             # Equipamento da unidade.\n\u003e\u003e\u003e posto.address               # Endereço onde está localizado.\n\u003e\u003e\u003e posto.district              # Distrito onde está localizado.\n\u003e\u003e\u003e posto.zone                  # Zona onde está localizado.\n\u003e\u003e\u003e posto.maps                  # Um link do Google Maps para o endereço.\n\u003e\u003e\u003e posto.contacts              # Uma lista de contatos, se houver.\n\u003e\u003e\u003e posto.astrazeneca           # '0' ou '1' caso astrazeneca não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.coronavac             # '0' ou '1' caso coronavac não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.coronavac_pediatrica  # '0' ou '1' caso coronavac pediátrica não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.pfizer                # '0' ou '1' caso pfizer não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.pfizer_baby           # '0' ou '1' caso pfizer baby não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.pfizer_bivalente      # '0' ou '1' caso pfizer bivalente não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.pfizer_pediatrica     # '0' ou '1' caso pfizer pediátrica não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.janssen               # '0' ou '1' caso janssen não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.influenza             # '0' ou '1' caso influenza não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.intercambialidade     # '0' ou '1' caso intercambialidade não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.dengue                # '0' ou '1' caso dengue não esteja ou esteja disponível.\n\u003e\u003e\u003e posto.situation             # A última atualização da situação da fila.\n\u003e\u003e\u003e posto.modality              # A modalidade da unidade.\n\u003e\u003e\u003e posto.last_update           # Data e hora da última atualização no formato AAAA-MM-DD HH:MM:SS.MS.\n```\n\n### Métodos da classe Filometro\n\n```python\n\u003e\u003e\u003e filometro.reload()             # Atualizar dados em memória.\n\u003e\u003e\u003e filometro.all_postos()         # Obter todos os postos.\n\u003e\u003e\u003e filometro.all_postos_open()    # Obter todos os postos abertos.\n\u003e\u003e\u003e filometro.all_postos_closed()  # Obter todos os postos fechados.\n\u003e\u003e\u003e filometro.by_zone(...)         # Obter todos postos de uma zona.\n\u003e\u003e\u003e filometro.by_modality(...)     # Obter todos postos de uma modalidade.\n\u003e\u003e\u003e filometro.by_district(...)     # Obter todos postos de um distrito.\n\u003e\u003e\u003e filometro.by_situation(...)    # Obter todos postos por situação.\n\u003e\u003e\u003e filometro.by_immunizing(...)   # Obter todos postos que possuem um imunizante.\n\u003e\u003e\u003e filometro.to_dict()            # Obter todos postos convertidos para `dict`.\n```\n\n### Identificadores para filtragem\n\nTodos os identificadores estão disponíveis para uso atráves da interface príncipal do pacote:\n\n```python\n\u003e\u003e\u003e from filometro import Zone, Modality, District, Situation, Immunizing\n```\n\n`Zone` - Representa as zonas do Estado de São Paulo:\n\n```python\n\u003e\u003e\u003e Zone.SUL\n\u003e\u003e\u003e Zone.OESTE\n\u003e\u003e\u003e Zone.NORTE\n\u003e\u003e\u003e Zone.LESTE\n\u003e\u003e\u003e Zone.CENTRO\n\u003e\u003e\u003e Zone.MEGA_DRIVES\n```\n\n`Modality` - Representa as modalidades dos postos:\n\n```python\n\u003e\u003e\u003e Modality.PARQUES\n\u003e\u003e\u003e Modality.POSTO_FIXO\n\u003e\u003e\u003e Modality.POSTO_VOLANTE\n\u003e\u003e\u003e Modality.DRIVE_THRU\n\u003e\u003e\u003e Modality.MEGAPOSTO\n```\n\n`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:\n\n```python\n\u003e\u003e\u003e help(District)\n\u003e\u003e\u003e dir(District)\n```\n\n`Situation` - Representa as situações das filas nos postos:\n\n```python\n\u003e\u003e\u003e Situation.NAO_FUNCIONANDO\n\u003e\u003e\u003e Situation.SEM_FILA\n\u003e\u003e\u003e Situation.FILA_PEQUENA\n\u003e\u003e\u003e Situation.FILA_MEDIA\n\u003e\u003e\u003e Situation.FILA_GRANDE\n```\n\n`Immunizing` - Representa os imunizantes disponíveis nos postos no Estado de São Paulo:\n\n```python\n\u003e\u003e\u003e Immunizing.ASTRAZENECA\n\u003e\u003e\u003e Immunizing.INTERCAMBIALIDADE\n\u003e\u003e\u003e Immunizing.PFIZER\n\u003e\u003e\u003e Immunizing.PFIZER_BABY\n\u003e\u003e\u003e Immunizing.PFIZER_BIVALENTE\n\u003e\u003e\u003e Immunizing.PFIZER_PEDIATRICA\n\u003e\u003e\u003e Immunizing.CORONAVAC\n\u003e\u003e\u003e Immunizing.CORONAVAC_PEDIATRICA\n\u003e\u003e\u003e Immunizing.JANSSEN\n\u003e\u003e\u003e Immunizing.INFLUENZA\n\u003e\u003e\u003e Immunizing.DENGUE\n```\n\n\n## Contribuições\n\nToda contribuição é super bem-vinda!\n\nAbaixo mostro com o que você pode contribuir:\n\n- Encontrou algum bug, quer propor uma nova funcionalidade ou conversar sobre o projeto? [Abra uma Issue](https://github.com/matheusfelipeog/filometro/issues) e descreva seu caso.\n\n- 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*\n\n- Gostou do projeto, mas não quer ou ainda não consegue contribuir com ele? Considere deixar uma estrela ⭐ para o **Filometro**\n\nObrigado pelo interesse em colaborar de alguma forma com o projeto ❤\n\n\n## Licença\n\n**Filometro** utiliza a *licença MIT* em todo seu código, confira suas condições em [MIT License](https://github.com/matheusfelipeog/filometro/blob/master/LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusfelipeog%2Ffilometro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheusfelipeog%2Ffilometro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusfelipeog%2Ffilometro/lists"}