
    {i4                       S r SSKJ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  SSKJrJrJrJrJr  SSKJ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#  SSK$J%r%  SSK&J'r'J(r(J)r)  SSK*J+r+J,r,J-r-  SSK.J/r/  SSK0J1r1   SSK2J3r3  Sr4\(       a  SSKrSSK6r7SSK8J9r9  \#Rt                  r:\#Rv                  r;\#Rx                  r<\#Rz                  r=\" S5      r> " S S5      r?g! \5 a    Sr3Sr4 Ndf = f)zProvide the Reddit class.    )annotationsN)islice)	getLogger)IOTYPE_CHECKINGAny	GeneratorIterable)urlparse)warn)	
AuthorizerDeviceIDAuthorizerReadOnlyAuthorizerRedirect	RequestorScriptAuthorizerTrustedAuthenticatorUntrustedAuthenticatorsession)
BadRequest   )models)Config)API_PATHUSER_AGENT_FORMAT__version__)ClientException!MissingRequiredAttributeExceptionRedditAPIException)Objector)_deprecate_args)update_checkFT)BaseTokenManagerprawc                     \ rS rSrSrSr\R                  " S5      r\	SDS j5       r
\	SES j5       r\R                  SFS j5       r\	SES j5       r\R                  SGS	 j5       rS
 rSHS jr\" SSSSS5       SISSSSS.           SJS jjj5       rS rS rSKS jrSSSSSSS.             SLS jjr  SMS  jrS! rSSS".   SNS# jjrSOS$ jrSOS% jrSPS' jr\" S(S&5       SISS).     SQS* jjj5       r\" SSSS5      SSSS+.         SRS, jj5       rSSS- jr\" SS5      SS..     STS/ jj5       r\" S0S&S15      SSSS2.       SUS3 jj5       r \" SSS5      SSSS+.         SRS4 jj5       r!\" SSSSS5      SSSSS5.           SVS6 jj5       r"\" SSS5      SSS7.       SWS8 jj5       r#\" S95      SS:.SXS; jj5       r$\" S<S=5       SISS>.     SYS? jjj5       r%\" SSSSSS5      SSSSS5.             SZS@ jj5       r&\" S(S&5       SISS).     S[SA jjj5       r'S\SB jr(SCr)g)]Reddit?   a  The Reddit class provides convenient access to Reddit's API.

Instances of this class are the gateway to interacting with Reddit's API through
PRAW. The canonical way to obtain an instance of this class is via:

.. code-block:: python

    import praw

    reddit = praw.Reddit(
        client_id="CLIENT_ID",
        client_secret="CLIENT_SECRET",
        password="PASSWORD",
        user_agent="USERAGENT",
        username="USERNAME",
    )

Fz.([0-9]{1,3}) (milliseconds?|seconds?|minutes?)c                H    U R                   nU =R                   S-  sl         U$ )Nr   )_unique_counterselfvalues     E/home/james-whalen/.local/lib/python3.13/site-packages/praw/reddit.py_next_uniqueReddit._next_uniqueV   s#    $$!    c                4    U R                   U R                  :H  $ )z6Return ``True`` when using the ``ReadOnlyAuthorizer``.)_core_read_only_corer+   s    r-   	read_onlyReddit.read_only\   s     zzT1111r0   c                    U(       a  U R                   U l        gU R                  c  Sn[        U5      eU R                  U l        g)zSet or unset the use of the ReadOnlyAuthorizer.

:raises: :class:`.ClientException` when attempting to unset ``read_only`` and
    only the ``ReadOnlyAuthorizer`` is available.

NzFread_only cannot be unset as only the ReadOnlyAuthorizer is available.)r3   r2   _authorized_corer   )r+   r,   msgs      r-   r5   r6   a   sB     --DJ""*X  "#&&..DJr0   c                F    U R                   nUSL a  [        S[        SS9  U$ )zGet validate_on_submit.

.. deprecated:: 7.0

    If property :attr:`.validate_on_submit` is set to ``False``, the behavior is
    deprecated by Reddit. This attribute will be removed around May-June 2020.

FzReddit will check for validation on all posts around May-June 2020. It is recommended to check for validation by setting reddit.validate_on_submit to True.   category
stacklevel)_validate_on_submitr   DeprecationWarningr*   s     r-   validate_on_submitReddit.validate_on_submits   s2     ((E>6 , r0   c                    Xl         g N)r?   )r+   vals     r-   rA   rB      s    #& r0   c                    U $ )z Handle the context manager open. r4   s    r-   	__enter__Reddit.__enter__   s    r0   c                    g)z!Handle the context manager close.NrG   )r+   _s     r-   __exit__Reddit.__exit__   s    r0   	site_nameconfig_interpolationrequestor_classrequestor_kwargstoken_managerN)rO   rP   rQ   rR   c               b   S=U l         =U l        U l        SU l        XPl        SU l        SU l         U=(       d    [        R                  " S5      =(       d    Sn[        Xr40 UD6U l
        Sn
S	 HM  n[        U R                  U5      U R                  R                  S4;   d  M5  [!        U
R#                  U5      5      e   U R                  R$                  U R                  R                  L a  U
R#                  S
5       S3n[!        U5      eU R'                  5         U R)                  5         U R+                  X4S9  [,        R.                  " U S5      U l         [,        R2                  " U S5      U l         [,        R6                  " U 5      U l         [,        R:                  " U S5      U l         [,        R>                  " U S5      U l          [,        RB                  " U S5      U l"         [,        RF                  " U 5      U l$         [,        RJ                  " U S5      U l&         [,        RN                  " U S5      U l(         [,        RR                  " U S5      U l*         [,        RV                  " U 5      U l,        g! [        R                   a#  nSn	Ub  U=R                  SU	 3-  sl        e SnAff = f)a	  Initialize a :class:`.Reddit` instance.

:param site_name: The name of a section in your ``praw.ini`` file from which to
    load settings from. This parameter, in tandem with an appropriately
    configured ``praw.ini``, file is useful if you wish to easily save
    credentials for different applications, or communicate with other servers
    running Reddit. If ``site_name`` is ``None``, then the site name will be
    looked for in the environment variable ``praw_site``. If it is not found
    there, the ``DEFAULT`` site will be used (default: ``None``).
:param config_interpolation: Config parser interpolation type that will be
    passed to :class:`.Config` (default: ``None``).
:param requestor_class: A class that will be used to create a requestor. If not
    set, use ``prawcore.Requestor`` (default: ``None``).
:param requestor_kwargs: Dictionary with additional keyword arguments used to
    initialize the requestor (default: ``None``).
:param token_manager: When provided, the passed instance, a subclass of
    :class:`.BaseTokenManager`, will manage tokens via two callback functions.
    This parameter must be provided in order to work with refresh tokens
    (default: ``None``).

Additional keyword arguments will be used to initialize the :class:`.Config`
object. This can be used to specify configuration settings during instantiation
of the :class:`.Reddit` instance. For more details, please see
:ref:`configuration`.

Required settings are:

- ``client_id``
- ``client_secret`` (for installed applications set this value to ``None``)
- ``user_agent``

The ``requestor_class`` and ``requestor_kwargs`` allow for customization of the
requestor :class:`.Reddit` will use. This allows, e.g., easily adding behavior
to the requestor or wrapping its |Session|_ in a caching layer. Example usage:

.. |Session| replace:: ``Session``

.. _session: https://2.python-requests.org/en/master/api/#requests.Session

.. code-block:: python

    import json

    import betamax
    import requests
    from prawcore import Requestor

    from praw import Reddit


    class JSONDebugRequestor(Requestor):
        def request(self, *args, **kwargs):
            response = super().request(*args, **kwargs)
            print(json.dumps(response.json(), indent=4))
            return response


    my_session = betamax.Betamax(requests.Session())
    reddit = Reddit(
        ..., requestor_class=JSONDebugRequestor, requestor_kwargs={"session": my_session}
    )

Nr   F	praw_siteDEFAULTa/  You provided the name of a praw.ini configuration which does not exist.

For help with creating a Reddit instance, visit
https://praw.readthedocs.io/en/latest/code_overview/reddit_instance.html

For help on configuring PRAW, visit
https://praw.readthedocs.io/en/latest/getting_started/configuration.html
zRequired configuration setting {!r} missing. 
This setting can be provided in a praw.ini file, as a keyword argument to the Reddit class constructor, or as an environment variable.)	client_id
user_agentclient_secretzr
For installed applications this value must be set to None via a keyword argument to the Reddit class constructor.rP   rQ   )-r2   r8   r3   	_objector_token_managerr)   r?   osgetenvr   configconfigparserNoSectionErrormessagegetattrCONFIG_NOT_SETr   formatrY   _check_for_update_prepare_objector_prepare_prawcorer   AuthauthDraftHelperdraftsFrontfrontInboxinbox
LiveHelperliveMultiredditHelpermultiredditRedditModNotesnotes	Redditors	redditorsSubredditHelper	subreddit
Subreddits
subredditsUseruser)r+   rN   rO   rP   rQ   rR   config_settingsconfig_sectionexchelp_messagerequired_message	attributer9   s                r-   __init__Reddit.__init__   s   ` EIH
HT*T-A+ #( 	@RYY{3@y  !8GDK ; 	
 5It{{I.4;;3M3Mt2TT7$++I6  5
 ;;$$(B(BB%,,_=>  ?r  sC3C88  + 	 	
 KKd+		 ((t4	$ \\$'
		 \\$-
	 %%dD1			 "33D$?		 **40
	0  ))$5
	  //d;	2 !++D$7
	 KK%			} ** 
	c  $L>22
	s   9I7 7J.J))J.c                8   U R                   R                  (       a_   [        5       R                  R                  nUS:X  a  g  Sn [        R                  " 5         SnU(       a  [        R                  S5        g g g ! [
         a     NEf = f! [         a     N;f = f)NZMQInteractiveShellFTa  It appears that you are using PRAW in an asynchronous environment.
It is strongly recommended to use Async PRAW: https://asyncpraw.readthedocs.io.
See https://praw.readthedocs.io/en/latest/getting_started/multiple_instances.html#discord-bots-and-asynchronous-environments for more info.
)r_   check_for_asyncget_ipython	__class____name__	NameErrorasyncioget_running_loop	Exceptionloggerwarning)r+   shellin_asyncs      r-   _check_for_asyncReddit._check_for_async  s    ;;&&#//8811 2 H((* (  '    s#   $A< B <
B	B	
BBc                    [         (       a  g [        R                  (       d<  U R                  R                  (       a   [        [        [        5        S[        l        g g g )NT)UPDATE_CHECKER_MISSINGr&   update_checkedr_   check_for_updatesr"   __package__r   r4   s    r-   rf   Reddit._check_for_update  s;    !!$$)F)Fk2$(F! *G$r0   c                   UR                    H  nUR                  S:X  d  M  U R                  R                  UR                  5      nU(       d    g [        UR                  S5      5      nUR                  S5      R                  S5      (       a  US-  nO'UR                  S5      R                  S5      (       a  SnU[        U R                  R                  5      ::  d  M  US-   s  $    g )N	RATELIMITr      minute<   millisecondr   )
items
error_type_ratelimit_regexsearchrb   intgroup
startswithr_   ratelimit_seconds)r+   	exceptionitemamount_searchsecondss        r-   _handle_rate_limitReddit._handle_rate_limit  s    OOD+- $ 5 5 < <T\\ J$  m11!45 &&q)44X>>rMG"((+66}EEGc$++"?"?@@"Q;& $ r0    datafilesjsonmethodparamspathr   r   r   r   r   r   c               \    U R                   R                  U R                  UUUUUUS95      $ )a  Run a request through the ``Objector``.

:param data: Dictionary, bytes, or file-like object to send in the body of the
    request (default: ``None``).
:param files: Dictionary, filename to file (like) object mapping (default:
    ``None``).
:param json: JSON-serializable object to send in the body of the request with a
    Content-Type header of application/json (default: ``None``). If ``json`` is
    provided, ``data`` should not be.
:param method: The HTTP method (e.g., ``"GET"``, ``"POST"``, ``"PUT"``,
    ``"DELETE"``).
:param params: The query parameters to add to the request (default: ``None``).
:param path: The path to fetch.

r   )r[   	objectifyrequest)r+   r   r   r   r   r   r   s          r-   _objectify_requestReddit._objectify_request  s>    2 ~~''LL  	
 		
r0   c                   U R                   b{  [        S[        SS9  U R                  R                  (       a  Sn[        U5      eX R                   l        [        UU R                   R                  U R                   R                  S9nOKU R                  R                  (       a  [        XR                  R                  S9nOU R                  U l        g [        X0R                  R                  S9=U l        U l        g )NzToken managers have been deprecated and will be removed in the near future. See https://www.reddit.com/r/redditdev/comments/olk5e6/followup_oauth2_api_changes_regarding_refresh/ for more details.r   r<   zI'refresh_token' setting cannot be provided when providing 'token_manager')post_refresh_callbackpre_refresh_callback)refresh_token
authorizerwindow_size)r\   r   r@   r_   r   	TypeErrorredditr   r   r   r3   r2   r   r   r8   )r+   authenticatorr9   r   s       r-   _prepare_common_authorizer!Reddit._prepare_common_authorizer  s     *S , {{((an$)-&#&*&9&9&O&O%)%8%8%M%MJ
 [[&&#[[-F-FJ --DJ-4!{{/F/F.
 	

T*r0   c                   0 U R                   R                  S   [        R                  _U R                   R                  S   [        R                  _U R                   R                  S   [        R
                  _U R                   R                  S   [        R                  _U R                   R                  S   [        R                  _U R                   R                  S   [        R                  _S[        R                  _S[        R                  _S	[        R                  _S
[        R                  _S[        R                  _S[        R                  _S[        R                  _S[        R                   _S[        R"                  _S[        R$                  _S[        R&                  _0 S[        R(                  _S[        R*                  _S[        R,                  _S[        R.                  _S[        R0                  _S[        R2                  _S[        R4                  _S[        R6                  _S[        R8                  _S[        R:                  _S[        R<                  _S[        R>                  _S[        R@                  _S[        RB                  _S [        RD                  _S![        RF                  _S"[        RH                  _E[        RJ                  [        RL                  [        RN                  [        RP                  [        RR                  [        RT                  [        RV                  [        RX                  [        RZ                  S#.	En[]        X5      U l/        g )$Ncommentrb   redditor
submissionrz   trophyButton
CollectionDraft	DraftListImageLabeledMultiListing
LiveUpdateLiveUpdateEventMenuLinkModeratedListModmailActionModmailConversationzModmailConversations-listModmailMessageSubmenu
TrophyListUserListUserSubredditbuttoncalendarzcommunity-listcustomzid-cardimagemenu	modactionzmoderator-list)	
moderatorsmod_notemorez
post-flairrule
stylesheetzsubreddit-rulestextareawidget)0r_   kindsr   CommentMessageRedditor
Submission	SubredditTrophyr   r   r   r   r   Multiredditr   r   
LiveThreadr   r   r   r   ModmailConversationsListingr   r   r   RedditorListr   ButtonWidgetCalendarCommunityListCustomWidgetIDCardImageWidgetMenu	ModActionModeratorListingModeratorsWidgetModNoteMoreCommentsPostFlairWidgetRule
StylesheetRulesWidgetTextAreaWidgetr    r[   )r+   mappingss     r-   rg   Reddit._prepare_objector,  s   ,
KKi(&..,
KKi(&..,
 KKj)6??,
 KKl+V->->	,

 KKk*F,<,<,
 KKh',
 fmm,
 &++,
 V\\,
 )),
 V\\,
 F..,
 v~~,
 &++,
 v00,
  !,
" V11#,
$ V11%,
& "6#=#=',
( ()K)K),
* f33+,
, v~~-,
. &++/,
0 ++1,
2 V113,
4 f))5,
6 7,
8 f229,
: f));,
< v}}=,
> V''?,
@ FKKA,
B ))C,
D f55E,
F !11'' 00KK ++%11mmW,
Z "$1r0   rZ   c               j   U=(       d    [         nU=(       d    0 nU" [        R                  " U R                  R                  5      U R                  R
                  U R                  R                  40 UD6nU R                  R                  (       a  U R                  U5        g U R                  U5        g rD   )
r   r   re   r_   rX   	oauth_url
reddit_urlrY   _prepare_trusted_prawcore_prepare_untrusted_prawcore)r+   rP   rQ   	requestors       r-   rh   Reddit._prepare_prawcore\  s     *6Y+1r#$$T[[%;%;<KK!!KK""
 	
	 ;;$$**95,,Y7r0   c                <   [        UU R                  R                  U R                  R                  U R                  R                  5      n[        U5      n[        X0R                  R                  S9U l        U R                  R                  (       ay  U R                  R                  (       a^  [        X R                  R                  U R                  R                  5      n[        X@R                  R                  S9=U l        U l        g U R                  U5        g Nr   )r   r_   rW   rY   redirect_urir   r   r   r3   usernamepasswordr   r2   r8   r   )r+   r  r   read_only_authorizerscript_authorizers        r-   r   Reddit._prepare_trusted_prawcoreq  s    ,KK!!KK%%KK$$	
  2-@&+9P9P 
 ;;DKK$8$8 0{{33T[[5I5I! 29,++:Q:Q2 DJ. ++M:r0   c                    [        XR                  R                  U R                  R                  5      n[	        U5      n[        X0R                  R                  S9U l        U R                  U5        g r  )	r   r_   rW   r  r   r   r   r3   r   )r+   r  r   r  s       r-   r  "Reddit._prepare_untrusted_prawcore  s\    .{{,,dkk.F.F
  2-@&+9P9P 
 	''6r0   urlc                   [        U5      R                  R                  S5      R                  S5      nSU;   a   U R	                  U5        U$ U$ ! [
         a*  nUR                  R                  R                  s SnA$ SnAff = f)z/Return the canonical URL for a given share URL./sN)	r   r   rstripsplitgetr   responsenextr  )r+   r  partses       r-   _resolve_share_urlReddit._resolve_share_url  so    ""))#.44S9%<+ 
s
  +zz***+s   A 
BA?9B?Bid)r  c               \    U(       a  U R                  U5      n[        R                  " XUS9$ )a  Return a lazy instance of :class:`.Comment`.

:param id: The ID of the comment.
:param url: A permalink pointing to the comment.

.. note::

    If you want to obtain the comment's replies, you will need to call
    :meth:`~.Comment.refresh` on the returned :class:`.Comment`.

r+  r  )r)  r   r   r+   r+  r  s      r-   r   Reddit.comment  s(     ))#.C~~ds33r0   )r   r   r   c               $    U R                  X#SXAS9$ )a  Return parsed objects returned from a DELETE request to ``path``.

:param path: The path to fetch.
:param data: Dictionary, bytes, or file-like object to send in the body of the
    request (default: ``None``).
:param json: JSON-serializable object to send in the body of the request with a
    Content-Type header of application/json (default: ``None``). If ``json`` is
    provided, ``data`` should not be.
:param params: The query parameters to add to the request (default: ``None``).

DELETEr   r   r   r   r   r   r+   r   r   r   r   s        r-   deleteReddit.delete  s#    ( &&& ' 
 	
r0   c                .    [         R                  " X5      $ )znReturn an instance of :class:`.DomainListing`.

:param domain: The domain to obtain submission listings for.

)r   DomainListing)r+   domains     r-   r9  Reddit.domain  s     ##D11r0   r   c               "    U R                  SX!S9$ )zReturn parsed objects returned from a GET request to ``path``.

:param path: The path to fetch.
:param params: The query parameters to add to the request (default: ``None``).

GETr   r   r   r3  )r+   r   r   s      r-   r$  
Reddit.get  s     &&eF&NNr0   	fullnamesr|   )r@  r|   r  c                 ^ ^^	 XU4R                  S5      nUS:w  a  Sn[        U5      eUSLm	T	(       a  UOUnUb?  [        U[        5      (       a  Sn[        U5      eT	(       a  SOSmS	UU	U 4S jjnU" U5      $ S
U 4S jjnU" U5      $ )a  Fetch information about each item in ``fullnames``, ``url``, or ``subreddits``.

:param fullnames: A list of fullnames for comments, submissions, and/or
    subreddits.
:param subreddits: A list of subreddit names or :class:`.Subreddit` objects to
    retrieve subreddits from.
:param url: A url (as a string) to retrieve lists of link submissions from.

:returns: A generator that yields found items in their relative order.

Items that cannot be matched will not be generated. Requests will be issued in
batches for each 100 fullnames.

.. note::

    For comments that are retrieved via this method, if you want to obtain its
    replies, you will need to call :meth:`~.Comment.refresh` on the yielded
    :class:`.Comment`.

.. note::

    When using the URL option, it is important to be aware that URLs are treated
    literally by Reddit's API. As such, the URLs ``"youtube.com"`` and
    ``"https://www.youtube.com"`` will provide a different set of submissions.

Nr   z<Either 'fullnames', 'url', or 'subreddits' must be provided.z8'fullnames' and 'subreddits' must be a non-str iterable.r+  sr_namec              3  .  >#    T(       a  [        U 5      nO%[        U  Vs/ s H  n[        U5      PM     sn5      n [        [        US5      5      nU(       d  g TSR	                  U5      0nTR                  [        S   US9 S h  vN   MQ  s  snf  N7f)Nd   ,infor;  )iterstrlistr   joinr$  r   )namesiterabler   chunkr   api_parameter_nameis_using_fullnamesr+   s        r-   	generatorReddit.info.<locals>.generator  s     %#E{H#5$A54SY5$ABH #!67E 0#((5/BF#xx(8xHHH  %B Is   BBABBBc              3  X   >#    SU 0nTR                  [        S   US9 S h  vN   g  N7f)Nr  rF  r;  )r$  r   )_urlr   r+   s     r-   rP  rQ     s*     T]Fxx 0x@@@s   *(*)rK  z%Iterable[str | praw.models.Subreddit])rS  rH  )countr   
isinstancerH  )
r+   r@  r|   r  
none_countr9   ids_or_namesrP  rN  rO  s
   `       @@r-   rF  Reddit.info  s    L  j177=
?PCC. &d2$6yJ#,,,Pn$);
I 
I \**	A ~r0   c               $    U R                  X#SXAS9$ )a  Return parsed objects returned from a PATCH request to ``path``.

:param path: The path to fetch.
:param data: Dictionary, bytes, or file-like object to send in the body of the
    request (default: ``None``).
:param json: JSON-serializable object to send in the body of the request with a
    Content-Type header of application/json (default: ``None``). If ``json`` is
    provided, ``data`` should not be.
:param params: The query parameters to add to the request (default: ``None``).

PATCHr2  r3  r4  s        r-   patchReddit.patch&  s#    ( && ' 
 	
r0   )r   r   r   r   c          	     J   Uc  U=(       d    0 nSnSnUS:  a  US-  n U R                  UUUSUUS9$ Ue! [         aZ  nUnU R                  US9n	U	c   SnAUeU	S:X  a  SOS	n
[        R	                  S
X5        [
        R                  " U	5         SnAOSnAff = fUS:  a  M  Nr)aA  Return parsed objects returned from a POST request to ``path``.

:param path: The path to fetch.
:param data: Dictionary, bytes, or file-like object to send in the body of the
    request (default: ``None``).
:param files: Dictionary, filename to file (like) object mapping (default:
    ``None``).
:param json: JSON-serializable object to send in the body of the request with a
    Content-Type header of application/json (default: ``None``). If ``json`` is
    provided, ``data`` should not be.
:param params: The query parameters to add to the request (default: ``None``).

Nr;   r   r   POSTr   )r   secondr   z"Rate limit hit, sleeping for %d %s)r   r   r   r   debugtimesleep)r+   r   r   r   r   r   attemptslast_exceptionr   r   second_strings              r-   postReddit.post>  s    . <:2DlMH$..!! /  $  & 	$!*11I1F?  -4qLi8' 

7##	$ ls   5 
BB6BB)r   r   c               $    U R                  X#SUS9$ )a  Return parsed objects returned from a PUT request to ``path``.

:param path: The path to fetch.
:param data: Dictionary, bytes, or file-like object to send in the body of the
    request (default: ``None``).
:param json: JSON-serializable object to send in the body of the request with a
    Content-Type header of application/json (default: ``None``). If ``json`` is
    provided, ``data`` should not be.

PUT)r   r   r   r   r3  )r+   r   r   r   s       r-   put
Reddit.putq  s    $ &&DEPT&UUr0   nsfw)rl  c                  [         S   R                  U(       a  SOSS9nSn U R                  USU R                  0S9  [        R                  " XR                  S5      S	   5      $ ! [         a  nUR
                  n SnANCSnAff = f)
zReturn a random lazy instance of :class:`.Subreddit`.

:param nsfw: Return a random NSFW (not safe for work) subreddit (default:
    ``False``).

rz   randnsfwrandom)rz   Nuniquer;  r   r   )	r   re   r$  r.   r   r   r   r   r#  )r+   rl  r  r   redirects        r-   random_subredditReddit.random_subreddit  s     {#**4ZX*V	!HHS(D,=,=!>H? jjoa&899  	!==D	!s   A' '
B1BBnamefullname)ru  c               ,    [         R                  " XUS9$ )zReturn a lazy instance of :class:`.Redditor`.

:param name: The name of the redditor.
:param fullname: The fullname of the redditor, starting with ``t2_``.

Either ``name`` or ``fullname`` can be provided, but not both.

)rt  ru  )r   r   )r+   rt  ru  s      r-   r   Reddit.redditor  s     tBBr0   c          	     f   U R                   R                  (       a  U R                  5         U(       a  U(       a  Sn[        U5      e U R                  R                  UUUUUUS9$ ! [         a  n UR                  R                  5       nOF! [         a9    UR                  R                  (       a  SUR                  R                  0n OUSef = f[        U5      SS1:X  a  e UR                  S5      n	SU;   a  [        US   5      S	:X  d   eUS   S
   n
OSn
[        US   X/5      UeSnAff = f)a  Return the parsed JSON data returned from a request to URL.

:param data: Dictionary, bytes, or file-like object to send in the body of the
    request (default: ``None``).
:param files: Dictionary, filename to file (like) object mapping (default:
    ``None``).
:param json: JSON-serializable object to send in the body of the request with a
    Content-Type header of application/json (default: ``None``). If ``json`` is
    provided, ``data`` should not be.
:param method: The HTTP method (e.g., ``"GET"``, ``"POST"``, ``"PUT"``,
    ``"DELETE"``).
:param params: The query parameters to add to the request (default: ``None``).
:param path: The path to fetch.

z-At most one of 'data' or 'json' is supported.r   reasonNerrorrb   explanationfieldsr   r   )r_   r   r   r   r2   r   r   r%  r   
ValueErrortextsetr$  lenr   )r+   r   r   r   r   r   r   r9   r   r{  fields              r-   r   Reddit.request  s>   4 ;;&&!!#DAC!#&&	::%% &    	. ))..0 .%%**$i&8&8&=&=>D#-	.
 4yWi00((=1K44>*a///Xq)$h4!	s7   A& &
D01BD+=C	D+CAD++D0c               \    U(       a  U R                  U5      n[        R                  " XUS9$ )zReturn a lazy instance of :class:`.Submission`.

:param id: A Reddit base36 submission ID, e.g., ``"2gmzqe"``.
:param url: A URL supported by :meth:`.Submission.id_from_url`.

Either ``id`` or ``url`` can be provided, but not both.

r-  )r)  r   r   r.  s      r-   r   Reddit.submission  s*     ))#.C  #66r0   c                6    U R                  SSU0[        S   S9$ )zCheck to see if the username is available.

For example, to check if the username ``bboe`` is available, try:

.. code-block:: python

    reddit.username_available("bboe")

r=  r~   username_availabler>  )r   r   )r+   rt  s     r-   r  Reddit.username_available  s-     &&&$h?S6T ' 
 	
r0   )r8   r2   r[   r3   r\   r)   r?   rj   r_   rl   rn   rp   rr   rt   rv   rx   rz   r|   r~   )returnr   )r  bool)r,   r  )rE   r  )rK   objectrD   )rN   
str | NonerO   r  rP   z)type[prawcore.requestor.Requestor] | NonerQ   zdict[str, Any] | NonerR   zBaseTokenManager | Noner   zstr | bool | int | None)r   r   r  zint | float | None)r   .dict[str, str | Any] | bytes | IO | str | Noner   dict[str, IO] | Noner   !dict[Any, Any] | list[Any] | Noner   rH  r   str | dict[str, str] | Noner   rH  r  r   )r   zprawcore.auth.BaseAuthenticator)rP   z"type[prawcore.requestor.Requestor]rQ   z
Any | None)r  zprawcore.requestor.Requestor)r  rH  r  rH  )r+  r  r  r  r  zmodels.Comment)
r   rH  r   r  r   r  r   r  r  r   )r9  rH  r  zmodels.DomainListing)r   rH  r   !str | dict[str, str | int] | Noner  r   )r@  zIterable[str] | Noner|   z,Iterable[praw.models.Subreddit | str] | Noner  r  r  z[Generator[praw.models.Subreddit | praw.models.Comment | praw.models.Submission, None, None])r   rH  r   r  r   r  r   r  r   r  r  r   )r   rH  r   r  r   r  r  r   )rl  r  r  zpraw.models.Subreddit)rt  r  ru  r  r  zpraw.models.Redditor)r   r  r   r  r   r  r   rH  r   r  r   rH  r  r   )r+  r  r  r  r  zpraw.models.Submission)rt  rH  r  r  )*r   
__module____qualname____firstlineno____doc__r   recompiler   propertyr.   r5   setterrA   rH   rL   r!   r   r   rf   r   r   r   rg   rh   r  r  r)  r   r5  r9  r$  rF  r[  rf  rj  rr  r   r   r   r  __static_attributes__rG   r0   r-   r&   r&   ?   sA   & Nzz"ST 
 2 2 / /"  ( ' '0  !%] ,0EI2615]] )	]
 C] 0] /] 3]]~2)$ @D&*26.2"
 ="
 $	"

 0"
 "
 ,"
 "
 
"
H
<
@.2f ?C'+	8 <8 %	8*;,7 T5!#4:>44-74	4 "4$ VVVX6
 @D26.2

 =	

 0
 ,
 

 7
.2 VX&
 59	OO 2	O
 
O 'O [%6 +/CGF (F A	F
 F
F 7FP VVV,
 @D26.2

 =	

 0
 ,
 

 -
. VVWh?
 @D&*26.200 =	0
 $0 00 ,0 
0 @0d VVV,
 @D26VV =	V
 0V 
V -V& V/4 : : VZ(!%CAECC4>C	C )C Xvx&I @D&*26489 =9 $	9
 09 9 29 9 
9 J9v T5!#7:>77-77	7 "7
r0   r&   )@r  
__future__r   r   r`   r]   r  ra  	itertoolsr   loggingr   typingr   r   r   r	   r
   urllib.parser   warningsr   prawcorer   r   r   r   r   r   r   r   r   prawcore.exceptionsr   r   r   r_   r   constr   r   r   
exceptionsr   r   r   objectorr    utilr!   update_checkerr"   r   ImportErrorpraw.modelsr$   util.token_managerr#   r   r   r   r   r   r&   rG   r0   r-   <module>r     s     "   	 	    > > ! 
 
 
 +   ; ; 
  !"+"
 4
..??
		6	|
 |
'  "L!"s   C, ,
C98C9