fix: don't truncate sub-second timeout to 0 in noble backend (v0.1.1)

int(timeout) truncated a fractional timeout (e.g. 0.5s) to 0, which noble treats as
no/instant timeout. round up with math.ceil and floor at 1 so a sub-second timeout
stays a real (>=1s) timeout.

verified: 0.5/0.1/0.001 -> 1 (was 0); whole seconds unchanged.
Signed-off-by: disqualifier <dev@disqualifier.me>
This commit is contained in:
disqualifier 2026-06-28 15:49:30 -04:00
parent befa4cd196
commit 7ea8ecf888
2 changed files with 5 additions and 2 deletions

View File

@ -4,7 +4,7 @@ build-backend = "hatchling.build"
[project]
name = "aioweb_tls"
version = "0.1.0"
version = "0.1.1"
description = "TLS-fingerprinting backends for aioweb — curl_cffi / noble_tls ExtendedSession subclasses, config-free, installable."
requires-python = ">=3.10"
dependencies = [

View File

@ -12,6 +12,7 @@ this module never fails because an extra is missing.
"""
import logging
import math
from aioweb import Response
@ -169,7 +170,9 @@ class Noble:
timeout = _coerce_timeout(kwargs.pop("timeout", None))
if timeout is not None:
kwargs["timeout_seconds"] = int(timeout)
# noble takes whole seconds; round UP so a sub-second timeout (e.g. 0.5)
# doesn't truncate to 0 (which would mean no/instant timeout)
kwargs["timeout_seconds"] = max(1, math.ceil(timeout))
proxy = kwargs.pop("proxy", None)
if proxy: