
    6h/                        S SK Jr  S SKrS SKJr  S SKJrJr  S SKJ	r	   " S S\R                  5      r " S S	\5      r\R                  rg)
    )annotationsN)_)errorpycompat)
stringutilc                      \ rS rSrSrg)InvalidPointer    N)__name__
__module____qualname____firstlineno____static_attributes__r       3/usr/lib/python3/dist-packages/hgext/lfs/pointer.pyr	   r	      s    r   r	   c                  .  ^  \ rS rSrSrU 4S jr\S 5       rS rS r	S r
\R                  " S5      r\R                  " S	5      r\R                  " S
5      \R                  " S5      \R                  " S\R                   " \5      -  5      S.rS rSrU =r$ )gitlfspointer   s"   https://git-lfs.github.com/spec/v1c                   > U R                   U S'   [        TU ]  " U6   U R                  [        R
                  " U5      5        g )N   version)VERSIONsuper__init__updater   byteskwargs)selfargskwargs	__class__s      r   r   gitlfspointer.__init__   s5    <<Z$H((01r   c                     U " S UR                  5        5       5      R                  5       $ ! [         a,    [        [	        S5      [
        R                  " U5      -  5      ef = f)Nc              3  D   #    U  H  oR                  S S5      v   M     g7f)       Nsplit).0ls     r   	<genexpr>,gitlfspointer.deserialize.<locals>.<genexpr>$   s     C1BAwwtQ''1Bs    s   cannot parse git-lfs text: %s)
splitlinesvalidate
ValueErrorr	   r   r   pprint)clstexts     r   deserializegitlfspointer.deserialize!   s]    	C1BCCLLNN 	 23j6G6G6MM 	s	   *- 6A#c                    S n[        U R                  5       R                  5       US9nSR                  S U 5       5      $ )Nc                    U S   S:g  U 4$ )Nr   r   r   )xs    r   <lambda>)gitlfspointer.serialize.<locals>.<lambda>+   s    1!3Q 7r   )keyr   c              3  2   #    U  H  u  pS X4-  v   M     g7f)s   %s %s
Nr   )r(   kvs      r   r*   *gitlfspointer.serialize.<locals>.<genexpr>-   s     >
aV+s   )sortedr-   itemsjoin)r   sortkeyfuncr?   s      r   	serializegitlfspointer.serialize*   s7    7t}},,.K@xx>>>>r   c                0    U S   R                  S5      S   $ )N   oid   :r&   r   s    r   oidgitlfspointer.oid/   s    F|!!$'++r   c                    [        U S   5      $ )N   size)intrH   s    r   sizegitlfspointer.size2   s    4=!!r   s   \A[a-z0-9.-]+\Zs
   \A[^\n]*\Zs
   \A[0-9]+\Zs   \Asha256:[0-9a-f]{64}\Zs   \A%s\Z)rL   rE   r   c                   SnU R                  5        H  u  p#X R                  ;   aV  U R                  U   R                  U5      (       d-  [        [	        S5      U[
        R                  " U5      4-  5      eUS-  nO7U R                  R                  U5      (       d  [        [	        S5      U-  5      eU R                  R                  U5      (       a  M  [        [	        S5      U[
        R                  " U5      4-  5      e   [        U R                  5      U:w  ao  [        [        U R                  R                  5       5      R                  U R                  5       5      5      n[        [	        S5      SR                  U5      -  5      eU $ )z?raise InvalidPointer on error. return self if there is no errorr   s#   unexpected lfs pointer value: %s=%sr%   s   unexpected lfs pointer key: %ss   missing lfs pointer keys: %ss   , )r?   _requiredrematchr	   r   r   r/   _keyre_valuerelenr>   setkeys
differencer@   )r   requiredcountr;   r<   misss        r   r-   gitlfspointer.validate?   sX   JJLDA$$$''*0033(@Aj//234  "[[&&q))$Q'H%IA%MNN==&&q))$<=*++A./0  ! t M1#d..3356AA$))+NOD 12UZZ5EE  r   r   )r   r   r   r   r   r   classmethodr2   rB   rI   rN   recompilerS   rT   r   reescaperQ   r-   r   __classcell__)r    s   @r   r   r      s    3G2
  ?
,"
 ZZ+,Fzz.)HN+

67JJzJ,?,?,HHIK r   r   )
__future__r   r]   mercurial.i18nr   	mercurialr   r   mercurial.utilsr   StorageErrorr	   dictr   r2   r   r   r   <module>rg      sF    # 	  '	U'' 	=D =@ ''r   