Commit bd1e9e2f

stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
2024-09-19 22:48:19
fix(client): handle domains with underscores (#1726)
1 parent 349b7f6
Changed files (1)
src
src/openai/_base_client.py
@@ -490,12 +490,17 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
             if not files:
                 files = cast(HttpxRequestFiles, ForceMultipartDict())
 
+        prepared_url = self._prepare_url(options.url)
+        if "_" in prepared_url.host:
+            # work around https://github.com/encode/httpx/discussions/2880
+            kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
+
         # TODO: report this error to httpx
         return self._client.build_request(  # pyright: ignore[reportUnknownMemberType]
             headers=headers,
             timeout=self.timeout if isinstance(options.timeout, NotGiven) else options.timeout,
             method=options.method,
-            url=self._prepare_url(options.url),
+            url=prepared_url,
             # the `Query` type that we use is incompatible with qs'
             # `Params` type as it needs to be typed as `Mapping[str, object]`
             # so that passing a `TypedDict` doesn't cause an error.