Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 ÝPf2 ã@szddlmZddlZddlmZmZmZddlmZddl m Z m Z m Z dZ dddgZGd d „d eƒZGd d „d eƒZdS) é)Úabsolute_importN)Ú HashMismatchÚ HashMissingÚInstallationError)Ú read_chunks)Ú iteritemsÚiterkeysÚ itervaluesZsha256Zsha384Zsha512c@sJeZdZdZddd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dS)ÚHasheszaA wrapper that builds multiple hashes at once and checks them against known-good values NcCs|dkr in||_dS)zo :param hashes: A dict of algorithm names pointing to lists of allowed hex digests N)Ú_allowed)ÚselfÚhashes©rú/usr/lib/python3.6/hashes.pyÚ__init__szHashes.__init__c Cs´i}xJt|jƒD]<}ytj|ƒ||<Wqttfk rJtd|ƒ‚YqXqWx(|D] }xt|ƒD]}|j|ƒqdWqVWx*t |ƒD]\}}|j ƒ|j|kr„dSq„W|j |ƒdS)z‚Check good hashes against ones built from iterable of chunks of data. Raise HashMismatch if none match. zUnknown hash name: %sN) rr ÚhashlibÚnewÚ ValueErrorÚ TypeErrorrr ÚupdaterÚ hexdigestÚ_raise)r ZchunksÚgotsZ hash_nameÚchunkÚhashZgotrrrÚcheck_against_chunks s zHashes.check_against_chunkscCst|j|ƒ‚dS)N)rr )r rrrrr7sz Hashes._raisecCs|jt|ƒƒS)zaCheck good hashes against a file-like object Raise HashMismatch if none match. )rr)r ÚfilerrrÚcheck_against_file:szHashes.check_against_filec Cs t|dƒ� }|j|ƒSQRXdS)NÚrb)Úopenr)r ÚpathrrrrÚcheck_against_pathBs zHashes.check_against_pathcCs t|jƒS)z,Return whether I know any known-good hashes.)Úboolr )r rrrÚ __nonzero__FszHashes.__nonzero__cCs|jƒS)N)r#)r rrrÚ__bool__JszHashes.__bool__)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrrr!r#r$rrrrr s r cs(eZdZdZ‡fdd„Zdd„Z‡ZS)Ú MissingHasheszÀA workalike for Hashes used when we're missing a hash for a requirement It computes the actual hash of the requirement and raises a HashMissing exception showing it to the user. cstt|ƒjtgid�dS)z!Don't offer the ``hashes`` kwarg.)r N)Úsuperr)rÚ FAVORITE_HASH)r )Ú __class__rrrUszMissingHashes.__init__cCst|tjƒƒ‚dS)N)rr+r)r rrrrr[szMissingHashes._raise)r%r&r'r(rrÚ __classcell__rr)r,rr)Ns r))Z __future__rrZpip.exceptionsrrrZ pip.utilsrZpip._vendor.sixrrr r+Z STRONG_HASHESÚobjectr r)rrrrÚs   :