
    ,Of`+                        d dl mZ d dlmZ d dlmZ d dlZd dlZd dlZd dlm	Z	 d dlm
Z
mZmZmZ d dlmZ  G d d	e      Zy)
    )annotations)datetime)AnyN)Consts)	AttributeCompletableGithubObjectNotSetOpt)PaginatedListc                  T   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eef	 	 	 	 	 	 	 	 	 	 	 ddZddZddZddZy) Projectz
    This class represents Projects.

    The reference can be found here
    https://docs.github.com/en/rest/reference/projects

    c                "   t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _        t         | _	        t         | _
        t         | _        t         | _        t         | _        y N)r	   _body_columns_url_created_at_creator	_html_url_id_name_node_id_number
_owner_url_state_updated_at_urlselfs    .lib/python3.12/site-packages/github/Project.py_initAttributeszProject._initAttributesE   s`    %+
,206?E)/#)%+
(.'-*0&,06$*	    c                P    | j                  d| j                  j                  i      S )Nname)get__repr__r   valuer   s    r   __repr__zProject.__repr__T   s"    )9)9 :;;r!   c                d    | j                  | j                         | j                  j                  S r   )_completeIfNotSetr   r%   r   s    r   bodyzProject.bodyW   $    tzz*zzr!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   columns_urlzProject.columns_url\   s(    t001  &&&r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   
created_atzProject.created_ata   (    t//0%%%r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   creatorzProject.creatorf   $    t}}-}}"""r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   html_urlzProject.html_urlk   s$    t~~.~~###r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   idz
Project.idp   s"    txx(xx~~r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   r#   zProject.nameu   r*   r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   node_idzProject.node_idz   r2   r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   numberzProject.number   s$    t||,||!!!r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   	owner_urlzProject.owner_url   s$    t/$$$r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   statezProject.state   s$    t{{+{{   r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   
updated_atzProject.updated_at   r/   r!   c                d    | j                  | j                         | j                  j                  S r   )r(   r   r%   r   s    r   urlzProject.url   s"    tyy)yyr!   c                z    | j                   j                  d| j                  dt        j                  i      \  }}y)z
        :calls: `DELETE /projects/{project_id} <https://docs.github.com/en/rest/reference/projects#delete-a-project>`_
        DELETEAccept)headersN)
_requesterrequestJsonAndCheckrC   r   mediaTypeProjectsPreview)r   rG   datas      r   deletezProject.delete   s7     ;;dhh63R3R(S < 
r!   c                
   |t         u s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         u st        |t              sJ |       t        j                  |||||d      }| j
                  j                  d| j                  |dt        j                  i      \  }}| j                  |       y)z
        :calls: `PATCH /projects/{project_id} <https://docs.github.com/en/rest/reference/projects#update-a-project>`_
        )r#   r)   r?   organization_permissionprivatePATCHrF   )inputrG   N)r	   
isinstancestrboolremove_unset_itemsrH   rI   rC   r   rJ   _useAttributes)	r   r#   r)   r?   rN   rO   patch_parametersrG   rK   s	            r   editzProject.edit   s     v~D#!6<<6v~D#!6<<6*UC"8?%?8&&0J?VX[4\u^uu\& Jw$=FwF=!44+B"
 ;;HH"v>>?	 < 
 	D!r!   c                    t        t        j                  j                  | j                  | j                  ddt
        j                  i      S )z
        :calls: `GET /projects/{project_id}/columns <https://docs.github.com/en/rest/reference/projects#list-project-columns>`_
        NrF   )r   githubProjectColumnrH   r,   r   rJ   r   s    r   get_columnszProject.get_columns   sA    
   ..OOv667
 	
r!   c                   t        |t              sJ |       d|i}dt        j                  i}| j                  j                  d| j                   d||      \  }}t        j                  j                  | j                  ||d      S )z
        calls: `POST /projects/{project_id}/columns <https://docs.github.com/en/rest/reference/projects#create-a-project-column>`_
        r#   rF   POSTz/columns)rG   rQ   T)	completed)	rR   rS   r   rJ   rH   rI   rC   rZ   r[   )r   r#   post_parametersimport_headerrG   rK   s         r   create_columnzProject.create_column   s     $$*d*$!4.!6#B#BC;;txxj)= < 
 ##11$//7D\`1aar!   c                *   d|v r| j                  |d         | _        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         | _        y y )Nr)   r,   r.   r1   r4   r6   r#   r9   r;   r=   r?   rA   rC   )_makeStringAttributer   r   _makeDatetimeAttributer   _makeClassAttributerZ   	NamedUserr   r   _makeIntAttributer   r   r   r   r   r   r   r   )r   
attributess     r   rV   zProject._useAttributes   s   Z22:f3EFDJJ& $ 9 9*]:S TD:%#:::l;STD
" 44V5E5E5O5OQ[\eQfgDM#!66z*7MNDN:--j.>?DHZ22:f3EFDJ
" 55j6KLDMz!11*X2FGDL*$"77
;8OPDOj 33Jw4GHDK:%#:::l;STDJ11*U2CDDI r!   N)returnNone)rj   rS   )rj   r   )rj   zgithub.NamedUser.NamedUser)rj   int)r#   Opt[str]r)   rm   r?   rm   rN   rm   rO   z	Opt[bool]rj   rk   )rj   z1PaginatedList[github.ProjectColumn.ProjectColumn])r#   rS   rj   z"github.ProjectColumn.ProjectColumn)ri   zdict[str, Any]rj   rk   )__name__
__module____qualname____doc__r    r&   propertyr)   r,   r.   r1   r4   r6   r#   r9   r;   r=   r?   rA   rC   rL   r	   rX   r\   rb   rV    r!   r   r   r   <   s|   +<     ' ' & & # # $ $       # # " " % % ! ! & &  
   ,2# " "  " 	 "
 "* "  " 
 "D

bEr!   r   )
__future__r   r   typingr   github.GithubObjectrZ   github.NamedUsergithub.ProjectColumnr   r   r   r	   r
   github.PaginatedListr   r   rs   r!   r   <module>rz      s7   ^ #       O O .yE% yEr!   