Commit a05b1607

Stainless Bot <107565488+stainless-bot@users.noreply.github.com>
2024-01-17 00:47:21
fix(proxy): prevent recursion errors when debugging pycharm (#1076)
https://github.com/openai/openai-python/issues/906
1 parent 023a4e6
Changed files (3)
src
src/openai/_extras/numpy_proxy.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 from typing import TYPE_CHECKING, Any
-from typing_extensions import ClassVar, override
+from typing_extensions import override
 
 from .._utils import LazyProxy
 from ._common import MissingDependencyError, format_instructions
@@ -14,8 +14,6 @@ NUMPY_INSTRUCTIONS = format_instructions(library="numpy", extra="datalib")
 
 
 class NumpyProxy(LazyProxy[Any]):
-    should_cache: ClassVar[bool] = True
-
     @override
     def __load__(self) -> Any:
         try:
src/openai/_extras/pandas_proxy.py
@@ -1,7 +1,7 @@
 from __future__ import annotations
 
 from typing import TYPE_CHECKING, Any
-from typing_extensions import ClassVar, override
+from typing_extensions import override
 
 from .._utils import LazyProxy
 from ._common import MissingDependencyError, format_instructions
@@ -14,8 +14,6 @@ PANDAS_INSTRUCTIONS = format_instructions(library="pandas", extra="datalib")
 
 
 class PandasProxy(LazyProxy[Any]):
-    should_cache: ClassVar[bool] = True
-
     @override
     def __load__(self) -> Any:
         try:
src/openai/_utils/_proxy.py
@@ -2,7 +2,7 @@ from __future__ import annotations
 
 from abc import ABC, abstractmethod
 from typing import Generic, TypeVar, Iterable, cast
-from typing_extensions import ClassVar, override
+from typing_extensions import override
 
 T = TypeVar("T")
 
@@ -13,11 +13,6 @@ class LazyProxy(Generic[T], ABC):
     This includes forwarding attribute access and othe methods.
     """
 
-    should_cache: ClassVar[bool] = False
-
-    def __init__(self) -> None:
-        self.__proxied: T | None = None
-
     # Note: we have to special case proxies that themselves return proxies
     # to support using a proxy as a catch-all for any random access, e.g. `proxy.foo.bar.baz`
 
@@ -57,18 +52,7 @@ class LazyProxy(Generic[T], ABC):
         return proxied.__class__
 
     def __get_proxied__(self) -> T:
-        if not self.should_cache:
-            return self.__load__()
-
-        proxied = self.__proxied
-        if proxied is not None:
-            return proxied
-
-        self.__proxied = proxied = self.__load__()
-        return proxied
-
-    def __set_proxied__(self, value: T) -> None:
-        self.__proxied = value
+        return self.__load__()
 
     def __as_proxied__(self) -> T:
         """Helper method that returns the current proxy, typed as the loaded object"""