Python async client for BrasilAPI
Project description
brasilapi-python
Um cliente Python assíncrono para o Brasil API
Motivação
Fornecer um cliente HTTP assíncrono de alto nível para acessar e desserializar recursos do BrasilAPI.
Instalação
Com pip:
pip install brasilapi
Ou com Poetry:
poetry add brasilapi
Uso
Este cliente fornece chamadas à API do BrasilAPI dentro de um gerenciador de contexto assíncrono para uma melhor performance.
Por exemplo, o seguinte programa:
import asyncio
from brasilapi import BrasilAPI
async def run():
async with BrasilAPI() as client:
result = await client.ceps.get("89010025")
print(repr(result))
if __name__ == "__main__":
asyncio.run(run())
Fornece uma saída igual ou semelhante a:
CEP(cep='89010025', state='SC', city='Blumenau', neighborhood='Centro', street='Rua Doutor Luiz de Freitas Melro', service='correios', location=CEPLocation(type='Point', coordinates={'longitude': '-49.0641133', 'latitude': '-26.9239862'}))
Chamadas dentro do gerenciador de contexto utilizam uma mesma sessão que só é fechada ao sair do bloco. Você pode optar por compartilhar o mesmo cliente e sessão durante o tratamento de uma solicitação no seu aplicativo (por exemplo, funciona muito bem retornar uma instância do BrasilAPI como uma dependência do FastAPI) ou enquanto fizer sentido para seu cenário.
Modelos Pydantic
Os resultados das consultas são instâncias de modelos Pydantic v2. Você pode aproveitar a consistência e todas as dicas de tipo.
Os modelos Pydantic foram construídos com base na documentação oficial do BrasilAPI e os nomes dos serviços e atributos são iguais aos
da documentação; portanto, alguns estão em inglês e outros em português. Excetuam-se mudanças de camelCase
para snake_case
. Mas você pode usar seu próprio modelo Pydantic:
import asyncio
from pydantic import BaseModel, Field
from brasilapi import BrasilAPI
class CustomDDD(BaseModel):
estado: str = Field(alias="state")
cidades: list[str] = Field(alias="cities")
async def run():
async with BrasilAPI() as client:
ddd = await client.ddd.get("83").with_deserializer_class(CustomDDD)
print(repr(ddd))
if __name__ == "__main__":
asyncio.run(run())
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 brasilapi-0.1.0.tar.gz
.
File metadata
- Download URL: brasilapi-0.1.0.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.11.4 Linux/5.15.90.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc1f1cf2a408afd865635ceed6761f474ab0060ce38512ed89dcad77a708bcf2 |
|
MD5 | 37773f1ac447f51b3b0731acce0bbb47 |
|
BLAKE2b-256 | 893ffcfe4f455395b860fca70e0de15a97515060e6a921e0cafa73d6ee944fac |
File details
Details for the file brasilapi-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: brasilapi-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.6.1 CPython/3.11.4 Linux/5.15.90.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 064a0d74c2eb1f6ca2b0f3ef9ad7d8b3fe602021dddddf322b9ed1ab9159cae9 |
|
MD5 | 4d03a772bf1be63b3b29e3aa7d9a87b6 |
|
BLAKE2b-256 | cb9e4e562dafc98448a4fe961a202cafe468fbde4cc304878ddc1fd1432167fc |