B #a@sddlZddlZddlZddlZddlZGdddeZeZeZeZ e e dddZ e e dddZ e d d d Zd d ZddZd$eejee dddZGdddeZddZddddZGdddeZGdddeZdd Zd!d"Zeejed#e ZdS)%Nc@s eZdZdS)CryptographyDeprecationWarningN)__name__ __module__ __qualname__rr;/tmp/pip-target-jgxl_w8r/lib64/python/cryptography/utils.pyrsr)namevaluecCst|tstd|dS)Nz{} must be bytes) isinstancebytes TypeErrorformat)rr rrr _check_bytess rcCs4y t|Wn"tk r.td|YnXdS)Nz{} must be bytes-like) memoryviewr r )rr rrr_check_byteslike s r)rcstfddS)Ncs t|S)N)getattr)self)rrr(z$read_only_property..)property)rr)rrread_only_property'srcsddfdd }|S)NF)check_annotationscst||d||S)N)r)verify_interfaceregister)klassr)ifacerrregister_decorator,s z.register_interface..register_decoratorr)rrr)rrregister_interface+srcsddfdd }|S)NF)rcs rt||d||S)N)r)rr)rr)r predicaterrr5s z1register_interface_if..register_decoratorr)rrrr)rrrregister_interface_if4sr)integerlengthreturncCs ||p|ddpddS)Nbig)to_bytes bit_length)r r!rrr int_to_bytes>sr)c@s eZdZdS)InterfaceNotImplementedN)rrrrrrrr*Dsr*cCstdd|jDS)NcSsg|]}|jtjjdqS)) annotation)replaceinspect Parameterempty).0paramrrr Ksz$strip_annotation..)r- Signature parametersvalues) signaturerrrstrip_annotationHsr7F)rcCsx|jD]}t||s&td||tt||tjr:qt t||}t t||}|rh||k}nt |t |k}|std||||qWdS)Nz{} is missing a {!r} methodzK{}.{}'s signature differs from the expected. Expected: {!r}. Received: {!r}) __abstractmethods__hasattrr*r r rabcabstractpropertyr-r6r7)rrrmethodsigactualokrrrrQs   rc@seZdZddZdS)_DeprecatedValuecCs||_||_||_dS)N)r message warning_class)rr rArBrrr__init__hsz_DeprecatedValue.__init__N)rrrrCrrrrr@gsr@c@s4eZdZddZddZddZddZd d Zd S) _ModuleWithDeprecationscCs||jd<dS)N_module)__dict__)rmodulerrrrCosz _ModuleWithDeprecations.__init__cCs4t|j|}t|tr0tj|j|jdd|j}|S)N) stacklevel) rrEr r@warningswarnrArBr )rattrobjrrr __getattr__rs   z#_ModuleWithDeprecations.__getattr__cCst|j||dS)N)setattrrE)rrLr rrr __setattr__ysz#_ModuleWithDeprecations.__setattr__cCs:t|j|}t|tr*tj|j|jddt|j|dS)NrH)rI) rrEr r@rJrKrArBdelattr)rrLrMrrr __delattr__|s  z#_ModuleWithDeprecations.__delattr__cCsdgt|jS)NrE)dirrE)rrrr__dir__sz_ModuleWithDeprecations.__dir__N)rrrrCrNrPrRrTrrrrrDns rDcCs.tj|}t|ts"t|tj|<t|||S)N)sysmodulesr rDr@)r module_namerArBrGrrr deprecateds    rXcs(dtfdd}t|S)Nz _cached_{}cs0t|}|k r|S|}t|||S)N)rrO)instancecacheresult) cached_namefuncsentinelrrinners   zcached_property..inner)r objectr)r]r_r)r\r]r^rcached_propertys raz8int_from_bytes is deprecated, use int.from_bytes instead)N) r:r-rUtypingrJ UserWarningrZPersistentlyDeprecated2017ZPersistentlyDeprecated2019ZDeprecatedIn34strr rrrrrintOptionalr) Exceptionr*r7rr`r@rDrXra from_bytesrZint_from_bytesrrrrs4