class_docstr: Collection of properties for an IR node
  
  The property groups are listed below. Each group is mutually
  exclusive, meaning that only one property from each group can be True
  at any one time. The properties can be accessed as if they were normal
  attributes. The mutual exclusivity is automatically handled.
class_docstr_tok: ["Collection","of","properties","for","an","IR","node","The","property","groups","are","listed","below",".","Each","group","is","mutually","exclusive",",","meaning","that","only","one","property","from","each","group","can","be","True","at","any","one","time",".","The","properties","can","be","accessed","as","if","they","were","normal","attributes",".","The","mutual","exclusivity","is","automatically","handled","."]
code: def __setattr__(self, key: str, value: Any) -> Any:
      properties = self.__dict__["properties"]
      for values in LazyIrProperties.Properties:
          if key in values:
              properties[values] = key if value else None
              return value
  
      raise KeyError(f"Invalid property: {key}")
  
imports: from typing import Any, Dict, List, Optional, Tuple, Union
  from torchgen.api.types import BaseCppType, BaseCType, boolT, CType, deviceT, doubleT, generatorT, layoutT, ListCType, longT, memoryFormatT, NamedCType, OptionalCType, scalarT, scalarTypeT, stringT, SymIntT, VectorCType
  from torchgen.model import Argument, BaseTy, BaseType, FunctionSchema, ListType, OperatorName, OptionalType, Return, TensorOptionsArguments, Type
label_desc: Use image node_id 3 for calling the LazyIrProperties obj's underlying member method code with example usage: obj.__setattr__(key, value) and returns: value