#!/usr/bin/env python

from attrdict import AttrDict

if __name__ == "__main__":
    
    print "=== AttrDict Example ==="
    d = AttrDict()

    print "d: ",d

    d["key"] = "testing setitem"
    print "d: ",d
    print "d.key: ", d.key

    d.attr = "setting an attribute"
    print "d: ",d
    print "d.attr: ", d.attr

    d2 = {'k1':"Val1", "k2":"Val2"}
    print "updating with: ", d2

    d.update(d2)
    print "d: ",d
    print "d.k1: ", d.k1

    #Test setting bad attributes through acceptable dict keys
    try:
        d[str(1)] = "bad attribute"
    except AttributeError, e:
        print e
        
    print "d.keys(): ", d.keys()
    print "d is in sync: %s" % str(AttrDict.is_synced(d))
    
    print "Pop() : ", d.pop('k1')
    try:
        d.pop('k1')
    except KeyError,e:
        print "KeyError is correctly raised when key is missing."
