
    i                     t   d Z ddlmZmZmZmZ  edd          Z edd          Zer2ddlmZ e G d	 de                      Z	e G d
 de                      Z
ededefd            Zedededz  fd            Zdeez  dedz  fdZededefd            Zedededz  fd            Zdeez  dedz  fdZ edd          Z edd          Zer,e G d de                      Ze G d de                      Zededefd            Zedededz  fd            Zdeez  dedz  fdZdS )aB  Helper utilities around Telegram Objects first_name, last_name and username.
.. versionadded:: 22.4

Warning:
    Contents of this module are intended to be used internally by the library and *not* by the
    user. Changes to this module are not considered breaking changes and may not be documented in
    the changelog.
    )TYPE_CHECKINGProtocolTypeVaroverloadTeleUserLikeUserLike)boundTeleUserLikeOptionalUserLikeOptional)type_check_onlyc                   :    e Zd ZU eed<   edz  ed<   edz  ed<   dS )r   
first_nameN	last_nameusername__name__
__module____qualname__str__annotations__     Y/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/telegram/_utils/usernames.pyr   r   $   s;         :*r   c                   @    e Zd ZU edz  ed<   edz  ed<   edz  ed<   dS )r   Nr   r   r   r   r   r   r   r   r   *   sB         $J:*r   userlikereturnc                     d S Nr   r   s    r   get_namer    1       -0Sr   Nc                     d S r   r   r   s    r   r    r    3       <?Cr   c                 D    | j         r
d| j          S t          |           S )zwReturns ``username`` prefixed with "@". If  ``username`` is not available, calls
    :func:`get_full_name` below`.
    @r   )r   get_full_namer   s    r   r    r    7   s1      '&8$&&&(++++r   c                     d S r   r   r   s    r   r&   r&   @   s    25#r   c                     d S r   r   r   s    r   r&   r&   B   s    ADr   c                 R    | j         sdS | j        r| j          d| j         S | j         S )z
    If parameter ``first_name`` is not :obj:`None`, gives
    ``first_name`` followed by (if available) `UserLike.last_name`. Otherwise,
    :obj:`None` is returned.
    N )r   r   r   s    r   r&   r&   F   sB      t =%<<(:<<<r   TeleLinkableLinkableTeleLinkableOptionalLinkableOptionalc                       e Zd ZU eed<   dS )r,   r   Nr   r   r   r   r,   r,   Z   s         r   c                        e Zd ZU edz  ed<   dS )r.   Nr   r   r   r   r   r.   r.   ^   s"         *r   linkablec                     d S r   r   r1   s    r   get_linkr4   c   r!   r   c                     d S r   r   r3   s    r   r4   r4   e   r#   r   c                 (    | j         r
d| j          S dS )zCIf ``username`` is available, returns a t.me link of the user/chat.zhttps://t.me/N)r   r3   s    r   r4   r4   i   s#     32x02224r   )__doc__typingr   r   r   r   r   r
   r   r   r   r   r    r&   r+   r-   r,   r.   r4   r   r   r   <module>r9      s  &  > = = = = = = = = = = =w~Z888w5=OPPP  &&&&&&    8   _
     8   _ 
 0| 0 0 0 0 
 0	 ?+ ?d
 ? ? ? 
 ?,|&:: ,sTz , , , , 
 5L 5S 5 5 5 
 5	 D0 DS4Z D D D 
 D
L+?? 
C$J 
 
 
 
 w~Z888w5=OPPP      8   _     8   _ 
 0| 0 0 0 0 
 0	 ?+ ?d
 ? ? ? 
 ?|&:: sTz      r   