3 UˆŠZÚ ã @sbyddlmZddlmZWn0ek rLddlmZeZddlmZYnXGdd„deƒZdS)é)ÚUserDict)Ú StringType)Úreducec@s’eZdZd"dd„Zdd„Zdd„Zdd „ZeZd d „Zd d „Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„Zd d!„ZdS)#Ú UserDictCaseNcCsi|_tj||ƒdS)N)ÚkcaserÚ__init__)ÚselfÚdata©r ú"/usr/lib/python3.6/UserDictCase.pyrszUserDictCase.__init__cCst|tƒr|jƒS|SdS)z. Return the lower() of key if it is a string. N)Ú isinstancerÚlower)rÚkeyr r r Z__lower_string#s zUserDictCase.__lower_stringcCs"|j|ƒ}||j|<||j|<dS)N)Ú_UserDictCase__lower_stringr r)rrÚvalueZlkeyr r r Ú __setitem__+s  zUserDictCase.__setitem__cCs|j|ƒ}|j|S)N)rr )rrr r r Ú __getitem__0s zUserDictCase.__getitem__cCs|j|ƒ}|j|=|j|=dS)N)rr r)rrr r r Ú __delitem__6s zUserDictCase.__delitem__cCs|j|ƒ}||jkS)N)rr )rrr r r Ú __contains__;s zUserDictCase.__contains__cCs |jjƒS)N)rÚvalues)rr r r Úkeys?szUserDictCase.keyscCs |jƒjƒS)N)Úget_hashÚitems)rr r r rBszUserDictCase.itemscCs||kS)Nr )rrr r r Úhas_keyEszUserDictCase.has_keycCs|jjƒ|jjƒdS)N)r Úclearr)rr r r rIs zUserDictCase.clearcCst|jfdd„|jjƒiƒS)NcSs|j||d|diƒp|S)Nré)Úupdate)ÚaÚtZhcr r r ÚOsz'UserDictCase.get_hash..)rrr r)rr r r rNszUserDictCase.get_hashcCs|jƒS)N)r)rr r r Ú __getstate__SszUserDictCase.__getstate__cCs|j|ƒdS)N)r)rÚstater r r Ú __setstate__WszUserDictCase.__setstate__cCs|jƒS)N)r)rr r r Údict[szUserDictCase.dictcCs"x|jƒD]\}}|||<q WdS)N)r)rr#ÚkÚvr r r r^szUserDictCase.updatecCs t|jƒS)N)Úiterr )rr r r Ú__iter__dszUserDictCase.__iter__)N)Ú__name__Ú __module__Ú __qualname__rrrrÚgetrrrrrrrr r"r#rr'r r r r rs" rN) rÚtypesrÚ ImportErrorÚ collectionsÚbytesÚ functoolsrrr r r r Ús