code: def __setattr__(self, name, value):
      if name in (
          "package",
          "__spec__",
          "_loader",
          "_prefix",
          "_client",
          "_exports",
          "_exception_classes",
          "_aliases",
      ):
          object.__setattr__(self, name, value)
          return
      if isinstance(value, _WrappedModule):
          # This is when a module sets itself as an attribute of another
          # module when loading
          object.__setattr__(self, name, value)
          return
  
      # 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["values"]:
          self._client.stub_request(
              None, OP_SETVAL, "%s.%s" % (self._prefix, name), value
          )
      elif (
          name in self._exports["classes"]
          or name in self._exports["functions"]
      ):
          raise ValueError
      else:
          raise AttributeError(name)
  
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 3 for calling the _WrappedModule obj's underlying member method code with example usage: obj.__setattr__(name, value) without return types