Ë
    Fü´j)  ã                  óx   — 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 erddlmZ ddlmZ  G d	„ d
«      Zy)z Provide the SubredditWiki class.é    )Úannotations)ÚTYPE_CHECKINGÚAny)ÚAPI_PATH)ÚSubredditRelationship)ÚWikiPage)ÚIterator)Úmodelsc                  óX   — e Zd ZdZd	d„Zd
d„Zdd„Zddœ	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 dd„Zy)ÚSubredditWikiz:Provides a set of wiki functions to a :class:`.Subreddit`.c                ót   — t        | j                  j                  | j                  |j                  «       «      S )a/  Lazily return the :class:`.WikiPage` for the :class:`.Subreddit` named ``page_name``.

        This method is to be used to fetch a specific wikipage, like so:

        .. code-block:: python

            wikipage = reddit.subreddit("test").wiki["proof"]
            print(wikipage.content_md)

        )r   Ú	subredditÚ_redditÚlower)ÚselfÚ	page_names     ú_/root/workspace/ytshorts/venv/lib/python3.12/site-packages/praw/models/reddit/subreddit/wiki.pyÚ__getitem__zSubredditWiki.__getitem__   s(   € ô ˜Ÿ™×.Ñ.°·±À	ÇÁÓ@QÓRÐRó    c                óV   — t        |d«      | _        t        |d«      | _        || _        y)zzInitialize a :class:`.SubredditWiki` instance.

        :param subreddit: The subreddit whose wiki to work with.

        Ú
wikibannedÚwikicontributorN)r   ÚbannedÚcontributorr   )r   r   s     r   Ú__init__zSubredditWiki.__init__!   s)   € ô ,¨I°|ÓDˆŒÜ0°Ð<MÓNˆÔØ"ˆ�r   c              #  óJ  K  — | j                   j                  j                  t        d   j	                  | j                   ¬«      d| j                   j                  j
                  i¬«      }|d   D ]/  }t        | j                   j                  | j                   |«      –— Œ1 y­w)zúIterate through the pages of the wiki.

        This method is to be used to discover all wikipages for a subreddit:

        .. code-block:: python

            for wikipage in reddit.subreddit("test").wiki:
                print(wikipage)

        Ú
wiki_pages©r   Úunique)ÚparamsÚdataN)r   r   Úgetr   ÚformatÚ_next_uniquer   )r   Úresponser   s      r   Ú__iter__zSubredditWiki.__iter__+   sŽ   è ø€ ð —>‘>×)Ñ)×-Ñ-Ü�\Ñ"×)Ñ)°D·N±NÐ)ÓCØ˜dŸn™n×4Ñ4×AÑAÐBð .ó 
ˆð " &Ñ)ò 	NˆIÜ˜4Ÿ>™>×1Ñ1°4·>±>À9ÓMÓMñ	Nùs   ‚B!B#N)Úreasonc               óÆ   — |j                  dd«      j                  «       }t        | j                  j                  | j                  |«      } |j
                  d||dœ|¤Ž |S )aG  Create a new :class:`.WikiPage`.

        :param name: The name of the new :class:`.WikiPage`. This name will be
            normalized.
        :param content: The content of the new :class:`.WikiPage`.
        :param reason: The reason for the creation.
        :param other_settings: Additional keyword arguments to pass.

        To create the wiki page ``"praw_test"`` in r/test try:

        .. code-block:: python

            reddit.subreddit("test").wiki.create(
                name="praw_test", content="wiki body text", reason="PRAW Test Creation"
            )

        ú Ú_)Úcontentr'   © )Úreplacer   r   r   r   Úedit)r   r+   Únamer'   Úother_settingsÚnews         r   ÚcreatezSubredditWiki.create=   sV   € ð2 �|‰|˜C Ó%×+Ñ+Ó-ˆÜ�t—~‘~×-Ñ-¨t¯~©~¸tÓDˆØˆ�‰ÐB˜¨ÑB°>ÒBØˆ
r   c                óŒ   — t         d   j                  | j                  ¬«      }t        j                  || j                  |¬«      S )aŠ  Return a :class:`.ListingGenerator` for recent wiki revisions.

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

        To view the wiki revisions for ``"praw_test"`` in r/test try:

        .. code-block:: python

            for item in reddit.subreddit("test").wiki["praw_test"].revisions():
                print(item)

        Úwiki_revisionsr   )Úgenerator_kwargsr   Úurl)r   r#   r   r   Ú_revision_generator)r   r5   r6   s      r   Ú	revisionszSubredditWiki.revisions[   s?   € ô  Ð'Ñ(×/Ñ/¸$¿.¹.Ð/ÓIˆÜ×+Ñ+Ð=MÐY]×YgÑYgÐmpÔqÐqr   )r   ÚstrÚreturnr   )r   zmodels.Subredditr:   ÚNone)r:   zIterator[WikiPage])
r+   r9   r/   r9   r'   z
str | Noner0   r   r:   r   )r5   r   r:   zIIterator[dict[str, models.Redditor | WikiPage | str | int | bool | None]])	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r&   r2   r8   r,   r   r   r   r      sj   „ ÙDóSó#óNð. "ñð ðð ð	ð
 ðð ðð 
óð<rØ"%ðrà	Rôrr   r   N)r?   Ú
__future__r   Útypingr   r   Ú
praw.constr   Ú)praw.models.reddit.subreddit.relationshipr   Úpraw.models.reddit.wikipager   Úcollections.abcr	   Úprawr
   r   r,   r   r   ú<module>rG      s.   ðÙ &å "ç %å Ý KÝ 0áÝ(å÷[rò [rr   