code: def _frozen_get_del_attr(cls, fields, globals):
      locals = {"cls": cls, "FrozenInstanceError": FrozenInstanceError}
      if fields:
          fields_str = (
              "(" + ",".join(repr(f.name) for f in fields) + ",)"
          )
      else:
          # Special case for the zero-length tuple.
          fields_str = "()"
      return (
          _create_fn(
              "__setattr__",
              ("self", "name", "value"),
              (
                  f"if type(self) is cls or name in {fields_str}:",
                  ' raise FrozenInstanceError(f"cannot assign to field {name!r}")',
                  f"super(cls, self).__setattr__(name, value)",
              ),
              locals=locals,
              globals=globals,
          ),
          _create_fn(
              "__delattr__",
              ("self", "name"),
              (
                  f"if type(self) is cls or name in {fields_str}:",
                  ' raise FrozenInstanceError(f"cannot delete field {name!r}")',
                  f"super(cls, self).__delattr__(name)",
              ),
              locals=locals,
              globals=globals,
          ),
      )
  
imports: import re
  import sys
  import copy
  import types
  import inspect
  import keyword
  import builtins
  import functools
  import itertools
  import abc
  import _thread
  from types import FunctionType, GenericAlias
label_desc: Use image node_id 11 for calling a global function with example usage: _frozen_get_del_attr(cls, fields, globals) and returns: _create_fn,  _create_fn