class_docstr: Works exactly like the regular `SandboxedEnvironment` but does not
  permit modifications on the builtin mutable objects `list`, `set`, and
  `dict` by using the :func:`modifies_known_mutable` function.
class_docstr_tok: ["Works","exactly","like","the","regular","`","SandboxedEnvironment","`","but","does","not","permit","modifications","on","the","builtin","mutable","objects","`","list","`",",","`","set","`",",","and","`","dict","`","by","using","the",":","func",":","`","modifies_known_mutable","`","function","."]
code: def is_safe_attribute(
      self, obj: t.Any, attr: str, value: t.Any
  ) -> bool:
      if not super().is_safe_attribute(obj, attr, value):
          return False
  
      return not modifies_known_mutable(obj, attr)
  
imports: import operator
  import types
  import typing
  from _string import formatter_field_name_split
  from collections import abc
  from collections import deque
  from string import Formatter
  from markupsafe import EscapeFormatter
  from markupsafe import Markup
  from .environment import Environment
  from .exceptions import SecurityError
  from .runtime import Context
  from .runtime import Undefined
label_desc: Use image node_id 1 for calling the ImmutableSandboxedEnvironment obj's underlying member method code with example usage: obj.is_safe_attribute(obj, attr, value) and returns: unknown, False