code: def __getattr__(self, name):
      if name == "__loader__":
          return self._loader
      if name in ("__name__", "__package__"):
          return self._prefix
      if name in ("__file__", "__path__"):
          return self._client.name
  
      # Make the name canonical because the prefix is also canonical.
      name = get_canonical_name(
          self._prefix + "." + name, self._aliases
      )[len(self._prefix) + 1 :]
      if name in self._exports["classes"]:
          # We load classes lazily
          return self._client.get_local_class(
              "%s.%s" % (self._prefix, name)
          )
      elif name in self._exports["functions"]:
          # TODO: Grab doc back from the remote side like in _make_method
          def func(*args, **kwargs):
              return self._client.stub_request(
                  None,
                  OP_CALLFUNC,
                  "%s.%s" % (self._prefix, name),
                  *args,
                  **kwargs,
              )
  
          func.__name__ = name
          func.__doc__ = "Unknown (TODO)"
          return func
      elif name in self._exports["values"]:
          return self._client.stub_request(
              None, OP_GETVAL, "%s.%s" % (self._prefix, name)
          )
      elif name in self._exception_classes:
          return self._exception_classes[name]
      else:
          # Try to see if this is a submodule that we can load
          m = None
          try:
              m = self._loader.load_module(
                  ".".join([self._prefix, name])
              )
          except ImportError:
              pass
          if m is None:
              raise AttributeError(
                  "module '%s' has no attribute '%s' -- contact the author of the "
                  "configuration if this is something "
                  "you expect to work (support may be added if it exists in the "
                  "original library)" % (self._prefix, name)
              )
          return m
  
imports: import atexit
  import importlib
  import itertools
  import pickle
  import re
  import sys
  from .consts import OP_CALLFUNC, OP_GETVAL, OP_SETVAL
  from .client import Client
  from .override_decorators import LocalException
  from .utils import get_canonical_name
label_desc: Use image node_id 2 for calling the _WrappedModule obj's underlying member method code with example usage: obj.__getattr__(name) and returns: self, self, self, self, func, self, self, self, m