
    {iB1                        S r SSKJr  SSKJr  SSKJr  SSKJrJr  SSK	J
r
Jr  SSKJr  \(       a
  SS	KrSS
KJr   " S S5      rg	)zProvides the Objector class.    )annotations)datetime)loads)TYPE_CHECKINGAny   )ClientExceptionRedditAPIException)snake_case_keysN)
RedditBasec                  z    \ rS rSrSr\S
S j5       r\    SS j5       rSSS jjr    SS jr	    SS jr
S	rg)Objector   z1The objector builds :class:`.RedditBase` objects.c                8    U R                  U5      nU(       a  Ueg)z;Raise an error if the argument resolves to an error object.N)parse_error)clsdataerrors      G/home/james-whalen/.local/lib/python3.13/site-packages/praw/objector.pycheck_errorObjector.check_error   s     %K     c                    [        U[        5      (       a  gUR                  S0 5      R                  S5      nUc  g[        U5      S:  a  Sn[	        X15      e[        U5      $ )zConvert JSON response into an error object.

:param data: The dict to be converted.

:returns: An instance of :class:`.RedditAPIException`, or ``None`` if ``data``
    doesn't fit this model.

Njsonerrorsr   zsuccessful error response)
isinstancelistgetlenr	   r
   )r   r   r   msgs       r   r   Objector.parse_error   s_     dD!! &"%))(3>v;?-C!#,,!&))r   Nc                (    Uc  0 OUU l         Xl        g)z]Initialize an :class:`.Objector` instance.

:param reddit: An instance of :class:`.Reddit`.

N)parsers_reddit)selfredditr#   s      r   __init__Objector.__init__6   s     %_r'r   c           	        SS1R                  U5      (       a{  SS1R                  U5      (       ac  UR                  SU;   a  UR                  S5      OUR                  S5      5        U R                  S   nUR                  XR                  5        GO9SS1R                  U5      (       d  SS1R                  U5      (       a  US	 U R                  S   nGO1 S	kR                  U5      (       a  / nUS
    H}  nUS   U   nUS   [        US    Vs/ s H  ofS   S:X  d  M  UPM     sn5      :X  a1  US    Vs/ s H  nU R                  US   US      5      PM     snUS'   UR                  U5        M     X1S'   [        U5      nU R                  S   nGO51 SkR                  U5      (       a  [        U5      nU R                  S   nGOSS1R                  U5      (       a  [        U5      nU R                  S   nGO1 SkR                  U5      (       a  U R                  S   nGOSS1R                  U5      (       aT  [        U5      nUS	 UR                  S5      US'   U R                  U R                  R                  R                  S      nGO81 SkR                  U5      (       aQ  [        U5      nUR                  S5      US'   U R                  U R                  R                  R                  S      nGO1 SkR                  U5      (       a@  [        U5      nU R                  U R                  R                  R                  US         nGOw1 S kR                  U5      (       d  1 S!kR                  U5      (       a2  U R                  U R                  R                  R                  S      nGOS"S#1R                  U5      (       a.  S$U;   d  S%U;   a  U R                  S&   nGOU R                  S'   nGOS(S"1R                  U5      (       a  U R                  S)   nGO1 S*kR                  U5      (       a  U R                  S+   nGO}1 S,kR                  U5      (       a  U R                  R                  US-   5      $ S.S-1R                  U5      (       a  U R                  R                  US-   5      $ S/1R                  U5      (       a2  U R                  U R                  R                  R                  S0      nGOS1U;   a  U R                  S2   nGO1 S3kR                  U5      (       ao  [        U5      n/ nUS4    HD  n	[        US5   U	   5      n
[        U
S6   R!                  5       5      U
S6'   UR                  U
5        MF     XS5'   U R                  S7   nGO*S8U;   aF  UR                  S85      US-'   U R                  U R                  R                  R                  S      nGO1 S9kR                  U5      (       a:  US:   US;'   U R                  U R                  R                  R                  S<      nGOS=S>1R                  U5      (       Ga  U R                  U R                  R                  R                  S<      nU R                  S?   nUR                  S>5       Vs0 s HV  nUS-   US@   R#                  SA5      (       a  UR%                  XR                  5      OUR%                  XR                  5      _MX     nnUS=    HD  nUS<   (       a
  XS<      US<'   [&        R(                  " USB   SC-  5      R+                  5       USB'   MF     U R                  SD   nGOdSESF1R                  U5      (       a  U R                  R                  USG   5      USH'   U R                  R                  US<   5      US<'   U R                  R                  USI   5      USI'   UR                  USE   5        USE	 UR                  USF   5        USF	 U R                  SJ   nOSU;   aI  [-        US   [.        5      (       a1  SESF1R                  US   5      (       a  US   nU R1                  U5      $ SIU;   aT  U R                  U R                  R                  R                  S      nUR%                  S-USI   0U R                  5      USI'   U$ UR%                  XR                  5      $ s  snf s  snf s  snf )KzCreate :class:`.RedditBase` objects from dicts.

:param data: The structured data, assumed to be a dict.

:returns: An instance of :class:`.RedditBase`.

messages
modActionsconversationsconversationModmailConversationlegacyFirstMessageIdstateobjIds>   r*   r,   conversationIdsr2   numMessageskeyidzModmailConversations-list>   dateauthoractionTypeIdModmailActionbodyMarkdown
isInternalModmailMessage>   kind
short_nameviolation_reasonruleisAdmin	isDeletedis_modis_subreddit_modredditor>   	banStatus
muteStatusrecentCommentscreatedcreated_string>   r5   typedisplayNamerK   >   r5   r6   name>   r5   rM   permissionstexturlcolorlinkUrlButtonMenuLinkchildrenSubmenu>   rP   widthheightImage>   rM   subscribersisSubscribedrM   authorFlairType	parent_idcommentcollection_id
Collection>   
moderatorssubredditIdmoderatorIdsallUsersLoadedmoderator_idsra   mod_permissionszmoderator-listusername>   srrM   rZ   rf   rh   display_name	subredditdrafts
subredditsUserSubredditdisplay_name_prefixedzu/modifiedi  	DraftListmod_action_datauser_note_dataoperator	moderatorusermod_note)issubsetintersectionupdatepopr#   _convert_conversation_objectsr$   r   	objectifyappendr   configkindsrj   rE   r   keys
startswithparser   fromtimestamp
astimezoner   dict_objectify_dict)r%   r   parserr,   conversation_idr-   objobj_idra   mod_idmodsubreddit_parseruser_subreddit_parserrj   rl   drafts                   r   r   Objector._objectify_dict?   s6    %..t44:
 ,t
:
 KK!T) (XXo.
 \\"78F00||D,'0066";
 (4.;
 X\\"78F=FFtLLM#'(9#:#O4_E.#$0$:W$:S%jJ>VS$:W3 
 '38&<0&<F tJ'7t'EF&<0L, $$\2 $; %2!"4(D\\"=>F/88>>"4(D\\/2Fl+44T::"4(D\\"23F7@@FF\\&)F%..t44"4(DT
'+xx'9D#$\\$,,"5"5";";J"GHF:CCDII"4(D%)XXi%8D!"\\$,,"5"5";";J"GHF*33D99"4(D\\$,,"5"5";";DL"IJF#,,T22 7
 (4.	7
 \\$,,"5"5";";J"GHFe_%%d++$)t"3h/j1&!**400\\),F'0066\\'*F4==dCC<<))$v,77(11$77<<((f66]##D))\\$,,"5"5";";I"FGF$\\,/FLUU
 
 #4(DJ/%d<&8&@A)-c2C.D.I.I.K)L%&!!#& 0 ",\\"23F488J/DL\\$,,"5"5";";J"GHF=FFtLL#':D \\$,,"5"5";";K"HIF%..t44#||DLL,?,?,E,Ek,RS$(LL$A! "&,!7 "8I &! !89DDTJJ *//	<<H)//	<<HI
 "8   h%)3+4F)GE+&$,$:$:*%,%*, j! ( \\+.F!12;;DAA $ 5 5d:6F GD $ 6 6tK7H ID<<00f>DLKK./0&'KK-./%&\\*-F4	?D11"$45>>tIOO	?D''--~dll&9&9&?&?
&KL%||VT&\,BDLLQVK||D,,//o X0`s   c("c(9$c-,Ac2c                Z  ^ Tc  g[        T[        5      (       a!  T Vs/ s H  o R                  U5      PM     sn$ [        T[        5      (       a  T$ ST;   a+  STS   ;   a"  TS   S   n[	        U5      S:  a  [        U5      eST;   aW  ST;   d	  TS   S;   aH  U R                  R                  TS   U R                  S   5      nUR                  TU R                  5      $ SS	1R                  T5      (       ai  TS   U R                  ;   aV  U R                  TS      nTS   S
:X  a  UR                  TU R                  5      $ UR                  TS	   U R                  5      $ ST;   Ga  S	TS   ;   Ga  STS   S	   ;   a  T$ STS   S	   ;   a  U R                  TS   S	   S   5      $ STS   S	   ;   a#  U R                  [        TS   S	   S   5      5      $ STS   S	   ;   a`  [        U4S jS 5       5      (       aF  TS   S	   R                  S5        U R                  S   R                  TS   S	   U R                  5      $ STS   S	   ;   a  TS   S	   S	 U R                  U R                  R                  R                  S      nTS   S	   S   R!                  U R                  R                  R                  S    S35      (       a'  TS   S	   S   R#                  SS5      S   TS   S	   S'   OU R                  S   nUR                  TS   S	   U R                  5      $ 1 SkR                  T5      (       a+  U R                  S   nUR                  TU R                  5      $ ST;   a  U R                  TS   5      $ [        T[$        5      (       a  U R'                  T5      $ T$ s  snf )zCreate :class:`.RedditBase` objects from data.

:param data: The structured data.

:returns: An instance of :class:`.RedditBase`, or ``None`` if given ``data`` is
    ``None``.

Nr   r   r   r=   	shortName)menura   widgetr   ModeratedListwebsocket_urlthingsrulesdrafts_countc              3  8   >#    U  H  oTS    S   ;  v   M     g7f)r   r   N ).0r4   r   s     r   	<genexpr>%Objector.objectify.<locals>.<genexpr>  s       >;JC4<//?s   )rM   rP   DraftrP   
submissionr5   _r   LiveUpdateEvent>   bodytitleis_public_link)r   r   r|   boolr   r
   r#   r   r   r$   rw   r   allrz   r~   r   r   splitr   r   )r%   r   itemr   r   s    `   r   r|   Objector.objectify   s    <dD!!59:TTNN4(T::dD!!KT>h$v,6&\(+F6{Q(00T>44<3I#I \\%%d6lDLL4JKF<<dll33F$$T**tF|t||/K\\$v,/FF|.||D$,,77<<Vdll;;T>fV4$v,v"664<//~~d6l6&:8&DEE$v,v..~~eDL,@,I&JKKff!55# >;J> ; ; VV$((8||G,224<3GVVVV,,L(/dll&9&9&?&?&MN<'-88||**00>?qA 
 26ff1Ed1K1Q1QQ22DL(. &78<<VV 4dllCC.77==\\'*F<<dll33d?>>$w-00dD!!''--i ;s   N()r$   r#   )r   %list[Any] | dict[str, dict[str, str]])r   r   returnzRedditAPIException | None)N)r&   zpraw.Redditr#   zdict[str, Any] | None)r   zdict[str, Any]r   r   )r   z(dict[str, Any] | list[Any] | bool | Noner   z5RedditBase | dict[str, Any] | list[Any] | bool | None)__name__
__module____qualname____firstlineno____doc__classmethodr   r   r'   r   r|   __static_attributes__r   r   r   r   r      sq    ;  *8*	"* *2[0"[0	[0zB<B	>Br   r   )r   
__future__r   r   r   r   typingr   r   
exceptionsr	   r
   utilr   prawmodels.reddit.baser   r   r   r   r   <module>r      s/    " "   % ; !.L Lr   