Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brasilapi-0.1.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

brasilapi-0.1.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

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

Hashes for brasilapi-0.1.0.tar.gz
Algorithm Hash digest
SHA256 cc1f1cf2a408afd865635ceed6761f474ab0060ce38512ed89dcad77a708bcf2
MD5 37773f1ac447f51b3b0731acce0bbb47
BLAKE2b-256 893ffcfe4f455395b860fca70e0de15a97515060e6a921e0cafa73d6ee944fac

See more details on using hashes here.

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

Hashes for brasilapi-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 064a0d74c2eb1f6ca2b0f3ef9ad7d8b3fe602021dddddf322b9ed1ab9159cae9
MD5 4d03a772bf1be63b3b29e3aa7d9a87b6
BLAKE2b-256 cb9e4e562dafc98448a4fe961a202cafe468fbde4cc304878ddc1fd1432167fc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page