3 l_@sddlmZmZmZddlZddlZddlZddlZddlZGddde Z e Z e Z ddZ ddZd d Zd d Zd dZeedrejZn d$ddZeedrd%ddZn d&ddZGdddeZeedrejZnejZddZGdddeZGdddeZd d!Zd"d#Z dS)')absolute_importdivisionprint_functionNc@s eZdZdS)CryptographyDeprecationWarningN)__name__ __module__ __qualname__r r /usr/lib64/python3.6/utils.pyrsrcCst|tstdj|dS)Nz{} must be bytes) isinstancebytes TypeErrorformat)namevaluer r r _check_bytess rc Cs4y t|Wn"tk r.tdj|YnXdS)Nz{} must be bytes-like) memoryviewr r)rrr r r _check_byteslike s rcstfddS)Ncs t|S)N)getattr)self)rr 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 r5s  z1register_interface_if..register_decoratorr )rrrr )rrr register_interface_if4sr from_bytesFcCs&|dks t| stttj|dS)Nbig)AssertionErrorintbinasciiZhexlify)data byteorderZsignedr r r int_from_bytesBs  r)to_bytescCs |j|p|jddpddS)Nr")r* bit_length)integerlengthr r r int_to_bytesKsr1cCs:d|}|dkrt|}n|d}tj|j||d@S)Nz%xr-)lenr&Z unhexlifyzfill)r/r0Z hex_stringnr r r r1Ss  c@s eZdZdS)InterfaceNotImplementedN)rrrr r r r r6\sr6 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__hasattrr6rr rabcabstractpropertyr7)rrmethodZsigactualr r r rfs  rc@seZdZddZdS)_DeprecatedValuecCs||_||_||_dS)N)rmessage warning_class)rrr?r@r r r __init__ysz_DeprecatedValue.__init__N)rrrrAr r r r r>xsr>c@s4eZdZddZddZddZddZd d Zd S) _ModuleWithDeprecationscCs||jd<dS)N_module)__dict__)rmoduler r r rAsz _ModuleWithDeprecations.__init__cCs4t|j|}t|tr0tj|j|jdd|j}|S)Nr2) stacklevel) rrCr r>warningswarnr?r@r)rattrobjr r r __getattr__s   z#_ModuleWithDeprecations.__getattr__cCst|j||dS)N)setattrrC)rrIrr r r __setattr__sz#_ModuleWithDeprecations.__setattr__cCs:t|j|}t|tr*tj|j|jddt|j|dS)Nr2)rF) rrCr r>rGrHr?r@delattr)rrIrJr r r __delattr__s  z#_ModuleWithDeprecations.__delattr__cCsdgt|jS)NrC)dirrC)rr r r __dir__sz_ModuleWithDeprecations.__dir__N)rrrrArKrMrOrQr r r r rBs rBcCs.tj|}t|ts"t|tj|<t|||S)N)sysmodulesr rBr>)rZ module_namer?r@rEr r r deprecateds  rTcs(djtfdd}t|S)Nz _cached_{}cs0t|}|k r|S|}t|||S)N)rrL)instancecacheresult) cached_namefuncsentinelr r inners   zcached_property..inner)robjectr)rYr[r )rXrYrZr cached_propertys r])F)N)N)!Z __future__rrrr:r&inspectrRrG UserWarningrZPersistentlyDeprecated2017ZPersistentlyDeprecated2019rrrrr r9r%r!r)r1 Exceptionr6r7Z getargspecrr\r>rBrTr]r r r r s8