| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| niquests-3.19.0-py3-none-any.whl | 2026-06-01 | 211.0 kB | |
| niquests-3.19.0.tar.gz | 2026-06-01 | 1.0 MB | |
| multiple.intoto.jsonl | 2026-06-01 | 28.8 kB | |
| README.md | 2026-06-01 | 3.8 kB | |
| Version 3.19.0 source code.tar.gz | 2026-06-01 | 1.0 MB | |
| Version 3.19.0 source code.zip | 2026-06-01 | 1.1 MB | |
| Totals: 6 Items | 3.4 MB | 0 | |
3.19.0 (2026-06-01)
Added
SessionandAsyncSessionconstructors now acceptparams,cookies,proxies,verifyandcertso that per-request defaults can be configured at initialization, consistently withheadersandauth. (#400) Ease forward the migration from httpx for interested users.- A plain
http.cookiejar.CookieJar(or a mapping) provided ascookiesis now coerced into aRequestsCookieJar. TheSession/AsyncSessionconstructor always coerces (sosession.cookies.set(...)works), while at the request level an unknownCookieJarsubclass (e.g.MozillaCookieJaror any file-backed/custom jar) is left untouched to preserve its behavior. (#401, [#404]) - Support for the alternative TLS backend BoringSSL via the
utlsextra. Niquests now offer a first-class TLS browser impersonation without ever-changing your http client. It is automatically done (e.g. negotiated) once the extra is installed. You will need to keep it regularly updated so that you have the latest TLS specs of modern browsers. SessionandAsyncSessionconstructors now acceptallow_incoming_cookies(defaults toTrue). Set it toFalseto ignore every cookie sent by the remote peer (viaSet-Cookie) so that nothing is merged into the session jar, including cookies carried across redirect hops. Outgoing cookies you set yourself are still emitted.Session.request/AsyncSession.request(and the verb shortcuts) now accept anoverride_schemekeyword argument. When abase_urlis set on the Session, it override the scheme of the final (merged) URL just before the adapter is picked, so you can target a different scheme (e.g.sse,ws/wss, optionally with an implementation suffix likesse+unix) without retyping the full URL. (#325)
Changed
- The
cookiesattribute ofSession,AsyncSessionandResponseis now always typed asRequestsCookieJarinstead ofRequestsCookieJar | CookieJar. This restores the ergonomic mapping interface (e.g.session.cookies.set(...)) when using static type checkers. (#401, [#404])
This is not a runtime breaking change: reading .cookies is unchanged, and a native CookieJar
is still accepted everywhere it is passed as an argument (it is coerced when relevant). We do,
however, acknowledge a static-typing trade-off: assigning a custom/non-RequestsCookieJar jar
directly to the attribute (e.g. session.cookies = MozillaCookieJar(...)) now makes type checkers
such as mypy complain, since the attribute is annotated as RequestsCookieJar. The assignment keeps
working at runtime; if you rely on it, add a # type: ignore. We chose narrowing on
purpose the predominant path is that RequestsCookieJar is expected while subclasses (custom implementation)
are a niche usage.
CaseInsensitiveDictis now generic over its key and value types (CaseInsensitiveDict[_KT, _VT], mirroringdict/Mapping), andResponse.headers/Response.trailersare typed asCaseInsensitiveDict[str, str]. Reading a response header (e.g.response.headers["Content-Type"]) now yieldsstrinstead ofstr | bytes, removing the need for acast/assertto use the headers as a plain string mapping with static type checkers. (#401)
This is purely a typing improvement with no runtime change: the class still subclasses
collections.abc.MutableMapping (it merely also gains typing.Generic), so the Python 3.7 floor and
the existing behavior are preserved, and no new dependency is introduced. Unsubscripted
CaseInsensitiveDict keeps its historical str | bytes key/value types, so existing annotations are
unaffected.