
    #Ii*|                        S SK r S SKrS SKrS SKrS SKrS SKrS SKr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JrJrJr  S SKrS SKrS SKJr  S SKJr  S SKJr  \(       a  SSKJr  SSK J r   SSK!J!r!  SS	K"J"r"  \" S
5      r#Sr$ " S S5      r% " S S5      r& " S S5      r' " S S5      r( " S S\\#   5      r)g)    N)IOBase)TYPE_CHECKINGAnyCallableDictGeneric	ItemsViewListOptionalTupleTypeTypeVarUnion)Retry   )AppAuthentication)Auth)GithubObject)InstallationAuthorizationT   c                   \    \ rS rSrS\R
                  4S jrS\\\4   4S jr	S\4S jr
Srg)	RequestsResponsea   rc                 j    UR                   U l        UR                  U l        UR                  U l        g N)status_codestatusheaderstext)selfr   s     6/venv/lib/python3.13/site-packages/github/Requester.py__init__RequestsResponse.__init__c   s#    mmyyFF	    returnc                 6    U R                   R                  5       $ r   )r    itemsr"   s    r#   
getheadersRequestsResponse.getheadersh   s    ||!!##r&   c                     U R                   $ r   )r!   r*   s    r#   readRequestsResponse.readk   s    yyr&   )r    r   r!   N)__name__
__module____qualname____firstlineno__requestsResponser$   r	   strr+   r.   __static_attributes__ r&   r#   r   r   a   s5    (++ 
$Ic3h/ $c r&   r   c                       \ rS rSr% \\\4   \S'        SS\\   S\	S\\   S\\\\4      S\\   S\
4S	 jjrS
\S\S\\\\R                  4      S\\\4   4S jrS\4S jrS rSrg)HTTPSRequestsConnectionClasso   retryNportstricttimeout	pool_sizekwargsc                     U(       a  UOSU l         Xl        SU l        X@l        UR	                  SS5      U l        [        R                  " 5       U l        Uc   [        R                  R                  U l        OXPl        Uc   [        R                  R                  U l        OX`l        [        R                  R                  U R                  U R                  U R                  S9U l        U R                  R!                  SU R                  5        g )Ni  httpsverifyTmax_retriespool_connectionspool_maxsizezhttps://r=   hostprotocolr?   getrD   r4   SessionsessionadaptersDEFAULT_RETRIESr<   DEFAULT_POOLSIZEr@   HTTPAdapteradaptermountr"   rJ   r=   r>   r?   r<   r@   rA   s           r#   r$   %HTTPSRequestsConnectionClass.__init__s   s     !Dc		jj40'')=!**::DJJ%..??DN&N((44

!^^ 5 

 	:t||4r&   verburlinputr    c                 4    Xl         X l        X0l        X@l        g r   rW   rX   rY   r    r"   rW   rX   rY   r    s        r#   request$HTTPSRequestsConnectionClass.request   s     	
r&   r'   c           	      B   [        U R                  U R                  R                  5       5      nU R                   SU R
                   SU R                   U R                   3nU" UU R                  U R                  U R                  U R                  SS9n[        U5      $ N://:F)r    datar?   rD   allow_redirectsgetattrrN   rW   lowerrK   rJ   r=   rX   r    rY   r?   rD   r   r"   rW   rX   r   s       r#   getresponse(HTTPSRequestsConnectionClass.getresponse       t||TYY__%67s499+Qtyyk$((DLLLL;;!
  ""r&   c                     g r   r8   r*   s    r#   close"HTTPSRequestsConnectionClass.close       r&   rS   r    rJ   rY   r@   r=   rK   r<   rN   r?   rX   rW   rD   NFNNN)r0   r1   r2   r3   r   intr   __annotations__r   boolr   r$   r6   ioBufferedReaderr   r]   r   ri   rm   r7   r8   r&   r#   r:   r:   o   s    e #!%-1#' 5 sm 5 	 5
 # 5 c5j)* 5 C= 5  5D

 
 c2#4#4456	

 c3h
#- #r&   r:   c                       \ rS rSr     SS\S\\   S\S\\   S\\\\	4      S\\   S	\
4S
 jjrS\S\SSS\\\4   4S jrS\4S jrSS jrSrg)HTTPRequestsConnectionClass   NrJ   r=   r>   r?   r<   r@   rA   c                     U(       a  UOSU l         Xl        SU l        X@l        UR	                  SS5      U l        [        R                  " 5       U l        Uc   [        R                  R                  U l        OXPl        Uc   [        R                  R                  U l        OX`l        [        R                  R                  U R                  U R                  U R                  S9U l        U R                  R!                  SU R                  5        g )NP   httprD   TrE   zhttp://rI   rU   s           r#   r$   $HTTPRequestsConnectionClass.__init__   s     !Db		jj40'')=!**::DJJ%..??DN&N((44

!^^ 5 

 	9dll3r&   rW   rX   rY   r    c                 4    Xl         X l        X0l        X@l        g r   r[   r\   s        r#   r]   #HTTPRequestsConnectionClass.request   s    	
r&   r'   c           	      B   [        U R                  U R                  R                  5       5      nU R                   SU R
                   SU R                   U R                   3nU" UU R                  U R                  U R                  U R                  SS9n[        U5      $ r`   re   rh   s       r#   ri   'HTTPRequestsConnectionClass.getresponse   rk   r&   c                     g r   r8   r*   s    r#   rm   !HTTPRequestsConnectionClass.close   ro   r&   rp   rq   r'   N)r0   r1   r2   r3   r6   r   rr   rt   r   r   r   r$   r   r]   r   ri   rm   r7   r8   r&   r#   rx   rx      s    
 #!%-1#' 4 4 sm 4 	 4
 # 4 c5j)* 4 C= 4  4DC c $ c3h #- #r&   rx   c                      \ rS rSr% \S   \S'   \S   \S'   \r\r	Sr
SrSr\\   \S'   \S	\\   S
\\   4S j5       r\SPS j5       r\S 5       r\S 5       r\S\SS4S j5       r\S\SS4S j5       rSrSrSrSr\\   \S'   S\\\4   SS4S jrS\ S\\\!\\ 4   4   S\4S jr"SQS jr#S r$\ \S '   \!\\   \\   4   \S!'   \\S"'   \\   \S#'   S$\S%   S&\S'\ S(\S)\ S*\!\\4   S+\\!\ \%4      S,\\    4S- jr&\'S. 5       r(\'S\4S/ j5       r)\'S\S%   4S0 j5       r*S$\S%   SS 4S1 jr+   SRS2\S3\S4\\\\4      S5\\\\4      S6\\   S\,\\\4   \4   4S7 jjr-   SRS2\S3\S4\\\\4      S5\\\\4      S6\\\\4      S\,\\\4   \\\\4      4   4S8 jjr.    SSS2\S3\S4\\\\4      S5\\\\4      S6\\   S9\\!\\4      S\,\\\4   \\\4   4   4S: jjr/S;\ S<\\\4   S=\S\,\\\4   \4   4S> jr0S3\S\\!\\4      4S? jr1S;\ S5\\\4   S=\\\4   S\4S@ jr2S\S\4SA jr3    SSS2\S3\S4\\\\4      S5\\\\4      S6\\   S9\\!\\4      S\,\ \\\4   \4   4SB jjr4    SSS2\S3\S4\\\\4      S5\\\\4      S6\\\\4      S9\\!\\4      S\,\ \\\4   \4   4SC jjr5    SSS2\S3\S4\\\\4      S5\\\\4      S6\\   S9\\!\\4      S\,\ \\\4   \4   4SD jjr6 STSE jr7S9\\!\\4      S2\S3\S4\\\\4      SF\\\\4      S6\\8   SG\\8/\,\\4   4   S\,\ \\\4   \4   4SH jr9S9\\!\\4      S2\S3\SF\\\4   S6\\   S\,\ \\\4   \4   4SI jr:S3\S\4SJ jr;S3\S4\\\4   4SK jr<S\!\\4   4SL jr=\'S\>R~                  4SM j5       r@S2\S3\SF\\\4   S6\\   S;\\    S<\\\4   S=\\   SS4SN jrASOrBg)U	Requester   r   &_Requester__installation_authorizationr   _Requester__app_authNT_frameBufferhttpConnectionClasshttpsConnectionClassc                 *    SU l         Xl        X l        g )NF)_Requester__persist_Requester__httpConnectionClass _Requester__httpsConnectionClass)clsr   r   s      r#   injectConnectionClasses!Requester.injectConnectionClasses   s     $7!%9"r&   r'   c                 >    SU l         [        U l        [        U l        g )NT)r   rx   r   r:   r   r   s    r#   resetConnectionClasses Requester.resetConnectionClasses  s    $?!%A"r&   c                     Xl         g r   _Requester__logger)r   loggers     r#   injectLoggerRequester.injectLogger	  s    r&   c                     S U l         g r   r   r   s    r#   resetLoggerRequester.resetLogger  s	    r&   flagc                     Xl         g r   )
DEBUG_FLAG)r   r   s     r#   setDebugFlagRequester.setDebugFlag  s    r&   	onCheckMec                     Xl         g r   )ON_CHECK_ME)r   r   s     r#   setOnCheckMeRequester.setOnCheckMe  s    #r&   Fi   DEBUG_FRAMEr   requestHeaderc                     U R                   (       ak  USSS/nU R                  U R                  S-
  :  a  U R                  R	                  U5        OX R                  S'   [        U R                  5      S-
  U l        gg)z
Initialize a debug frame with requestHeader
Frame count is updated and will be attached to respond header
The structure of a frame: [requestHeader, statusCode, responseHeader, raw_data]
Some of them may be None
Nr   r   )r   _frameCountDEBUG_FRAME_BUFFER_SIZEr   appendlen)r"   r   	new_frames      r#   NEW_DEBUG_FRAMERequester.NEW_DEBUG_FRAME#  sq     ??&dD9I  4#?#?!#CC!!((3'0!!!$"4#4#459D r&   
statusCoderesponseHeaderrc   c                     U R                   (       a8  UUU/U R                  U R                     SS& U R                  X R                  '   gg)z[
Update current frame with response
Current frame index will be attached to responseHeader
r      N)r   r   r   DEBUG_HEADER_KEY)r"   r   r   rc   s       r#   DEBUG_ON_RESPONSERequester.DEBUG_ON_RESPONSE5  sN     ??8Dd../!4
 594D4DN001 r&   c                     U R                   (       ad  U R                  bV  S nU R                  UR                  ;   a(  UR                  U R                     nU R                  U   nU R                  X5        g g g r   )r   r   r   _headersr   )r"   objframeframe_indexs       r#   check_meRequester.check_meD  sd    OO 0 0 <E$$4!ll4+@+@A))+6S( !=Or&   c                      SU l         / U l        g )Nr   )r   r   r*   s    r#   _initializeDebugFeature!Requester._initializeDebugFeatureN  s    r&   r   _Requester__connectionClass_Requester__hostname_Requester__authorizationHeaderauthr   base_urlr?   
user_agentper_pagerD   r<   r@   c	                    U R                  5         Xl        X l        [        R                  R                  U5      n	U	R                  U l        U	R                  U l	        U	R                  U l        X0l        Xpl        Xl        U	R                  U l        U	R                  S:X  a  U R"                  U l        O)U	R                  S:X  a  U R&                  U l        O S5       eSU l        SU l        SU l        XPl        S U l        Uc   S5       eX@l        X`l        S U l        [9        U R                  [:        5      (       a  U R                  R=                  U 5        g g )NrC   r|   zUnknown URL scheme)r   r   Tz|github now requires a user-agent. See https://docs.github.com/en/rest/overview/resources-in-the-rest-api#user-agent-required)r   _Requester__auth_Requester__base_urlurllibparseurlparsehostnamer   r=   _Requester__portpath_Requester__prefix_Requester__timeout_Requester__retry_Requester__pool_sizescheme_Requester__schemer   r   r   rate_limitingrate_limiting_resettimeFIX_REPO_GET_GIT_REFr   oauth_scopes_Requester__userAgent_Requester__verifyr   
isinstanceWithRequesterwithRequester)
r"   r   r   r?   r   r   rD   r<   r@   os
             r#   r$   Requester.__init__\  s&    	$$&"LL!!(+**ff $88w%)%@%@D"XX%)%?%?D"...5%'($$(!  % 	
i	
% &,0) dkk=11KK%%d+ 2r&   c                     [        U R                  U R                  U R                  U R                  U R
                  U R                  U R                  U R                  S9$ )z
Returns arguments required to recreate this Requester with Requester.__init__, as well as
with MainClass.__init__ and GithubIntegration.__init__.
:return:
)r   r   r?   r   r   rD   r<   r@   )	dictr   r   r   r   r   r   r   r   r*   s    r#   rA   Requester.kwargs  sM     __NN'']]==,,&&	
 		
r&   c                     U R                   $ r   )r   r*   s    r#   r   Requester.base_url  s    r&   c                     U R                   $ r   )r   r*   s    r#   r   Requester.auth  s    {{r&   c                 N    U R                   nUR                  US9  [        S0 UD6$ )z
Create a new requester instance with identical configuration but the given authentication method.
:param auth: authentication method
:return: new Requester implementation
)r   r8   )rA   updater   )r"   r   rA   s      r#   withAuthRequester.withAuth  s)     4 "6""r&   rW   rX   
parametersr    rY   c                 `    U R                   " U R                  XX4XPR                  U5      5      6 $ r   )_Requester__checkrequestJson_Requester__customConnectionr"   rW   rX   r   r    rY   s         r#   requestJsonAndCheckRequester.requestJsonAndCheck  s5     ||:7N7Ns7S
 	
r&   c                 `    U R                   " U R                  XX4XPR                  U5      5      6 $ r   )r   requestMultipartr   r   s         r#   requestMultipartAndCheck"Requester.requestMultipartAndCheck  s5     ||"":7N7Ns7S
 	
r&   cnxc                 `    U R                   " U R                  XX4XPR                  U5      5      6 $ r   )r   requestBlobr   )r"   rW   rX   r   r    rY   r   s          r#   requestBlobAndCheckRequester.requestBlobAndCheck  s5     ||:7N7Ns7S
 	
r&   r   responseHeadersoutputc                 Z    U R                  U5      nUS:  a  U R                  XU5      eX$4$ )Ni  )_Requester__structuredFromJson_Requester__createException)r"   r   r  r  rc   s        r#   __checkRequester.__check  s7     ((0S=(($GG$$r&   c                    S nUR                  S5      (       Gd4  [        R                  R                  U5      nUR                  U R
                  :w  de  UR                  (       a  UR                  U R                  :w  d:  UR                  U R                  :w  a  UR                  S:X  a  U R                  S:X  d  UR                  S:X  a<  U R                  UR                  UR                  U R                  U R                  S9nU$ UR                  S:X  a:  U R                  UR                  UR                  U R                  U R                  S9nU$ )N/rC   r|   )r<   r@   )
startswithr   r   r   r   r   r=   r   r   r   r   r   r   r   )r"   rX   r   r   s       r#   __customConnectionRequester.__customConnection  s   
  	 ~~c""%%c*A

doo-FFqvv4HH-XX0T]]f5L 88v%44

"ll"&"2"2	 5 C 
 XX(55

"ll"&"2"2	 6 C 
r&   c                    Ub   UR                  SS5      R                  5       OSn[        R                  nUS:X  a  US:X  a  [        R                  nOUS:X  aR  [        R
                  U;   a>  [        R                  " SU[        R
                     5      (       a  [        R                  nOUS:X  a'  UR                  S5      (       a  [        R                  nO_US:X  a=  UR                  S5      (       d  UR                  S	5      (       a  [        R                  nOUS
:X  a  US:X  a  [        R                  nU" XU5      $ )Nmessage i  zbad credentialsz.*required.*i  z$missing or invalid user agent stringzapi rate limit exceededz/please wait a few minutes before you try again.i  z	not found)rL   rg   GithubExceptionBadCredentialsExceptionConsts	headerOTPrematchTwoFactorExceptionr  BadUserAgentExceptionendswithRateLimitExceededExceptionUnknownObjectException)r"   r   r    r  r  r   s         r#   __createExceptionRequester.__createException
  s
    8>7I&**Y+113r--S=W(99!99CcM  G+'&2B2B*CDD!44Cs]w112 
  
 "77Cs]899 QRR!<<Cs]w+5!88C67++r&   c                    [        U5      S:X  a  g [        U[        5      (       a  UR                  S5      n [        R
                  " U5      $ ! [         a4    UR                  S5      (       d  UR                  S5      (       a  e SU0s $ f = f)Nr   zutf-8{[rc   )r   r   bytesdecodejsonloads
ValueErrorr  )r"   rc   s     r#   __structuredFromJsonRequester.__structuredFromJson)  sx    t9>$&&{{7+&zz$'' &??3''4??3+?+?~%&s   A ;BBc           	      0    S nU R                  XaX#XEU5      $ )Nc                 2    S[         R                  " U 5      4$ )Nzapplication/json)r%  dumps)rY   s    r#   encode%Requester.requestJson.<locals>.encodeA  s    %tzz%'888r&   _Requester__requestEncoder"   rW   rX   r   r    rY   r   r-  s           r#   r   Requester.requestJson6  s!    	9 ##CsPVWWr&   c           	      0    S nU R                  XaX#XEU5      $ )Nc                     SnSnSnU R                  5        H%  u  pEUSU U 3-  nUSU SU 3-  nX2-  nX5U-   -  nM'     USU SU 3-  nSU 3U4$ )Nz(----------------------------3c3ba8b523b2z
r  z--z&Content-Disposition: form-data; name=""zmultipart/form-data; boundary=)r)   )rY   boundaryeolencoded_inputnamevalues         r#   r-  *Requester.requestMultipart.<locals>.encodeQ  s    AHCM${{}2hZu!55#I$qQTPU!VV$,	  -
 r(2cU33M3H:>MMr&   r/  r1  s           r#   r   Requester.requestMultipartF  s"    	N ##CsPVWWr&   c           	         ^ Tc  0 mS[         4U4S jjnU(       a+  [        [        R                  R                  U5      5      TS'   U R	                  XaX#TXW5      $ )N
local_pathc                    > ST;   a  TS   nO1[         R                  " U 5      nUS   b  US   O[        R                  n[	        U S5      nX4$ )NContent-Typer   rb)	mimetypes
guess_typer  defaultMediaTypeopen)r>  	mime_typeguessed_typefr    s       r#   r-  %Requester.requestBlob.<locals>.encoden  s^    (#N3	(33J? $A2 !O00 
 Z&A<r&   zContent-Length)r6   osr   getsizer0  r1  s       `   r#   r  Requester.requestBlob`  sT     ?G	 s 	  (+BGGOOE,B(CG$%##CsWWr&   c                    ^^ UU4S jnU(       d  U R                  U5      nU R                  " U R                  XaX#TTU5      6 $ )Nc                    > TS   T4$ )Nr@  r8   )_	file_liker    s    r#   r-  3Requester.requestMemoryBlobAndCheck.<locals>.encode  s    >*I55r&   )r   r   r0  )r"   rW   rX   r   r    rP  r   r-  s       ``  r#   requestMemoryBlobAndCheck#Requester.requestMemoryBlobAndCheck  sG    	6 ))#.C||!!3GY
 	
r&   requestHeadersr-  c                    US;   d   eUc  0 nUc  0 nU R                   b2  U R                   R                   SU R                   R                   3US'   U R                  US'   U R	                  U5      nU R                  X45      nS nUb  U" U5      u  US'   nU R                  U5        U R                  XX5U5      u  pn[        R                  U
;   ac  [        R                  U
;   aO  [        [        U
[        R                     5      5      [        [        U
[        R                     5      5      4U l        [        R                  U
;   a*  [        [        U
[        R                     5      5      U l        [        R                   U
;   a'  U
[        R                      R#                  S5      U l        U R'                  XU5        XU4$ )N)HEADGETPOSTPATCHPUTDELETE Authorizationz
User-Agentr@  z, )r   
token_typetokenr   _Requester__makeAbsoluteUrl_Requester__addParametersToUrlr   _Requester__requestRawr  headerRateRemainingheaderRateLimitrr   floatr   headerRateResetr   headerOAuthScopessplitr   r   )r"   r   rW   rX   r   rT  rY   r-  r8  r   r  r  s               r#   __requestEncodeRequester.__requestEncode  s    HHHHJ!N;;" ;;))*!DKK,=,=+>?  (,'7'7|$$$S)''8<B5M9N>*M^,*.*;*;sM+
'
 &&/9&&/9 E/&*D*DEFGE/&*@*@ABC"D
 !!_4+.of&<&<=>,D( ##6 /0H0H I O OPT UDv?..r&   c           	      t   UnUc  U R                  5       nUR                  X#XT5        UR                  5       nUR                  nUR	                  5        V	V
s0 s H  u  pU	R                  5       U
_M     nn	n
UR                  5       nUR                  5         U(       a%  [        U[        5      (       a  UR                  5         U R                  X#XEXU5        US:X  aC  US:X  d  US:X  a7  [        R                  " [        R                  5        U R                  XbX4U5      $ US:X  Ga  SU;   Ga  US   n[         R"                  R%                  U5      nUR&                  U R(                  :w  a&  [+        SU R(                   SUR&                   S35      eUR,                  U R.                  :w  a&  [+        S	U R.                   S
UR,                   S35      eUR0                  U:X  aX  U R2                  b  S[5        U R2                  5      -   OSnU R(                   SU R.                   U U 3n[+        SU SU S35      eU R6                  R9                  [:        R<                  5      (       a+  U R6                  R?                  SU S
UR0                   35        U R                  XbUR0                  XE5      $ XU4$ s  sn
n	f )N   rW  rV  i-  locationzGithub server redirected from z protocol to zJ, please correct your Github server URL via base_url: Github(base_url=...)z#Github server redirected from host z to rb   r  ra   z
Requested z but server redirected to zS, you may need to correct your Github server URL via base_url: Github(base_url=...)z)Following Github server redirection from ) _Requester__createConnectionr]   ri   r   r+   rg   r.   rm   r   r   _Requester__logtimesleepr  PROCESSING_202_WAIT_TIMErb  r   r   r   r   r   RuntimeErrorr   r   r   r   r6   _loggerisEnabledForloggingINFOinfo)r"   r   rW   rX   rT  rY   original_cnxresponser   kvr  r  rm  r   r=   requested_locations                    r#   __requestRawRequester.__requestRaw  sz    ;))+CDu5??$4<4G4G4IJ4IDA1779a<4IJ		%((

4nVfUS=EMTV^JJv667$$\eTTS=Z?:&z2H%%h/Axx4==("4T]]O=QRQYQYPZ [_ `  zzT__,"9$//9J$qzzl [_ `  vv}151HsS--b(,c$//9J4&QTPU%V"" !3 44Nxj Y9 : 
 ||((66!!?uDQ $$\WW..W Ks   J4c                    UR                  S5      (       a  U R                   U 3nU$ [        R                  R	                  U5      nUR
                  U R                  SSS4;   d   UR
                  5       eUR                  R                  U R                  S45      (       d   eUR                  U R                  :X  d   eUR                  nUR                  S:w  a  USUR                   3-  nU$ )Nr  zuploads.github.comzstatus.github.comz
github.comz/api/r  ?)r  r   r   r   r   r   r   r   r=   r   query)r"   rX   r   s      r#   __makeAbsoluteUrlRequester.__makeAbsoluteUrl  s     >>#]]OC5)C 
 %%c*A::$#	"  
 zz  66$$dmmW%=>>>>66T[[(((&&Cww"}177)}$
r&   c                 l    [        U5      S:X  a  U$ U S[        R                  R                  U5       3$ )Nr   r  )r   r   r   	urlencode)r"   rX   r   s      r#   __addParametersToUrlRequester.__addParametersToUrl  s6    
 z?aJU!FLL22:>?@@r&   c           	         U R                   (       a  U R                  b  U R                  $ U R                  U R                  U R                  U R
                  U R                  U R                  U R                  S9U l        U R                  $ )N)r<   r@   r?   rD   )	r   _Requester__connectionr   r   r   r   r   r   r   r*   s    r#   __createConnectionRequester.__createConnection!  st     >>d//;$$$ 22OOKK,,&&NN== 3 
    r&   c                 r    U R                   c  [        R                  " [        5      U l         U R                   $ r   )r   rv  	getLoggerr0   r*   s    r#   rt  Requester._logger2  s(    == #--h7DM}}r&   c                    U R                   R                  [        R                  5      (       a  UR	                  5       nSU;   ab  US   R                  S5      (       a  SUS'   OCUS   R                  S5      (       a  SUS'   O$US   R                  S5      (       a  SUS'   OSUS'   U R                   R                  S	UU R                  U R                  UUUUUU5
        g g )
Nr]  Basicz"Basic (login and password removed)r_  ztoken (oauth token removed)BearerzBearer (jwt removed)z(unknown auth removed)z%s %s://%s%s %s %s ==> %i %s %s)	rt  ru  rv  DEBUGcopyr  debugr   r   )	r"   rW   rX   rT  rY   r   r  r  headersForRequests	            r#   __logRequester.__log8  s     <<$$W]]33 . 3 3 5.0!/2==gFF = &' $O4??HH9V%o6#O4??II9O%o6 1 &' LL1! 4r&   )r   __auth
__base_url__connection__connectionClass
__hostname__installation_authorization__logger__pool_size__port__prefix__retry__scheme	__timeout__userAgent__verifyr   r   r   r   r   r   r   )r   r   )NNN)NNNNr   )Cr0   r1   r2   r3   r   rs   rx   r   r:   r   r  r   r   r
   r   classmethodr   r   r   r   r   rt   r   r   r   r   r   r   r   r   r6   r   rr   r   r   r   r   r   r$   propertyrA   r   r   r   r   r   r   r  r   r   r  r  r   r   r  rR  r   r0  rb  r`  ra  rn  rv  Loggerrt  ro  r7   r8   r&   r#   r   r      s   "*+F"GG,--79LIHs):!"=>: ##?@: : B B
    
     $X $$ $ $ J"$&*K(#*:T#s(^ : :$EE/3CsCx4H/IEQTE) ()40L+MM  O#C=(0,v0, 0, 	0,
 0, 0, dCi 0, c5j)*0, C=0,d 
 
" #   hv&  #Xf- #+ # 04,0#

 
 T#s(^,	

 $sCx.)
 }
 
tCH~s"	#
$ 04,0*.

 
 T#s(^,	

 $sCx.)
 S#X'
 
tCH~xS#X77	8
$ 04,0# 

 
 T#s(^,	

 $sCx.)
 }
 -/KKL

 
tCH~tCH~-	.
"	%	% c3h	% 		%
 
tCH~s"	#	%	%35QQR	S@,, c3h, S#X	,
 
,>& & &" 04,0# XX X T#s(^,	X
 $sCx.)X }X -/KKL
X 
sDcNC'	(X( 04,0*. XX X T#s(^,	X
 $sCx.)X S#X'X -/KKL
X 
sDcNC'	(X< 04,0# XX X T#s(^,	X
 $sCx.)X }X -/KKL
X 
sDcNC'	(X@ >B
7/e79UUVW7/ 7/ 	7/
 T#s(^,7/ !c3h07/ {7/ !eCHo-.7/ 
sDcNC'	(7/r:/e79UUVW:/ :/ 	:/
 S#X:/ }:/ 
sDcNC'	(:/xS S (AA cNA!	*,HH	I!"   
$$ $ S#X	$
 }$ $ c3h$ $ 
$r&   r   c                   T    \ rS rSr% Sr\\S'   S r\S\4S j5       r	S\SS4S	 jr
S
rg)r   i_  z-
Mixin class that allows to set a requester.
_WithRequester__requesterc                     S U l         g r   r  r*   s    r#   r$   WithRequester.__init__f  s
    04r&   r'   c                     U R                   $ r   r  r*   s    r#   	requesterWithRequester.requesteri  s    r&   r  zWithRequester[T]c                 J    [        U[        5      (       d   U5       eXl        U $ r   )r   r   r  )r"   r  s     r#   r   WithRequester.withRequesterm  s%    )Y//::/$r&   )__requesterN)r0   r1   r2   r3   __doc__r   rs   r$   r  r  r   r7   r8   r&   r#   r   r   _  sC     5  9    y 5G r&   r   )*ru   r%  rv  rB  rJ  r  rp  r   urllib.parser   typingr   r   r   r   r   r	   r
   r   r   r   r   r   r4   requests.adaptersurllib3r   github.Constsr  github.GithubExceptionr  r   r   r   r   r   &ACCESS_TOKEN_REFRESH_THRESHOLD_SECONDSr   r:   rx   r   r   r8   r&   r#   <module>r     s   j 
    	 	            04*DCL *, & @ @F8 8vo	 o	dGAJ r&   