Ë
    Fü´jð  ã                  ó’   — d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ erdd	lmZ dd
lmZ  G d„ de«      Zy)zProvide the Subreddits class.é    )Úannotations)ÚTYPE_CHECKINGÚAny)ÚAPI_PATH)Ú	Subreddit)ÚPRAWBase)ÚListingGenerator)Ústream_generator)ÚIterator)Úmodelsc                  ó†   — e Zd ZdZedd„«       Zdd„Zdd„Zdd„Zdd„Z		 d	 	 	 	 	 dd„Z
dd	„Zd
ddœ	 	 	 	 	 	 	 dd„Zdd„Zy)Ú
SubredditszDSubreddits is a Listing class that provides various subreddit lists.c                ó\   — dj                  | D �cg c]  }t        |«      ‘Œ c}«      S c c}w )Nú,)ÚjoinÚstr)Úsubreddit_listÚxs     úT/root/workspace/ytshorts/venv/lib/python3.12/site-packages/praw/models/subreddits.pyÚ_to_listzSubreddits._to_list   s#   € à�x‰x¨Ö8 Aœ˜Q�Ò8Ó9Ð9ùÒ8s   �)c                ó>   — t        | j                  t        d   fi |¤ŽS )z³Return a :class:`.ListingGenerator` for default subreddits.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        Úsubreddits_default©r	   Ú_redditr   ©ÚselfÚgenerator_kwargss     r   ÚdefaultzSubreddits.default   ó!   € ô   §¡¬hÐ7KÑ.LÑaÐP`ÑaÐaó    c                ó>   — t        | j                  t        d   fi |¤ŽS )z¯Return a :class:`.ListingGenerator` for new subreddits.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        Úsubreddits_newr   r   s     r   ÚnewzSubreddits.new#   s!   € ô   §¡¬hÐ7GÑ.HÑ]ÐL\Ñ]Ð]r    c                ó>   — t        | j                  t        d   fi |¤ŽS )z³Return a :class:`.ListingGenerator` for popular subreddits.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        Úsubreddits_popularr   r   s     r   ÚpopularzSubreddits.popular,   r   r    c                ó>   — t        | j                  t        d   fi |¤ŽS )z³Return a :class:`.ListingGenerator` for premium subreddits.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        Úsubreddits_premiumr   r   s     r   ÚpremiumzSubreddits.premium5   r   r    Nc                ó†  — t        |t        «      sd}t        |«      ‚|�t        |t        «      sd}t        |«      ‚d| j                  |xs g «      i}t        d   j                  | j                  |«      ¬«      }| j                  j                  ||¬«      D �cg c]  }t        | j                  |d   «      ‘Œ c}S c c}w )aa  Return subreddits recommended for the given list of subreddits.

        :param subreddits: A list of :class:`.Subreddit` instances and/or subreddit
            names.
        :param omit_subreddits: A list of :class:`.Subreddit` instances and/or subreddit
            names to exclude from the results (Reddit's end may not work as expected).

        zsubreddits must be a listz&omit_subreddits must be a list or NoneÚomitÚsub_recommended)Ú
subreddits)ÚparamsÚsr_name)	Ú
isinstanceÚlistÚ	TypeErrorr   r   Úformatr   Úgetr   )r   r-   Úomit_subredditsÚmsgr.   ÚurlÚsubs          r   ÚrecommendedzSubreddits.recommended>   s¯   € ô ˜*¤dÔ+Ø-ˆCÜ˜C“.Ð ØÐ&¬z¸/Ì4Ô/PØ:ˆCÜ˜C“.Ð à(.°·±¸oÒ>SÐQSÓ0TÐ'UˆÜÐ(Ñ)×0Ñ0¸D¿M¹MÈ*Ó<UÐ0ÓVˆØCGÇ<Á<×CSÑCSÐTWÐ`fÐCSÓCgÖh¸C”	˜$Ÿ,™,¨¨I©Õ7ÒhÐhùÒhs   Â B>c                óf   — | j                  |d|¬«       t        | j                  t        d   fi |¤ŽS )aœ  Return a :class:`.ListingGenerator` of subreddits matching ``query``.

        Subreddits are searched by both their title and description.

        :param query: The query string to filter subreddits by.

        Additional keyword arguments are passed in the initialization of
        :class:`.ListingGenerator`.

        .. seealso::

            :meth:`.search_by_name` to search by subreddit names

        r.   )Ú	argumentsÚkeyÚqÚsubreddits_search)Ú_safely_add_argumentsr	   r   r   )r   Úqueryr   s      r   ÚsearchzSubreddits.searchV   s7   € ð 	×"Ñ"Ð-=À8ÈuÐ"ÔUÜ §¡¬hÐ7JÑ.KÑ`ÐO_Ñ`Ð`r    FT)ÚexactÚinclude_nsfwc               ó´   — | j                   j                  t        d   |||dœ¬«      }|d   D �cg c]  }| j                   j                  |«      ‘Œ c}S c c}w )a?  Return list of :class:`.Subreddit`\ s whose names begin with ``query``.

        :param query: Search for subreddits beginning with this string.
        :param exact: Return only exact matches to ``query`` (default: ``False``).
        :param include_nsfw: Include subreddits labeled NSFW (default: ``True``).

        Úsubreddits_name_search)rB   Úinclude_over_18r@   )ÚdataÚnames)r   Úpostr   Ú	subreddit)r   r@   rB   rC   Úresultr   s         r   Úsearch_by_namezSubreddits.search_by_nameh   sY   € ð —‘×"Ñ"ÜÐ-Ñ.Ø °\ÈEÑRð #ó 
ˆð 4:¸'±?ÖC¨a�—‘×&Ñ& qÕ)ÒCÐCùÒCs   °"Ac                ó.   — t        | j                  fi |¤ŽS )zéYield new subreddits as they are created.

        Subreddits are yielded oldest first. Up to 100 historical subreddits will
        initially be returned.

        Keyword arguments are passed to :func:`.stream_generator`.

        )r
   r#   )r   Ústream_optionss     r   ÚstreamzSubreddits.stream|   s   € ô   §¡Ñ;¨NÑ;Ð;r    )r   úlist[str | models.Subreddit]Úreturnr   )r   r   rQ   úIterator[models.Subreddit])N)r-   rP   r5   z#list[str | models.Subreddit] | NonerQ   úlist[models.Subreddit])r@   r   r   r   rQ   rR   )r@   r   rB   ÚboolrC   rT   rQ   rS   )rN   r   rQ   rR   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r#   r&   r)   r9   rA   rL   rO   © r    r   r   r      sž   „ ÙNàò:ó ð:óbó^óbóbð @Dðià0ðið =ðið 
 ó	ió0að, Ø!ñDàðDð ð	Dð
 ðDð 
 óDô(	<r    r   N)rX   Ú
__future__r   Útypingr   r   Ú
praw.constr   Úpraw.modelsr   Úpraw.models.baser   Úpraw.models.listing.generatorr	   Úpraw.models.utilr
   Úcollections.abcr   Úprawr   r   rZ   r    r   ú<module>rd      s4   ðÙ #å "ç %å Ý !Ý %Ý :Ý -áÝ(åôr<�õ r<r    