î “Reñ ã @ s¼ d d l m Z m Z m Z d d l m Z y d d l j j Z Wn$ e k rh d d l j j Z Yn Xd d d d d g Z Gd d „ d e ƒ Z d d „ Z d d „ Z d d „ Z d S) é )Úabsolute_importÚdivisionÚunicode_literals)Ú ModuleTypeNÚ default_etreeÚMethodDispatcherÚisSurrogatePairÚsurrogatePairToCodepointÚmoduleFactoryFactoryc @ s1 e Z d Z d Z f d d „ Z d d „ Z d S)r ap Dict with 2 special properties: On initiation, keys that are lists, sets or tuples are converted to multiple keys so accessing any one of the items in the original list-like object returns the matching value md = MethodDispatcher({("foo", "bar"):"baz"}) md["foo"] == "baz" A default value which can be set through the default attribute. c C s’ g } xl | D]d \ } } t | ƒ t t t t f k r^ x7 | D] } | j | | f ƒ q> Wq | j | | f ƒ q Wt j | | ƒ d | _ d S)N) ÚtypeÚlistÚtupleÚ frozensetÚsetÚappendÚdictÚ__init__Údefault)ÚselfÚitemsÚ_dictEntriesÚnameÚvalueÚitem© r ú5/tmp/pip-ztkk0jow-build/pip/_vendor/html5lib/utils.pyr s zMethodDispatcher.__init__c C s t j | | | j ƒ S)N)r Úgetr )r Úkeyr r r Ú__getitem__* s zMethodDispatcher.__getitem__N)Ú__name__Ú __module__Ú__qualname__Ú__doc__r r r r r r r s c C sh t | ƒ d k og t | d ƒ d k og t | d ƒ d k og t | d ƒ d k og t | d ƒ d k S)Né r i Ø iÿÛ é i Ü iÿß )ÚlenÚord)Údatar r r r 1 s ,c C s2 d t | d ƒ d d t | d ƒ d } | S)Ni r i Ø i r$ i Ü )r&