A server-controlled 429 retry_after/Retry-After was slept verbatim with no finiteness check or ceiling, so an inf or huge value (adversarial or a ms-vs-s unit mismatch) could stall send() for hours outside max_retries accounting. Non-finite values are now rejected and finite values clamped to MAX_RETRY_AFTER (300s). Connection/timeout errors with no proxy provider set failed one-shot, contradicting the README's documented "normal retry" behavior and skipping the single most retry-worthy failure class. They now raise the internal _Retryable signal so commons.aretry retries them under max_retries, same as a 5xx, while still returning a failed WebhookResult (never raising) once retries are exhausted. Signed-off-by: disqualifier <dev@disqualifier.me>
25 lines
590 B
TOML
25 lines
590 B
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "aiowebhooks"
|
|
version = "0.1.5"
|
|
description = "async webhook sender (aiohttp) with round-robin urls, retry, and proxy rotation; optional discord.py embeds"
|
|
requires-python = ">=3.10"
|
|
dependencies = [
|
|
"aiohttp>=3.9",
|
|
"commons @ git+ssh://git@git.rethinkstudios.io/rethink-public/commons.git@v0.2.1",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
discord = [
|
|
"discord.py>=2.3",
|
|
]
|
|
|
|
[tool.hatch.metadata]
|
|
allow-direct-references = true
|
|
|
|
[tool.hatch.build.targets.wheel]
|
|
packages = ["src/aiowebhooks"]
|