
                         *    S r S rS r " S S\5      rg)zMailmap file reader.c                     U R                  SS5      u  pUR                  5       nUR                  S5      R                  5       nU(       d  S nU(       d  S nX4$ )N   <      >)rsplitstriprstrip)textnameemails      "lib/third_party/dulwich/mailmap.pyparse_identityr      sP     KKa(MT::<DLL$$&E=    c              #     #    U  H|  nUR                  S5      S   nUR                  5       nU(       d  M0  UR                  SS5      u  p#US-  nUR                  5       (       a  [        U5      nOSn[        U5      nXT4v   M~     g7f)zRead a mailmap.

Args:
  f: File-like object to read from
Returns: Iterator over
    ((canonical_name, canonical_email), (from_name, from_email)) tuples
   #    r   r   N)splitr   r   )flinecanonical_identityfrom_identityparsed_from_identityparsed_canonical_identitys         r   read_mailmapr   %   s      zz$"zz|.2jjq.A+	d"  #1-#@ #' $23E$F!'== s   BBc                   B    \ rS rSrSrS	S jrS	S jrS r\S 5       r	Sr
g)
Mailmap=   z#Class for accessing a mailmap file.Nc                 Z    0 U l         U(       a  U H  u  p#U R                  X#5        M     g g N)_table	add_entry)selfmapr   r   s       r   __init__Mailmap.__init__@   s,    7:3#1A 8; r   c                     Uc  Su  p4OUu  p4Uu  pVUc$  Uc!  XR                   US4'   XR                   SU4'   gXR                   X44'   g)zAdd an entry to the mail mail.

Any of the fields can be None, but at least one of them needs to be
set.

Args:
  canonical_identity: The canonical identity (tuple)
  from_identity: The from identity (tuple)
N)NNr   )r!   r   r   	from_name
from_emailcanonical_namecanonical_emails          r   r    Mailmap.add_entryF   s`      $.!Iz&3#Y,>)!30BKK,-1CKKo-.1CKK	-.r   c                 0   [        U[        5      (       d  Sn[        U5      nOSnUSUS   4US   S44 HE  nU R                  R	                  U5      nUc  M#  US   =(       d    US   US   =(       d    US   4n  O   U(       a  U$ US   S-   US   -   S-   $ )z$Lookup an identity in this mailmail.FTNr   r   s    <r   )
isinstancetupler   r   get)r!   identity	was_tuplequeryr   s        r   lookupMailmap.lookup[   s    (E**I%h/HIx{ 3hqk45HIE!%!7!-&q)8Xa[&q)8Xa[  J OA;&!4t;;r   c                 r    [        US5       nU " [        U5      5      sS S S 5        $ ! , (       d  f       g = f)Nrb)openr   )clspathr   s      r   	from_pathMailmap.from_patho   s&    $|A' s   (
6r&   r   )__name__
__module____qualname____firstlineno____doc__r#   r    r3   classmethodr:   __static_attributes__ r   r   r   r   =   s*    -BD*<( ( (r   r   N)r@   r   r   objectr   rC   r   r   <module>rE      s    * 
>05(f 5(r   