Source code for pypix_api.http

"""Configurações comuns das requisições HTTP da biblioteca."""

import requests

#: Quantos caracteres do corpo cru são preservados em `detail`.
LIMITE_CORPO_CRU = 500


[docs] def texto_do_corpo(response: requests.Response, limite: int = LIMITE_CORPO_CRU) -> str: """Decodifica o corpo da resposta preservando a acentuação. ``response.text`` só conhece o encoding quando o ``Content-Type`` traz ``charset``; sem ele, o ``requests`` adivinha e costuma errar em corpos curtos, transformando "inválida" em "inv√°lida" no log. JSON é UTF-8 por definição (RFC 8259), então é o palpite certo quando o PSP não declara. """ if response.encoding: return response.text[:limite] return response.content[:limite].decode('utf-8', errors='replace')
#: Tipo aceito no parâmetro ``timeout``, igual ao do ``requests``: um número #: aplicado a conexão e leitura, ou a tupla ``(conexão, leitura)``. ``None`` na #: posição de leitura significa espera sem limite. Timeout = float | tuple[float, float] | tuple[float, None] #: Tempo limite padrão: (conexão, leitura), em segundos. #: #: O ``requests`` não define timeout algum por padrão — sem isto, uma resposta #: que nunca chega prende o processo indefinidamente, sem log nem métrica. DEFAULT_TIMEOUT: tuple[float, float] = (5.0, 30.0)