def multi_constructor_obj(loader, tag_suffix, node):
 yaml_src = yaml.serialize(node)
 construct_mapping(node)
 mapping = loader.construct_mapping(node)
 assert hasattr(mapping, 'keys')
 assert hasattr(mapping, 'values')
 for key in mapping.keys():
  if (not isinstance(key, six.string_types)):
   message = ('Received non string object (%s) as key in mapping.' % str(key))
   raise TypeError(message)
 if ('.' not in tag_suffix):
  callable = eval(tag_suffix)
 else:
  callable = try_to_import(tag_suffix)
 rval = Proxy(callable=callable, yaml_src=yaml_src, positionals=(), keywords=mapping)
 return rval

def multi_constructor_obj ( loader , tag_suffix , node ) : yaml_src = yaml . serialize ( node ) construct_mapping ( node ) mapping = loader . construct_mapping ( node ) assert hasattr ( mapping , 'keys' ) assert hasattr ( mapping , 'values' ) for key in mapping . keys ( ) : if ( not isinstance ( key , six . string_types ) ) : message = ( 'Received non string object (%s) as key in mapping.' % str ( key ) ) raise TypeError ( message ) if ( '.' not in tag_suffix ) : callable = eval ( tag_suffix ) else : callable = try_to_import ( tag_suffix ) rval = Proxy ( callable = callable , yaml_src = yaml_src , positionals = ( ) , keywords = mapping ) return rval
callback used by pyyaml when a "!obj:" tag is encountered .