o ]Lb^ @shddlmZddlZddlmZddlmZmZddlm Z Gdddej Z Gdd d e Z e jZdS) )absolute_importN)_)errorpycompat) stringutilc@s eZdZdS)InvalidPointerN)__name__ __module__ __qualname__r r 3/usr/lib/python3/dist-packages/hgext/lfs/pointer.pyrsrcseZdZdZfddZeddZddZdd Zd d Z e d Z e d Z e de de deedZddZZS) gitlfspointers"https://git-lfs.github.com/spec/v1cs.|j|d<tt|j||t|dS)Nversion)VERSIONsuperr __init__updater byteskwargs)selfargskwargs __class__r r rs zgitlfspointer.__init__cCsBz|dd|DWSty ttdt|w)Ncss|] }|ddVqdS) Nsplit).0lr r r $sz,gitlfspointer.deserialize..scannot parse git-lfs text: %s) splitlinesvalidate ValueErrorrrrpprint)clstextr r r deserialize!s zgitlfspointer.deserializecCs2dd}tt||d}ddd|DS)NcSs|ddk|fS)Nrrr )xr r r +sz)gitlfspointer.serialize..)keycss |] \}}d||fVqdS)s%s %s Nr )rkvr r r r-sz*gitlfspointer.serialize..)sortedr iteritemsr!join)r sortkeyfuncitemsr r r serialize*szgitlfspointer.serializecCs|dddS)Noid:rrr r r oid/szgitlfspointer.oidcCs t|dS)Nsize)intr6r r r size2s zgitlfspointer.sizes\A[a-z0-9.-]+\Zs \A[^\n]*\Zs \A[0-9]+\Zs\Asha256:[0-9a-f]{64}\Zs\A%s\Z)r8r3rcCsd}t|D]D\}}||jvr*|j||s%ttd|t|f|d7}n|j|s8ttd||j |sKttd|t|fqt |j|krlt t |j | }ttdd||S)z?raise InvalidPointer on error. return self if there is no errorrs#unexpected lfs pointer value: %s=%srsunexpected lfs pointer key: %ssmissing lfs pointer keys: %ss, )rr. _requiredrematchrrrr#_keyre_valuerelenr-setkeys differencer/)r requiredcountr+r,missr r r r!?s2      zgitlfspointer.validate)rr r rr classmethodr&r2r7r:recompiler=r>rreescaper;r! __classcell__r r rr r s    r ) __future__rrFmercurial.i18nr mercurialrrmercurial.utilsr StorageErrorrdictr r&r r r r s    @