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_bytesFcCsttj|dS)N)intbinasciiZhexlify)data byteorderZsignedr r r int_from_bytesBsr'to_bytescCs |j|p|jddpddS)NZbig)r( bit_length)integerlengthr r r int_to_bytesKsr/cCs:d|}|dkrt|}n|d}tj|j||d@S)Nz%xr+)lenr$Z unhexlifyzfill)r-r.Z hex_stringnr r r r/Ss  c@s eZdZdS)InterfaceNotImplementedN)rrrr r r r r4\sr4 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__hasattrr4rr rabcabstractpropertyr5)rrmethodZsigactualr r r rfs  rc@seZdZddZdS)_DeprecatedValuecCs||_||_||_dS)N)rmessage warning_class)rrr=r>r r r __init__ysz_DeprecatedValue.__init__N)rrrr?r r r r r<xsr<c@s4eZdZddZddZddZddZd d Zd S) _ModuleWithDeprecationscCs||jd<dS)N_module)__dict__)rmoduler r r r?sz _ModuleWithDeprecations.__init__cCs4t|j|}t|tr0tj|j|jdd|j}|S)Nr0) stacklevel) rrAr r<warningswarnr=r>r)rattrobjr r r __getattr__s   z#_ModuleWithDeprecations.__getattr__cCst|j||dS)N)setattrrA)rrGrr r r __setattr__sz#_ModuleWithDeprecations.__setattr__cCs:t|j|}t|tr*tj|j|jddt|j|dS)Nr0)rD) rrAr r<rErFr=r>delattr)rrGrHr r r __delattr__s  z#_ModuleWithDeprecations.__delattr__cCsdgt|jS)NrA)dirrA)rr r r __dir__sz_ModuleWithDeprecations.__dir__N)rrrr?rIrKrMrOr r r r r@s r@cCs.tj|}t|ts"t|tj|<t|||S)N)sysmodulesr r@r<)rZ module_namer=r>rCr r r deprecateds  rRcs(djtfdd}t|S)Nz _cached_{}cs0t|}|k r|S|}t|||S)N)rrJ)instancecacheresult) cached_namefuncsentinelr r inners   zcached_property..inner)robjectr)rWrYr )rVrWrXr cached_propertys r[)F)N)N)!Z __future__rrrr8r$inspectrPrE UserWarningrZPersistentlyDeprecated2017ZPersistentlyDeprecated2019rrrrr r7r#r!r'r/ Exceptionr4r5Z getargspecrrZr<r@rRr[r r r r s8