From bddb305c5d5d2db24a68d2e117dc41643ea6c446 Mon Sep 17 00:00:00 2001 From: CodeName393 Date: Sat, 25 Apr 2026 14:53:07 +0900 Subject: [PATCH] feat(session): Optimize header handling in session requests Removed redundant conversion of headers to dict for requests. --- unshackle/core/session.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/unshackle/core/session.py b/unshackle/core/session.py index 81bc5ca..c51d45b 100644 --- a/unshackle/core/session.py +++ b/unshackle/core/session.py @@ -584,11 +584,12 @@ class RnetSession: if rnet_method is None: raise ValueError(f"Unsupported HTTP method: {method}") + # Convert headers to standard dict once to resolve PyO3 CaseInsensitiveDict rejection. + if kwargs.get("headers") is not None: + kwargs["headers"] = dict(kwargs["headers"]) + # Skip retry for non-allowed methods if method_upper not in self.allowed_methods: - if "headers" in kwargs and kwargs["headers"] is not None: - kwargs["headers"] = dict(kwargs["headers"]) - raw_resp = client.request(rnet_method, url, **kwargs) return RnetResponse(raw_resp) @@ -597,9 +598,6 @@ class RnetSession: for attempt in range(self.max_retries + 1): try: - if "headers" in kwargs and kwargs["headers"] is not None: - kwargs["headers"] = dict(kwargs["headers"]) - raw_resp = client.request(rnet_method, url, **kwargs) response = RnetResponse(raw_resp) if response.status_code not in self.status_forcelist: