
    #Ii<                     h   S SK r S SKrS SKJr  S SKJrJrJrJrJrJ	r	J
r
JrJr  SSKJr  SSKJrJr  \(       a  SSKJr  \R&                  " S5      r " S	 S
\\   5      r " S S\5      r\" 5       r\\\4   r " S S\\\   5      r " S S\5      r " S S5      r " S S\5      r " S S\5      rg)    N)
itemgetter)	TYPE_CHECKINGAnyCallableDictGenericListOptionalTypeUnion   )Consts)BadAttributeExceptionIncompletableObject)	RequesterTc                   ,    \ rS rSr\S\4S j5       rSrg)	AttributeA   returnc                     [         eNNotImplementedErrorselfs    9/venv/lib/python3.13/site-packages/github/GithubObject.pyvalueAttribute.valueB   s    !!     N)__name__
__module____qualname____firstlineno__propertyr   r   __static_attributes__r!   r    r   r   r   A   s    "q " "r    r   c                   Z    \ rS rSrS r\S 5       r\S\\	\
4   S\\	\
4   4S j5       rSrg)	_NotSetTypeG   c                     g)NNotSetr!   r   s    r   __repr___NotSetType.__repr__H   s    r    c                     g r   r!   r   s    r   r   _NotSetType.valueK   s    r    datar   c                     U R                  5        VVs0 s H  u  p[        U[        5      (       a  M  X_M      snn$ s  snnf r   )items
isinstancer)   )r1   keyr   s      r   remove_unset_items_NotSetType.remove_unset_itemsO   s?     #jjl
*
e[1 CJ*
 	
 
s   ==r!   N)r"   r#   r$   r%   r-   r&   r   staticmethodr   strr   r6   r'   r!   r    r   r)   r)   G   sM       
c3h 
DcN 
 
r    r)   c                   :    \ rS rSrS\4S jr\S\4S j5       rSrg)_ValuedAttribute]   r   c                     Xl         g r   _valuer   r   s     r   __init___ValuedAttribute.__init__^   s    r    r   c                     U R                   $ r   r>   r   s    r   r   _ValuedAttribute.valuea   s    {{r    r>   N)	r"   r#   r$   r%   r   rA   r&   r   r'   r!   r    r   r;   r;   ]   s)    a  q  r    r;   c                   F    \ rS rSr S	S\S\S\\   4S jjr\S 5       r	Sr
g)
_BadAttributef   Nr   expectedType	exceptionc                 (    Xl         X l        X0l        g r   )_BadAttribute__value_BadAttribute__expectedType_BadAttribute__exception)r   r   rH   rI   s       r   rA   _BadAttribute.__init__g   s     *$r    c                 X    [        U R                  U R                  U R                  5      er   )r   rK   rL   rM   r   s    r   r   _BadAttribute.valuen   s!    #DLL$2E2EtGWGWXXr    )__exception__expectedType__valuer   )r"   r#   r$   r%   r   r
   	ExceptionrA   r&   r   r'   r!   r    r   rF   rF   f   s=    NR%%(+%8@8K% Y Yr    rF   c                      \ rS rSr% Sr Sr\\   \S'   \	S\
SS4S j5       rS	S
S\\\\\4   4   S\S\
4S jrS\\\\\4   4   S\SS4S jr\S\\\4   4S j5       r\S\\\\\4   4   4S j5       r\S\S\4S j5       r\S\S\\   S\\   4S j5       r\S\S\\   S\\   4S j5       r\S\S\\   S\\/\4   S\\   4S j5       r\S\\\\4      S\\   4S j5       r\S\\\\4      S\\   4S j5       r \S\\!   S\\!   4S j5       r"\S\\
   S\\
   4S j5       r#\S\\\4   S\\$   4S j5       r%\S\S\\   4S j5       r&\S\\\\4      S\4S  j5       r'S!\S\S\4S" jr(\S\\)\)\      \)\   \)\\\4      4   S\4S# j5       r*\S\)\   S\4S$ j5       r+\S\)\\\\\)\\\\\)\   4   4      4   4      S\4S% j5       r,\S\)\)\      S\4S& j5       r-S!\S\S\\.\/4   4S' jr0S!\S(   S\\\\\\\\\S4   4   \\\\\4   4   4   4   S\\.\/4   4S) jr1\S\\   4S* j5       r2\S\\   4S+ j5       r3S,\\\4   S\4S- jr4S. r5S/ r6S0 r7S1r8g)2GithubObjects   zF
Base class for all classes representing objects returned by the API.
F_urlflagr   Nc                     Xl         g r   )CHECK_AFTER_INIT_FLAG)clsrY   s     r   setCheckAfterInitFlag"GithubObject.setCheckAfterInitFlag~   s    $(!r    	requesterr   headers
attributes	completedc                     Xl         U R                  5         U R                  X#5        U R                  (       a  UR	                  U 5        g g r   )
_requester_initAttributes_storeAndUseAttributesr[   check_me)r   r_   r`   ra   rb   s        r   rA   GithubObject.__init__   sA     $##G8 %%t$ &r    c                 >    Xl         X l        U R                  U5        g r   )_headers_rawData_useAttributes)r   r`   ra   s      r   rf   #GithubObject._storeAndUseAttributes   s    
  "J'r    c                 :    U R                  5         U R                  $ z
:type: dict
)_completeIfNeededrk   r   s    r   raw_dataGithubObject.raw_data       
 	 }}r    c                 :    U R                  5         U R                  $ ro   )rp   rj   r   s    r   raw_headersGithubObject.raw_headers   rs   r    urlc                 H    SR                  U R                  S5      S S 5      $ )N/)joinsplit)rw   s    r   
_parentUrlGithubObject._parentUrl   s     xx		#s+,,r    r   typec                 T    U b  [        X5      (       a  [        U 5      $ [        X5      $ r   )r4   r;   rF   r   r   s     r   __makeSimpleAttribute"GithubObject.__makeSimpleAttribute   s'    =Ju33#E** --r    c                    ^ [        U [        5      (       a%  [        U4S jU  5       5      (       a  [        U 5      $ [	        U T/5      $ )Nc              3   <   >#    U  H  n[        UT5      v   M     g 7fr   )r4   ).0elementr   s     r   	<genexpr>9GithubObject.__makeSimpleListAttribute.<locals>.<genexpr>   s      +
5:'Jw%%Us   )r4   listallr;   rF   r   s    `r   __makeSimpleListAttribute&GithubObject.__makeSimpleListAttribute   sE    eT""s +
5:+
 (
 (
 $E** //r    	transformc                     U c  [        S 5      $ [        X5      (       a   [        U" U 5      5      $ [        X5      $ ! [         a  n[        XU5      s S nA$ S nAff = fr   )r;   r4   rT   rF   )r   r   r   es       r   __makeTransformedAttribute'GithubObject.__makeTransformedAttribute   s`     =#D))$$5'	%(899 !--  5$U!445s   < 
AAAAc                 6    [         R                  U [        5      $ r   )rV   "_GithubObject__makeSimpleAttributer9   r   s    r   _makeStringAttribute!GithubObject._makeStringAttribute       11%==r    c                 6    [         R                  U [        5      $ r   )rV   r   intr   s    r   _makeIntAttributeGithubObject._makeIntAttribute   r   r    c                 6    [         R                  U [        5      $ r   )rV   r   floatr   s    r   _makeFloatAttribute GithubObject._makeFloatAttribute   s    11%??r    c                 6    [         R                  U [        5      $ r   )rV   r   boolr   s    r   _makeBoolAttributeGithubObject._makeBoolAttribute       11%>>r    c                 6    [         R                  U [        5      $ r   )rV   r   dictr   s    r   _makeDictAttributeGithubObject._makeDictAttribute   r   r    c                 h    [         R                  U [        [        R                  R                  5      $ r   )rV   '_GithubObject__makeTransformedAttributer   datetimeutcfromtimestampr   s    r   _makeTimestampAttribute$GithubObject._makeTimestampAttribute   s(    663))::
 	
r    c                 >    S n[         R                  U [        U5      $ )Nc           
      |   [        U 5      S:X  a   [        R                  R                  U S5      $ [        U 5      S:  a_  [        R                  R                  U S S S5      U S   S:X  a  SOS[        R                  " [	        U S	S
 5      [	        U SS 5      S9-  -   $ [        R                  R                  U S5      $ )N   z%Y-%m-%dT%H:%M:%S.000Z      z%Y-%m-%dT%H:%M:%S-r   rz            )hoursminutesz%Y-%m-%dT%H:%M:%SZ)lenr   strptime	timedeltar   )ss    r   parseDatetime:GithubObject._makeDatetimeAttribute.<locals>.parseDatetime   s    A"  ((11/  Q2((11!CR&:MN2#A2&&S2b]C"RMRRS S S  ((11!5IJJr    )rV   r   r9   )r   r   s     r   _makeDatetimeAttribute#GithubObject._makeDatetimeAttribute   s    	K  66uc=QQr    klassc                 F   ^ ^ [         R                  U[        UU 4S j5      $ )Nc                 >   > T" TR                   TR                  U SS9$ )NFrb   )rd   rj   )r   r   r   s    r   <lambda>2GithubObject._makeClassAttribute.<locals>.<lambda>   s    %QVWr    )rV   r   r   )r   r   r   s   `` r   _makeClassAttribute GithubObject._makeClassAttribute   s    66W
 	
r    c                 6    [         R                  U [        5      $ r   )rV   &_GithubObject__makeSimpleListAttributer9   r   s    r   _makeListOfStringsAttribute(GithubObject._makeListOfStringsAttribute  s     55eSAAr    c                 6    [         R                  U [        5      $ r   )rV   r   r   r   s    r   _makeListOfIntsAttribute%GithubObject._makeListOfIntsAttribute  s    55eSAAr    c                 6    [         R                  U [        5      $ r   )rV   r   r   r   s    r   _makeListOfDictsAttribute&GithubObject._makeListOfDictsAttribute       55eTBBr    c                 6    [         R                  U [        5      $ r   )rV   r   r   r   s    r   !_makeListOfListOfStringsAttribute.GithubObject._makeListOfListOfStringsAttribute  r   r    c                     [        U[        5      (       aN  [        S U 5       5      (       a7  [        U Vs/ s H   nU" U R                  U R
                  USS9PM"     sn5      $ [        U[        /5      $ s  snf )Nc              3   B   #    U  H  n[        U[        5      v   M     g 7fr   )r4   r   )r   r   s     r   r   ;GithubObject._makeListOfClassesAttribute.<locals>.<genexpr>  s      +
5:'Jw%%Us   Fr   )r4   r   r   r;   rd   rj   rF   r   )r   r   r   r   s       r   _makeListOfClassesAttribute(GithubObject._makeListOfClassesAttribute  s     eT""s +
5:+
 (
 (
 $ $)#( $//4=='US#(  !//s   'A5NonCompletableGithubObjectc                 @   [        U[        5      (       an  [        S UR                  5        5       5      (       aI  [	        UR                  5        VVs0 s H"  u  p4X1" U R
                  U R                  USS9_M$     snn5      $ [        U[        [        05      $ s  snnf )Nc              3   t   #    U  H.  u  p[        U[        5      =(       a    [        U[        5      v   M0     g 7fr   )r4   r9   r   )r   r5   r   s      r   r   DGithubObject._makeDictOfStringsToClassesAttribute.<locals>.<genexpr>/  s/      +
 - sC >Z%>> -s   68Fr   )	r4   r   r   r3   r;   rd   rj   rF   r9   )r   r   r   r5   r   s        r   $_makeDictOfStringsToClassesAttribute1GithubObject._makeDictOfStringsToClassesAttribute'  s     eT""s +
 %+
 (
 (
 $ ).(5 twRWXX(5  !d44s   )B
c                 T    U R                   R                  [        R                  5      $ z
:type: str
)rj   getr   RES_ETAGr   s    r   etagGithubObject.etag<  s    
 }}  11r    c                 T    U R                   R                  [        R                  5      $ r   )rj   r   r   RES_LAST_MODIFIEDr   s    r   last_modifiedGithubObject.last_modifiedC  s    
 }}  !9!9::r    paramsc           
          S nSR                  U R                  R                  SR                  [	        U" U5      5      5      S9$ )z3
Converts the object to a nicely printable string.
c              3     #    [        U R                  5       5      n[        U[        S5      SS9 HO  u  p#[	        U[
        5      (       a  UR                  S5      n[	        U[        5      (       a  SU S3nU SU 3v   MQ     g 7f)Nr   T)r5   reversezutf-8"=)r   r3   sortedr   r4   bytesdecoder9   )r   r3   kvs       r   format_params/GithubObject.get__repr__.<locals>.format_paramsO  st     (Eu*Q-Fa'')Aa%%A3aA1QCj  Gs   BBz{class_name}({params})z, )
class_namer   )format	__class__r"   r{   r   )r   r   r   s      r   get__repr__GithubObject.get__repr__J  sD    
	! (..~~..99T-"789 / 
 	
r    c                     [        S5      e)Nz$BUG: Not Implemented _initAttributesr   r   s    r   re   GithubObject._initAttributes]  s    !"HIIr    c                     [        S5      e)Nz#BUG: Not Implemented _useAttributesr   )r   ra   s     r   rl   GithubObject._useAttributes`  s    !"GHHr    c                     [        S5      e)Nz&BUG: Not Implemented _completeIfNeededr   r   s    r   rp   GithubObject._completeIfNeededc  s    !"JKKr    )rj   rk   rd   )9r"   r#   r$   r%   __doc__r[   r   r9   __annotations__classmethodr   r]   r   r   r   r   rA   rf   r&   rq   ru   r8   r}   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r   r;   rF   r   r   r   r   r   re   rl   rp   r'   r!   r    r   rV   rV   s   s2    "
C.) )$ ) )%% c5c?*+% 	%
 % (CsCx01(?B(	( $sCx.   T#uS#X"67   - - - - .S .Q .IaL . . 0 0T!W 01 0 0 ..Q.,4aS#X,>.	1. . >HU38_$= >)C. > > >%S/!: >y~ > > @8E? @y7G @ @ ?(4. ?Yt_ ? ? ?$sCx. ?Yt_ ? ? 
s 
y~ 
 

 RhuS#X&? RI R R&
 
S 
Y 
 BT$s)_d3ieCHo1FFGB	B B
 BS	 Bi B B CDeCd3c49n8M3M.N)O$OPPQRC	C C
 CDIC	C C
00!$0	.	/05015 #tCsC~!667c5c?>R9SSTV
5 
.	/5* 2hsm 2 2 ;x} ; ;
$sCx. 
S 
&JILr    rV   c                       \ rS rSrSS jrSrg)r   ig  Nc                     g r   r!   r   s    r   rp   ,NonCompletableGithubObject._completeIfNeededh  s    r    r!   r   N)r"   r#   r$   r%   rp   r'   r!   r    r   r   r   g  s    r    r   c                      ^  \ rS rSrSSS\\\\\4   4   S\\\4   S\	4U 4S jjr
S\S	\	4S
 jrS rS\S	\	4S jrS\S	S4S jrSS jrS rSS\\\\4      S	\	4S jjrSrU =r$ )CompletableGithubObjectil  r_   r   r`   ra   rb   c                 2   > [         TU ]  XX45        X@l        g r   )superrA   #_CompletableGithubObject__completed)r   r_   r`   ra   rb   r   s        r   rA    CompletableGithubObject.__init__m  s     	ZC$r    otherr   c                     UR                   U R                   L =(       a-    UR                  R                  U R                  R                  :H  $ r   )r   rX   r   r   r  s     r   __eq__CompletableGithubObject.__eq__w  s1    $..0XUZZ5E5E5XXr    c                 @    [        U R                  R                  5      $ r   )hashrX   r   r   s    r   __hash__ CompletableGithubObject.__hash__z  s    DIIOO$$r    c                     X:X  + $ r   r!   r  s     r   __ne__CompletableGithubObject.__ne__}  s      r    r   Nc                 P    [        U[        5      (       a  U R                  5         g g r   )r4   r)   rp   r@   s     r   _completeIfNotSet)CompletableGithubObject._completeIfNotSet  s     e[))""$ *r    c                 H    U R                   (       d  U R                  5         g g r   )r  "_CompletableGithubObject__completer   s    r   rp   )CompletableGithubObject._completeIfNeeded  s    OO  r    c                     U R                   R                  c  [        SSS 5      eU R                  R	                  SU R                   R                  5      u  pU R                  X5        SU l        g )Ni  zReturned object contains no URLGETT)rX   r   r   rd   requestJsonAndCheckrf   r  )r   r`   r1   s      r   
__complete"CompletableGithubObject.__complete  sV    99??"%c+LdSS;;E499??S##G2r    additional_headersc                    [        5       nU R                  b  U R                  U[        R                  '   U R                  b  U R                  U[        R
                  '   Ub  UR                  U5        U R                  R                  SU R                  R                  US9u  p4nUS:X  a  gU R                  R                  X4U5      u  pgU R                  Xg5        SU l        g)zu
Check and update the object with conditional request
:rtype: Boolean value indicating whether the object is changed
r&  )r`   i0  FT)r   r   r   REQ_IF_NONE_MATCHr   REQ_IF_MODIFIED_SINCEupdaterd   requestJsonrX   r   _Requester__checkrf   r  )r   r*  conditionalRequestHeaderstatusresponseHeadersoutputr`   r1   s           r   r.  CompletableGithubObject.update  s    
 $(6 99 AE$V%=%=>)EIEWEW$V%A%AB)$++,>?*.//*E*E499??,D +F +
' S= OO==MG ''6#Dr    )__completedr  r   )r"   r#   r$   r%   r   r9   r   r   r   r   rA   r  r  r  r   r   rp   r#  r
   r.  r'   __classcell__)r   s   @r   r  r  l  s    %% c5c?*+% cN	%
 %YC YD Y%!C !D !%y %T % $sCx.)A T  r    r  )r   typingoperatorr   r   r   r   r   r   r	   r
   r   r    r   GithubExceptionr   r   r   TypeVarr   r   r)   r,   Optr;   rF   rV   r   r  r!   r    r   <module>r>     s   R   
 
 
  G$
NN3"
 "
) 
" 
A{Ny'!* 
YI 
YqL qLh 
;l ;r    