ó BuÆ_c@@sñddlmZddlZddlZddlZddlmZddlmZm Z ddl m Z m Z ddl mZmZddlmZer¿ddlmZdd lmZnejeƒZd efd „ƒYZd „ZdS( i(tabsolute_importN(tCommand(tERRORtSUCCESS(t FAVORITE_HASHt STRONG_HASHES(t read_chunkst write_output(tMYPY_CHECK_RUNNING(tValues(tListt HashCommandcB@s,eZdZdZeZd„Zd„ZRS(s Compute a hash of a local package archive. These can be used with --hash in a requirements file to do repeatable installs. s%prog [options] ...cC@s]|jjdddddtdddtd d jd jtƒƒƒ|jjd |jƒdS( Ns-as --algorithmtdestt algorithmtchoicestactiontstoretdefaultthelps$The hash algorithm to use: one of {}s, i(tcmd_optst add_optionRRtformattjointparsertinsert_option_group(tself((sL/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/commands/hash.pyt add_optionss  cC@sW|s|jjtjƒtS|j}x*|D]"}td||t||ƒƒq-WtS(Ns%s: --hash=%s:%s( Rt print_usagetsyststderrRR Rt _hash_of_fileR(RtoptionstargsR tpath((sL/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/commands/hash.pytrun+s  (t__name__t __module__t__doc__tusagetTruetignore_require_venvRR"(((sL/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/commands/hash.pyR s  cC@sUt|dƒ:}tj|ƒ}x!t|ƒD]}|j|ƒq.WWdQX|jƒS(s!Return the hash digest of a file.trbN(topenthashlibtnewRtupdatet hexdigest(R!R tarchivethashtchunk((sL/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/commands/hash.pyR8s (t __future__RR+tloggingRtpip._internal.cli.base_commandRtpip._internal.cli.status_codesRRtpip._internal.utils.hashesRRtpip._internal.utils.miscRRtpip._internal.utils.typingRtoptparseR ttypingR t getLoggerR#tloggerR R(((sL/opt/alt/python36/lib/python3.6/site-packages/pip/_internal/commands/hash.pyts   $