3 L]@s,ddlmZmZmZddlZddlZddlZddlZddlZGddde Z e Z e Z e Z e ZddZddZd d Zd d Zd dZeedrejZn d&ddZeedrd'ddZn d(ddZGdddeZeedrejZnejZddZddZGdddeZ Gd d!d!eZ!d"d#Z"d$d%Z#dS)))absolute_importdivisionprint_functionNc@s eZdZdS)CryptographyDeprecationWarningN)__name__ __module__ __qualname__r r *sz$read_only_property..)property)rr )rr read_only_property)srcsfdd}|S)Ncst|j||S)N)verify_interfaceregister)klass)ifacer r register_decorator.s  z.register_interface..register_decoratorr )rrr )rr register_interface-s rcsfdd}|S)Ncsrt|j||S)N)rr)r)r predicater r r6s  z1register_interface_if..register_decoratorr )rrrr )rrr register_interface_if5sr from_bytesFcCs&|dks t| stttj|dS)Nbig)AssertionErrorintbinasciihexlify)data byteordersignedr r r int_from_bytesAs  r+to_bytescCs |j|p|jddpddS)Nr")r, bit_length)integerlengthr r r int_to_bytesIsr3cCs:d|}|dkrt|}n|d}tj|j||d@S)Nz%xr/)lenr& unhexlifyzfill)r1r2Z hex_stringnr r r r3Ns  c@s eZdZdS)InterfaceNotImplementedN)rrrr r r r r9Wsr9 signaturecCszxt|jD]j}t||s&tdj||tt||tjr:qtt||}tt||}||krtdj||||qWdS)Nz{} is missing a {!r} methodzK{}.{}'s signature differs from the expected. Expected: {!r}. Received: {!r}) __abstractmethods__hasattrr9rr rabcabstractpropertyr:)rrmethodsigactualr r r ras  rcCs|jS)N)r0)xr r r r0wsr0c@seZdZddZdS)_DeprecatedValuecCs||_||_||_dS)N)rmessage warning_class)rrrDrEr r r __init__|sz_DeprecatedValue.__init__N)rrrrFr r r r rC{srCc@s4eZdZddZddZddZddZd d Zd S) _ModuleWithDeprecationscCs||jd<dS)N_module)__dict__)rmoduler r r rFsz _ModuleWithDeprecations.__init__cCs4t|j|}t|tr0tj|j|jdd|j}|S)Nr4) stacklevel) rrHr rCwarningswarnrDrEr)rattrobjr r r __getattr__s   z#_ModuleWithDeprecations.__getattr__cCst|j||dS)N)setattrrH)rrNrr r r __setattr__sz#_ModuleWithDeprecations.__setattr__cCs:t|j|}t|tr*tj|j|jddt|j|dS)Nr4)rK) rrHr rCrLrMrDrEdelattr)rrNrOr r r __delattr__s  z#_ModuleWithDeprecations.__delattr__cCsdgt|jS)NrH)dirrH)rr r r __dir__sz_ModuleWithDeprecations.__dir__N)rrrrFrPrRrTrVr r r r rGs rGcCs.tj|}t|ts"t|tj|<t|||S)N)sysmodulesr rGrC)r module_namerDrErJr r r deprecateds  rZcs(djtfdd}t|S)Nz _cached_{}cs0t|}|k r|S|}t|||S)N)rrQ)instancecacheresult) cached_namefuncsentinelr r inners   zcached_property..inner)robjectr)r_rar )r^r_r`r cached_propertys rc)F)N)N)$ __future__rrrr=r&inspectrWrL UserWarningrZPersistentlyDeprecated2017ZPersistentlyDeprecated2018ZDeprecatedIn25ZDeprecatedIn27rrrrr r<r%r!r+r3 Exceptionr9r: getargspecrr0rbrCrGrZrcr r r r s>