
    Ti                     d    d dl mZmZ d Z G d de      Z G d de      Z G d de      Zdd	Z	y
)    )wrapsreducec                 .     t                fd       }|S )zjDecorator for addition operator methods that returns the object itself if
    `other` is the empty string.c                 $    |dk(  r| S  | |      S N  )objothermethods     B/home/agent/.local/lib/python3.12/site-packages/citeproc/string.pywrapperz$discard_empty_other.<locals>.wrapper   s    B;J#u%%    )r   )r   r   s   ` r   discard_empty_otherr      s"     6]& &
 Nr   c                   z     e Zd Zed        Zed        Zd Z fdZ fdZ fdZ	 fdZ
d Zd	 Zd
 Zd Z xZS )Stringc                 8    t        |g      j                  |       S NMixedString__add__selfr   s     r   __radd__zString.__radd__   s    E7#++D11r   c                 8    t        | g      j                  |      S r   r   r   s     r   r   zString.__add__   s    D6"**511r   c                 $    | j                  |      S r   r   r   s     r   __iadd__zString.__iadd__       ||E""r   c                 H    | j                  t        t        |   |i |      S r   )	__class__superr   replacer   argskwargsr!   s      r   r#   zString.replace   s#    ~~eFD94J6JKKr   c                 H    | j                  t        t        |   |i |      S r   )r!   r"   r   rstripr$   s      r   r(   zString.rstrip    s#    ~~eFD8$I&IJJr   c                 F    | j                  t        t        |                S r   )r!   r"   r   lowerr   r!   s    r   r*   zString.lower#       ~~eFD79::r   c                 F    | j                  t        t        |                S r   )r!   r"   r   upperr+   s    r   r.   zString.upper&   r,   r   c                 "    | j                         S r   )r*   r   s    r   
soft_lowerzString.soft_lower)       zz|r   c                 "    | j                         S r   )r.   r0   s    r   
soft_upperzString.soft_upper,   r2   r   c                 R    | j                  | d   j                         | dd  z         S )Nr      r!   r.   r0   s    r   capitalize_firstzString.capitalize_first/   s&    ~~d1gmmoQR899r   c              #   \   K   | j                         D ]  }| j                  |        y wr   )splitr!   )r   words     r   wordszString.words2   s*     JJL 	'D..&&	's   *,)__name__
__module____qualname__r   r   r   r   r#   r(   r*   r.   r1   r4   r8   r<   __classcell__r!   s   @r   r   r      sX    2 2 2 2#LK;;:'r   r   c                        e Zd Ze fd       Zed        Zd Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Z xZS )r   c                     t        t        |       }	 | j                  |j                  |            S # t        $ r- | j                  |j                  t        |g                  cY S w xY wr   )r"   r   r!   r   	TypeError)r   r   	super_objr!   s      r   r   zMixedString.__add__8   sa    +t,		K>>)"3"3E":;; 	K>>)"3"3K4H"IJJ	Ks   3 3A)(A)c                 D    | j                  |g      j                  |       S r   )r!   r   r   s     r   r   zMixedString.__radd__@   s    ~~ug&..t44r   c                 $    | j                  |      S r   r   r   s     r   r   zMixedString.__iadd__D   r   r   c                 @    dj                  t        t        |             S r   )joinmapstrr0   s    r   __str__zMixedString.__str__G   s    wws3~&&r   c                     t        |       |   S r   )rK   )r   indexs     r   __getitem__zMixedString.__getitem__J   s    4yr   c                 d    | j                  | D cg c]  } |j                  |  c}      S c c}w r   )r!   r#   )r   r%   strings      r   r#   zMixedString.replaceM   s*    ~~4H~v~~t4HIIHs   -c                 h    | j                  | D cg c]  }|j                  |       c}      S c c}w r   )r!   	translate)r   tablerQ   s      r   rS   zMixedString.translateP   s*    ~~TJ6v//6JKKJs   /c                 f    | j                  | D cg c]  }|j                          c}      S c c}w r   )r!   r*   r   rQ   s     r   r*   zMixedString.lowerS   %    ~~DA&v||~ABBA   .c                 f    | j                  | D cg c]  }|j                          c}      S c c}w r   r7   rV   s     r   r.   zMixedString.upperV   rW   rX   c                 f    | j                  | D cg c]  }|j                          c}      S c c}w r   )r!   titlerV   s     r   r[   zMixedString.titleY   rW   rX   c                     t        |       }t        |      j                         g}||D cg c]  }| c}z  }| j                  |      S c c}w r   )iternextr8   r!   )r   	self_iteroutputrQ   s       r   r8   zMixedString.capitalize_first\   sI    J	y/2245	2f622~~f%% 3s   	A
c                 &    t        d | D              S )Nc              3   <   K   | ]  }|j                           y wr   )isupper).0rQ   s     r   	<genexpr>z&MixedString.isupper.<locals>.<genexpr>c   s     76>>#7s   )allr0   s    r   rc   zMixedString.isupperb   s    7$777r   c                 8     t        |       j                  |i |S r   )rK   r:   )r   r%   r&   s      r   r:   zMixedString.splite   s    s4y///r   c                     t        |       } t        |      j                  |i |g}||D cg c]  }| c}z  }| j                  t        |            S c c}w r   )reversedr^   r(   r!   )r   r%   r&   rev_iterr`   rQ   s         r   r(   zMixedString.rstriph   sW    D>'$x.''8891f611~~hv.// 2s   	Ac              #   L   K   | D ]  }|j                         D ]  }|   y wr   )r<   )r   rQ   r;   s      r   r<   zMixedString.wordsn   s/      	F 
	s   "$)r=   r>   r?   r   r   r   r   rL   rO   r#   rS   r*   r.   r[   r8   rc   r:   r(   r<   r@   rA   s   @r   r   r   7   sq    K K 5 5#' JLCCC&800r   r   c                   $    e Zd Zd Zd Zd Zd Zy)NoCasec                 `    dj                  | j                  j                  t        |             S )Nz{}({}))formatr!   r=   rK   r0   s    r   __repr__zNoCase.__repr__u   s!    t~~66D	BBr   c                     | S r   r	   r0   s    r   r1   zNoCase.soft_lowerx       r   c                     | S r   r	   r0   s    r   r4   zNoCase.soft_upper{   rr   r   c                     | S r   r	   r0   s    r   r8   zNoCase.capitalize_first~   rr   r   N)r=   r>   r?   rp   r1   r4   r8   r	   r   r   rm   rm   t   s    Cr   rm   c                 "    t        fd|       S )Nc                     | z   |z   S r   r	   )ab	delimiters     r   <lambda>zjoin.<locals>.<lambda>   s    q9}q0 r   )r   )itemsry   s    `r   rI   rI      s    0%88r   N)r   )
	functoolsr   r   r   rK   r   listr   rm   rI   r	   r   r   <module>r~      s8    #	#'S #'L:$ :zV 9r   