5 Commits
Author SHA1 Message Date
dsql 3012c40c27 refactor: drop the unreachable except aiohttp.ClientError: raise
T3-21: neither curl_cffi nor noble_tls raises aiohttp exceptions (verified in
both packages' sources), so the branch could not run. every error a real
backend raises maps exactly as before; the asyncio.TimeoutError guard stays
(TimeoutError is an OSError on 3.11+). folds into 1.0.5.

Signed-off-by: disqualifier <dev@disqualifier.me>
2026-10-16 04:38:41 -04:00
dsql 56a5db9c0c chore: bump to 1.0.5, re-pin aioweb@v1.3.0
Signed-off-by: disqualifier <dev@disqualifier.me>
2026-10-16 04:00:47 -04:00
dsql b64d71821c chore: bump to 1.0.4, re-pin aioweb@v1.2.0
carries the aioweb logging-discipline fix; no aioweb_tls source change.

Signed-off-by: disqualifier <dev@disqualifier.me>
2026-08-10 23:00:50 -04:00
dsql 929d248a3a build: re-pin aioweb to v1.1.0 (inherit the request() hang-guard)
aioweb v1.1.0 adds an outer asyncio deadline on every request so a wedged backend can't
park the loop forever. TLSSession inherits request()/request_with_retries unchanged, so
the guard applies to the curl_cffi/noble backends with no code change here. patch bump -
dependency-only, no aioweb_tls API change.

Signed-off-by: disqualifier <dev@disqualifier.me>
2026-07-27 11:33:35 -04:00
dsql a37805cad1 build: use git+https for inter-lib deps (docker ssh limitation)
docker builds can't use git+ssh (no ssh key / agent in the build), so the inter-lib
dependency references move to git+https (repos are public, anonymous clone). pins are
unchanged in target; bump to 1.0.2 so the https dependency spec ships under a new tag.
README install lines intentionally keep the ssh form for local/dev use.

Signed-off-by: disqualifier <dev@disqualifier.me>
2026-07-20 22:25:06 -04:00
3 changed files with 11 additions and 13 deletions

No files matched your search

+7 -7
View File
@@ -22,17 +22,17 @@ you want; importing the package never fails because an extra is missing.
`requirements.txt` (pick the extra you need): `requirements.txt` (pick the extra you need):
``` ```
aioweb_tls[curl] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.1 aioweb_tls[curl] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.5
aioweb_tls[noble] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.1 aioweb_tls[noble] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.5
aioweb_tls[all] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.1 aioweb_tls[all] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.5
``` ```
Direct: Direct:
```bash ```bash
pip install "aioweb_tls[curl] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.1" pip install "aioweb_tls[curl] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.5"
pip install "aioweb_tls[noble] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.1" pip install "aioweb_tls[noble] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.5"
pip install "aioweb_tls[all] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.1" pip install "aioweb_tls[all] @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb_tls.git@v1.0.5"
``` ```
- `[curl]` → curl_cffi backend · `[noble]` → noble_tls backend · `[all]` → both. - `[curl]` → curl_cffi backend · `[noble]` → noble_tls backend · `[all]` → both.
@@ -44,7 +44,7 @@ pip install "aioweb_tls[all] @ git+ssh://git@git.rethinkstudios.io/rethink-publi
Constructing a backend whose client isn't installed raises that `RuntimeError` at Constructing a backend whose client isn't installed raises that `RuntimeError` at
construction, never at import. construction, never at import.
Drop the `@v1.0.1` suffix from the line above to install the latest unpinned. Drop the `@v1.0.5` suffix from the line above to install the latest unpinned.
## curl_cffi backend ## curl_cffi backend
+2 -2
View File
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
[project] [project]
name = "aioweb_tls" name = "aioweb_tls"
version = "1.0.1" version = "1.0.5"
description = "TLS-fingerprinting backends (curl_cffi / noble_tls) for aioweb via one injectable TLSSession, config-free, installable." description = "TLS-fingerprinting backends (curl_cffi / noble_tls) for aioweb via one injectable TLSSession, config-free, installable."
requires-python = ">=3.10" requires-python = ">=3.10"
dependencies = [ dependencies = [
"aioweb @ git+ssh://git@git.rethinkstudios.io/rethink-public/aioweb.git@v1.0.1", "aioweb @ git+https://git.rethinkstudios.io/rethink-public/aioweb.git@v1.3.0",
] ]
[project.optional-dependencies] [project.optional-dependencies]
+2 -4
View File
@@ -172,9 +172,8 @@ class CurlCffi:
try: try:
response = await session.request(method, url, impersonate=impersonate, **kwargs) response = await session.request(method, url, impersonate=impersonate, **kwargs)
except aiohttp.ClientError:
raise
except asyncio.TimeoutError: except asyncio.TimeoutError:
# TimeoutError is an OSError (3.11+): keep it out of the wrap below
raise raise
except OSError as error: except OSError as error:
if _is_timeout_error(error): if _is_timeout_error(error):
@@ -316,9 +315,8 @@ class Noble:
try: try:
response = await session.execute_request(method=method.upper(), url=url, **kwargs) response = await session.execute_request(method=method.upper(), url=url, **kwargs)
except aiohttp.ClientError:
raise
except asyncio.TimeoutError: except asyncio.TimeoutError:
# TimeoutError is an OSError (3.11+): keep it out of the wrap below
raise raise
except OSError as error: except OSError as error:
if _is_timeout_error(error): if _is_timeout_error(error):