a  `@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 4/usr/lib/python3/dist-packages/cryptography/utils.pyrsrcCst|tstd|dS)Nz{} must be bytes) isinstancebytes TypeErrorformatnamevaluer r r _check_bytess rcCs2z t|Wn ty,td|Yn0dS)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 J|rJtt|dS)Nbig)intbinasciiZhexlify)data byteorderZsignedr r r int_from_bytesBs r2to_bytescCs ||p|ddpddS)Nr,)r3 bit_length)integerlengthr r r int_to_bytesKsr:cCs:d|}|durt|}n|d}t|||d@S)Nz%xr6)lenr/Z unhexlifyzfill)r8r9Z hex_stringnr r r r:Ss  c@s eZdZdS)InterfaceNotImplementedNrr r r r r?\sr? 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__hasattrr?rr rabcabstractpropertyr@)r%r#methodZsigZactualr r r r fs   r c@seZdZddZdS)_DeprecatedValuecCs||_||_||_dSr)rmessage warning_class)rrrGrHr r r __init__ysz_DeprecatedValue.__init__N)rrr rIr r r r rFxsrFc@s4eZdZddZddZddZddZd d Zd S) _ModuleWithDeprecationscCs||jd<dSN_module)__dict__)rmoduler r r rIsz _ModuleWithDeprecations.__init__cCs4t|j|}t|tr0tj|j|jdd|j}|SNr;) stacklevel) rrLr rFwarningswarnrGrHrrattrobjr r r __getattr__s   z#_ModuleWithDeprecations.__getattr__cCst|j||dSr)setattrrL)rrTrr r r __setattr__sz#_ModuleWithDeprecations.__setattr__cCs:t|j|}t|tr*tj|j|jddt|j|dSrO) rrLr rFrQrRrGrHdelattrrSr r r __delattr__s  z#_ModuleWithDeprecations.__delattr__cCsdgt|jSrK)dirrLrr r r __dir__sz_ModuleWithDeprecations.__dir__N)rrr rIrVrXrZr\r r r r rJs rJcCs.tj|}t|ts"t|tj|<t|||Sr)sysmodulesr rJrF)rZ module_namerGrHrNr r r deprecateds  r_cs(dtfdd}t|S)Nz _cached_{}cs0t|}|ur|S|}t|||Sr)rrW)instancecacheresultZ cached_namefuncsentinelr r inners   zcached_property..inner)robjectr)rdrfr rcr cached_propertys rh)F)N)N)!Z __future__rrrrCr/inspectr]rQ UserWarningrZPersistentlyDeprecated2017ZPersistentlyDeprecated2019rrrr'r*rBr.r+r2r: Exceptionr?r@Z getargspecr rgrFrJr_rhr r r r s8