
    ,Of8&                        d dl mZ d dlmZmZ d dlmZ d dlZd dlZd dl	Zd dl
Zd dlmZmZmZmZmZ d dl
mZ  G d de      Zy)	    )annotations)datedatetime)AnyN)	AttributeCompletableGithubObjectNotSetOpt
is_defined)PaginatedListc                  V   e Zd ZdZddZddZedd       Zedd       Zedd       Z	edd       Z
edd       Zedd	       Zedd
       Zedd       Zedd       Zedd       Zedd       Zedd       Zedd       ZddZeeef	 	 	 	 	 	 	 	 	 ddZddZedd       ZddZy) 	Milestonez
    This class represents Milestones.

    The reference can be found here
    https://docs.github.com/en/rest/reference/issues#milestones

    c                "   t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _	        t         | _
        t         | _        t         | _        t         | _        y N)r	   _closed_issues_created_at_creator_description_due_on_id_labels_url_number_open_issues_state_title_updated_at_urlselfs    0lib/python3.12/site-packages/github/Milestone.py_initAttributeszMilestone._initAttributes@   sc    .406?E,2,2#)+1'-,2&,&,06$*	    c                z    | j                  | j                  j                  | j                  j                  d      S )N)numbertitle)get__repr__r   valuer   r   s    r    __repr__zMilestone.__repr__O   s,    4<<+=+=HYHY Z[[r"   c                d    | j                  | j                         | j                  j                  S r   )_completeIfNotSetr   r'   r   s    r    closed_issueszMilestone.closed_issuesR   s(    t223""(((r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    
created_atzMilestone.created_atW   (    t//0%%%r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    creatorzMilestone.creator\   s$    t}}-}}"""r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    descriptionzMilestone.descriptiona   (    t001  &&&r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    due_onzMilestone.due_onf   $    t||,||!!!r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    idzMilestone.idk   s"    txx(xx~~r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    
labels_urlzMilestone.labels_urlp   r.   r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    r$   zMilestone.numberu   r6   r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    open_issueszMilestone.open_issuesz   r3   r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    statezMilestone.state   $    t{{+{{   r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    r%   zMilestone.title   r@   r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    
updated_atzMilestone.updated_at   r.   r"   c                d    | j                  | j                         | j                  j                  S r   )r*   r   r'   r   s    r    urlzMilestone.url   s"    tyy)yyr"   c                V    | j                   j                  d| j                        \  }}y)z
        :calls: `DELETE /repos/{owner}/{repo}/milestones/{number} <https://docs.github.com/en/rest/reference/issues#milestones>`_
        DELETEN)
_requesterrequestJsonAndCheckrE   )r   headersdatas      r    deletezMilestone.delete   s"     ;;HdhhOr"   c                   t        |t              sJ |       |t        u st        |t              sJ |       |t        u st        |t              sJ |       |t        u st        |t              sJ |       t        j                  |||d      }t        |      r|j                  d      |d<   | j                  j                  d| j                  |      \  }}| j                  |       y)z
        :calls: `PATCH /repos/{owner}/{repo}/milestones/{number} <https://docs.github.com/en/rest/reference/issues#milestones>`_
        )r%   r?   r2   z%Y-%m-%dr5   PATCH)inputN)
isinstancestrr	   r   remove_unset_itemsr   strftimerH   rI   rE   _useAttributes)r   r%   r?   r2   r5   post_parametersrJ   rK   s           r    editzMilestone.edit   s     %%,u,%*UC"8?%?8f$
;(DQkQD:fd#;CVC; 33*
 f(.
(COH%;;GTXXUd;eD!r"   c                |    t        t        j                  j                  | j                  | j                   dd      S )z
        :calls: `GET /repos/{owner}/{repo}/milestones/{number}/labels <https://docs.github.com/en/rest/reference/issues#labels>`_
        z/labelsN)r   githubLabelrH   rE   r   s    r    
get_labelszMilestone.get_labels   s/     V\\//TXXJgBVX\]]r"   c                    | j                   S r   )r$   r   s    r    	_identityzMilestone._identity   s    {{r"   c                *   d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r2| j	                  t
        j                  j                  |d         | _        d|v r| j                  |d         | _	        d|v r| j                  |d         | _
        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d	|v r| j                  |d	         | _        d
|v r| j                  |d
         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        d|v r| j                  |d         | _        y y )Nr+   r-   r0   r2   r5   r8   r:   r$   r=   r?   r%   rC   rE   )_makeIntAttributer   _makeDatetimeAttributer   _makeClassAttributerX   	NamedUserr   _makeStringAttributer   r   r   r   r   r   r   r   r   r   )r   
attributess     r    rT   zMilestone._useAttributes   s   j("&"8"8O9T"UD:%#:::l;STD
" 44V5E5E5O5OQ[\eQfgDMJ& $ 9 9*]:S TDz!66z(7KLDL:--j.>?DH:%#88L9QRDz!11*X2FGDLJ& $ 6 6z-7P QDj 33Jw4GHDKj 33Jw4GHDK:%#:::l;STDJ11*U2CDDI r"   N)returnNone)rd   rQ   )rd   int)rd   r   )rd   zgithub.NamedUser.NamedUser)rd   zdatetime | None)
r%   rQ   r?   Opt[str]r2   rg   r5   z	Opt[date]rd   re   )rd   z!PaginatedList[github.Label.Label])rc   zdict[str, Any]rd   re   )__name__
__module____qualname____doc__r!   r(   propertyr+   r-   r0   r2   r5   r8   r:   r$   r=   r?   r%   rC   rE   rL   r	   rV   rZ   r\   rT    r"   r    r   r   7   ss   +\ ) ) & & # # ' ' " "   & & " " ' ' ! ! ! ! & &  P -3Fhn""!)"AI"\e"	"0^  Er"   r   )
__future__r   r   r   typingr   github.GithubObjectrX   github.Labelgithub.NamedUsergithub.PaginatedListr   r   r	   r
   r   r   r   rm   r"   r    <module>rt      s7   T # #      [ [ .^E' ^Er"   