class_docstr: A dict in which the keys can be get and set as if they were
  attributes. Very convenient in combination with autocompletion.
  
  This Dict still behaves as much as possible as a normal dict, and
  keys can be anything that are otherwise valid keys. However,
  keys that are not valid identifiers or that are names of the dict
  class (such as 'items' and 'copy') cannot be get/set as attributes.
class_docstr_tok: ["A","dict","in","which","the","keys","can","be","get","and","set","as","if","they","were","attributes",".","Very","convenient","in","combination","with","autocompletion",".","This","Dict","still","behaves","as","much","as","possible","as","a","normal","dict",",","and","keys","can","be","anything","that","are","otherwise","valid","keys",".","However",",","keys","that","are","not","valid","identifiers","or","that","are","names","of","the","dict","class","(","such","as","'items","'","and","'copy","'",")","can","not","be","get\/set","as","attributes","."]
code: def __setattr__(self, key, val):
      if key in Dict.__reserved_names__:
          # Either let OrderedDict do its work, or disallow
          if key not in Dict.__pure_names__:
              return OrderedDict.__setattr__(self, key, val)
          else:
              raise AttributeError(
                  "Reserved name, this key can only "
                  + "be set via ``d[%r] = X``" % key
              )
      else:
          # if isinstance(val, dict): val = Dict(val) -> no, makes a copy!
          self[key] = val
  
imports: from collections import OrderedDict
  import numpy
  import os
  import re
  import struct
  import sys
  import time
  import logging
label_desc: Use image node_id 2 for calling the Dict obj's underlying member method code with example usage: obj.__setattr__(key, val) and returns: OrderedDict