U 1_@s$ddlmZmZmZddlZddlZddlZddlZddlZGddde Z e Z e Z ddZ ddZd d Zd d Zd dZeedrejZn d&ddZeedrd'ddZn d(ddZGdddeZeedrejZnejZddZddZGdddeZGd d!d!eZd"d#Z d$d%Z!dS)))absolute_importdivisionprint_functionNc@s eZdZdS)CryptographyDeprecationWarningN__name__ __module__ __qualname__r r 6/tmp/pip-unpacked-wheel-yx5s595q/cryptography/utils.pyrsrcCst|tstd|dS)Nz{} must be bytes) isinstancebytes TypeErrorformatnamevaluer r r _check_bytess rcCs4z t|Wn"tk r.td|YnXdS)Nz{} must be bytes-like) memoryviewrrrr r r _check_byteslike s rcstfddS)Ncs t|SN)getattrselfrr r (z$read_only_property..)propertyrr rr read_only_property'srcsfdd}|S)Ncst|||Srverify_interfaceregisterklassifacer r register_decorator,s  z.register_interface..register_decoratorr )r%r&r r$r register_interface+s r'csfdd}|S)Ncsrt|||Srrr"r% predicater r r&5s  z1register_interface_if..register_decoratorr )r)r%r&r r(r register_interface_if4sr* from_bytesFcCs$|dks t|rttt|dS)Nbig)AssertionErrorintbinasciihexlify)data byteordersignedr r r int_from_bytesBs r5to_bytescCs ||p|ddpddS)Nr,)r6 bit_length)integerlengthr r r int_to_bytesKsr=cCs:d|}|dkrt|}n|d}t|||d@S)Nz%xr9)lenr0 unhexlifyzfill)r;r<Z hex_stringnr r r r=Ss  c@s eZdZdS)InterfaceNotImplementedNrr r r r rC\srC signaturecCsv|jD]j}t||s$td||tt||tjr8qtt||}tt||}||krtd||||qdS)Nz{} is missing a {!r} methodzK{}.{}'s signature differs from the expected. Expected: {!r}. Received: {!r}) __abstractmethods__hasattrrCrr rabcabstractpropertyrD)r%r#methodsigactualr r r r fs$   r cCs|Sr)r:)xr r r r:zsr:c@seZdZddZdS)_DeprecatedValuecCs||_||_||_dSr)rmessage warning_class)rrrNrOr r r __init__sz_DeprecatedValue.__init__N)rrr rPr r r r rM~srMc@s4eZdZddZddZddZddZd d Zd S) _ModuleWithDeprecationscCs||jd<dSN_module)__dict__)rmoduler r r rPsz _ModuleWithDeprecations.__init__cCs4t|j|}t|tr0tj|j|jdd|j}|SNr>) stacklevel) rrSr rMwarningswarnrNrOrrattrobjr r r __getattr__s   z#_ModuleWithDeprecations.__getattr__cCst|j||dSr)setattrrS)rr[rr r r __setattr__sz#_ModuleWithDeprecations.__setattr__cCs:t|j|}t|tr*tj|j|jddt|j|dSrV) rrSr rMrXrYrNrOdelattrrZr r r __delattr__s  z#_ModuleWithDeprecations.__delattr__cCsdgt|jSrR)dirrSrr r r __dir__sz_ModuleWithDeprecations.__dir__N)rrr rPr]r_rarcr r r r rQs rQcCs.tj|}t|ts"t|tj|<t|||Sr)sysmodulesr rQrM)r module_namerNrOrUr r r deprecateds  rgcs(dtfdd}t|S)Nz _cached_{}cs0t|}|k r|S|}t|||Sr)rr^)instancecacheresultZ cached_namefuncsentinelr r inners   zcached_property..inner)robjectr)rlrnr rkr cached_propertys rp)F)N)N)" __future__rrrrGr0inspectrdrX UserWarningrZPersistentlyDeprecated2017ZPersistentlyDeprecated2019rrrr'r*rFr/r+r5r= ExceptionrCrD getargspecr r:rorMrQrgrpr r r r s: