Home / Class/ LazyProxy Class — anthropic-sdk-python Architecture

LazyProxy Class — anthropic-sdk-python Architecture

Architecture documentation for the LazyProxy class in _proxy.py from the anthropic-sdk-python codebase.

Entity Profile

Dependency Diagram

graph TD
  43414d22_7ff6_5e84_abda_a4cffb7b7198["LazyProxy"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198["LazyProxy"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|extends| 43414d22_7ff6_5e84_abda_a4cffb7b7198
  f9a3dcc2_e2d1_7cf4_5bc6_e213b44759ac["_proxy.py"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|defined in| f9a3dcc2_e2d1_7cf4_5bc6_e213b44759ac
  23a3330f_eeba_68fe_f282_28acf5756e40["__getattr__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 23a3330f_eeba_68fe_f282_28acf5756e40
  d6cd8ac9_16d3_c5f1_bea3_37d07cfa2379["__repr__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| d6cd8ac9_16d3_c5f1_bea3_37d07cfa2379
  77c79fb9_f6f9_beff_5ab7_061409ed7b4a["__str__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 77c79fb9_f6f9_beff_5ab7_061409ed7b4a
  4f93ef7a_a0bb_436e_f750_ae3f3b52ca52["__dir__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 4f93ef7a_a0bb_436e_f750_ae3f3b52ca52
  19385ee2_cd7a_f5f3_59a6_eb982f1d5eec["__class__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 19385ee2_cd7a_f5f3_59a6_eb982f1d5eec
  8f8aaa95_2d9f_8761_8275_235a930412dd["__get_proxied__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 8f8aaa95_2d9f_8761_8275_235a930412dd
  830b1bd7_fa3a_97f0_6bff_a133d5dc2229["__as_proxied__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 830b1bd7_fa3a_97f0_6bff_a133d5dc2229
  749421d7_54c0_1a08_be12_9e66680d7967["__load__()"]
  43414d22_7ff6_5e84_abda_a4cffb7b7198 -->|method| 749421d7_54c0_1a08_be12_9e66680d7967

Relationship Graph

Source Code

src/anthropic/_utils/_proxy.py lines 10–65

class LazyProxy(Generic[T], ABC):
    """Implements data methods to pretend that an instance is another instance.

    This includes forwarding attribute access and other methods.
    """

    # 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`

    def __getattr__(self, attr: str) -> object:
        proxied = self.__get_proxied__()
        if isinstance(proxied, LazyProxy):
            return proxied  # pyright: ignore
        return getattr(proxied, attr)

    @override
    def __repr__(self) -> str:
        proxied = self.__get_proxied__()
        if isinstance(proxied, LazyProxy):
            return proxied.__class__.__name__
        return repr(self.__get_proxied__())

    @override
    def __str__(self) -> str:
        proxied = self.__get_proxied__()
        if isinstance(proxied, LazyProxy):
            return proxied.__class__.__name__
        return str(proxied)

    @override
    def __dir__(self) -> Iterable[str]:
        proxied = self.__get_proxied__()
        if isinstance(proxied, LazyProxy):
            return []
        return proxied.__dir__()

    @property  # type: ignore
    @override
    def __class__(self) -> type:  # pyright: ignore
        try:
            proxied = self.__get_proxied__()
        except Exception:
            return type(self)
        if issubclass(type(proxied), LazyProxy):
            return type(proxied)
        return proxied.__class__

    def __get_proxied__(self) -> T:
        return self.__load__()

    def __as_proxied__(self) -> T:
        """Helper method that returns the current proxy, typed as the loaded object"""
        return cast(T, self)

    @abstractmethod
    def __load__(self) -> T: ...

Extends

Frequently Asked Questions

What is the LazyProxy class?
LazyProxy is a class in the anthropic-sdk-python codebase, defined in src/anthropic/_utils/_proxy.py.
Where is LazyProxy defined?
LazyProxy is defined in src/anthropic/_utils/_proxy.py at line 10.
What does LazyProxy extend?
LazyProxy extends LazyProxy.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free