§
    šŠtj˜  ã                  óŠ   — d dl mZ d dlmZmZmZmZ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mZmZ  G d„ de¦  «        Zd	S )
é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚIteratorÚLiteralÚOptionalÚTuple)ÚDocument)Úget_from_env)Ú
BaseLoader)ÚBoardÚCardÚTrelloClientc                  ó`   — e Zd ZdZddddddœd&d„Zedddœd'd„¦   «         Zd(d„Zd)d„Zd*d%„Z	dS )+ÚTrelloLoaderz!Load cards from a `Trello` board.TÚall)Údue_dateÚlabelsÚlistÚclosed)Úinclude_card_nameÚinclude_commentsÚinclude_checklistÚcard_filterÚextra_metadataÚclientr   Ú
board_nameÚstrr   Úboolr   r   r   ú Literal['closed', 'open', 'all']r   úTuple[str, ...]c               óh   — || _         || _        || _        || _        || _        || _        || _        dS )aÑ  Initialize Trello loader.

        Args:
            client: Trello API client.
            board_name: The name of the Trello board.
            include_card_name: Whether to include the name of the card in the document.
            include_comments: Whether to include the comments on the card in the
                document.
            include_checklist: Whether to include the checklist on the card in the
                document.
            card_filter: Filter on card status. Valid values are "closed", "open",
                "all".
            extra_metadata: List of additional metadata fields to include as document
                metadata.Valid values are "due_date", "labels", "list", "closed".

        N)r   r   r   r   r   r   r   )Úselfr   r   r   r   r   r   r   s           úi/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_community/document_loaders/trello.pyÚ__init__zTrelloLoader.__init__   s@   € ð6 ˆŒØ$ˆŒØ!2ˆÔØ 0ˆÔØ!2ˆÔØ,ˆÔØ&ˆÔÐÐó    N©Úapi_keyÚtokenr(   úOptional[str]r)   Úkwargsr   Úreturnc               óÌ   — 	 ddl m} n"# t          $ r}t          d¦  «        |‚d}~ww xY w|pt          dd¦  «        }|pt          dd¦  «        } |||¬	¦  «        } | ||fi |¤ŽS )
a´  Convenience constructor that builds TrelloClient init param for you.

        Args:
            board_name: The name of the Trello board.
            api_key: Trello API key. Can also be specified as environment variable
                TRELLO_API_KEY.
            token: Trello token. Can also be specified as environment variable
                TRELLO_TOKEN.
            include_card_name: Whether to include the name of the card in the document.
            include_comments: Whether to include the comments on the card in the
                document.
            include_checklist: Whether to include the checklist on the card in the
                document.
            card_filter: Filter on card status. Valid values are "closed", "open",
                "all".
            extra_metadata: List of additional metadata fields to include as document
                metadata.Valid values are "due_date", "labels", "list", "closed".
        r   )r   zWCould not import trello python package. Please install it with `pip install py-trello`.Nr(   ÚTRELLO_API_KEYr)   ÚTRELLO_TOKENr'   )Útrellor   ÚImportErrorr   )Úclsr   r(   r)   r+   r   Úexr   s           r$   Úfrom_credentialszTrelloLoader.from_credentials4   s±   € ð8	Ø+Ð+Ð+Ð+Ð+Ð+Ð+øÝð 	ð 	ð 	ÝðBñô ð ðøøøøð	øøøð
 ÐF�\¨)Ð5EÑFÔFˆØÐ>� g¨~Ñ>Ô>ˆØ� g°UÐ;Ñ;Ô;ˆØˆs�6˜:Ð0Ð0¨Ð0Ð0Ð0s   ‚	 ‰
(“#£(úIterator[Document]c              #  ó2  K  — 	 ddl m} n"# t          $ r}t          d¦  «        |‚d}~ww xY w|                      ¦   «         }d„ |                     ¦   «         D ¦   «         }|                     | j        ¬¦  «        }|D ]}|                      ||¦  «        V — ŒdS )zùLoads all cards from the specified Trello board.

        You can filter the cards, metadata and text included by using the optional
            parameters.

         Returns:
            A list of documents, one for each card in the board.
        r   ©ÚBeautifulSoupzK`beautifulsoup4` package not found, please run `pip install beautifulsoup4`Nc                ó(   — i | ]}|j         |j        “ŒS © )ÚidÚname)Ú.0Ú	list_items     r$   ú
<dictcomp>z*TrelloLoader.lazy_load.<locals>.<dictcomp>o   s   € ÐVÐVÐV°i�Y”\ 9¤>ÐVÐVÐVr&   )r   )Úbs4r8   r1   Ú
_get_boardÚ
list_listsÚ	get_cardsr   Ú_card_to_doc)r#   r8   r3   ÚboardÚ	list_dictÚcardsÚcards          r$   Ú	lazy_loadzTrelloLoader.lazy_load\   sÙ   è è € ð	Ø)Ð)Ð)Ð)Ð)Ð)Ð)øÝð 	ð 	ð 	Ýð0ñô ð ðøøøøð	øøøð —’Ñ!Ô!ˆàVÐVÀ5×CSÒCSÑCUÔCUÐVÑVÔVˆ	à—’¨DÔ,<�Ñ=Ô=ˆØð 	5ð 	5ˆDØ×#Ò# D¨)Ñ4Ô4Ð4Ð4Ð4Ð4ð	5ð 	5s   „ ‹
*•%¥*r   c                ó¢   ‡ — t          ˆ fd„‰ j                             ¦   «         D ¦   «         d ¦  «        }|st          d‰ j        › d�¦  «        ‚|S )Nc              3  ó<   •K  — | ]}|j         ‰j        k    ¯|V — Œd S )N)r<   r   )r=   Úbr#   s     €r$   ú	<genexpr>z*TrelloLoader._get_board.<locals>.<genexpr>x   s1   øè è € ÐOÐO�1°Q´V¸t¼Ò5NÐ5NˆQÐ5NÐ5NÐ5NÐ5NÐOÐOr&   zBoard `z` not found.)Únextr   Úlist_boardsÚ
ValueErrorr   )r#   rE   s   ` r$   rA   zTrelloLoader._get_boardu   sf   ø€ åØOÐOÐOÐO˜œ×/Ò/Ñ1Ô1ÐOÑOÔOÐQUñ
ô 
ˆð ð 	FÝÐD t¤ÐDÐDÐDÑEÔEÐEØˆr&   rH   r   rF   Údictr
   c                óÎ  ‡— ddl mŠ d}| j        r
|j        dz   }|j                             ¦   «         r&| ‰|j        d¦  «                             ¦   «         z  }| j        rF|j        D ]>}|j	        r5d„ |j	        D ¦   «         }|d|j        › d�d 
                    |¦  «        z   z  }Œ?| j        r.ˆfd„|j        D ¦   «         }|dd 
                    |¦  «        z   z  }|j        |j        |j        d	œ}d
| j        v rd„ |j        D ¦   «         |d
<   d| j        v r|j        |v r||j                 |d<   d| j        v r
|j        |d<   d| j        v r
|j        |d<   t)          ||¬¦  «        S )Nr   r7   Ú ú
Úlxmlc                ó4   — g | ]}|d          › d|d         › �‘ŒS )r<   ú:Ústater:   )r=   Úitems     r$   ú
<listcomp>z-TrelloLoader._card_to_doc.<locals>.<listcomp>Š   s;   € ð ð ð Ø>B˜4 œ<Ð9Ð9¨$¨w¬-Ð9Ð9ðð ð r&   c                ód   •— g | ],} ‰|d          d         d¦  «                              ¦   «         ‘Œ-S )ÚdataÚtextrU   )Úget_text)r=   Úcommentr8   s     €r$   rZ   z-TrelloLoader._card_to_doc.<locals>.<listcomp>‘   sJ   ø€ ð ð ð àð �˜g fœo¨fÔ5°vÑ>Ô>×GÒGÑIÔIðð ð r&   z	Comments:)Útitler;   Úurlr   c                ó   — g | ]	}|j         ‘Œ
S r:   )r<   )r=   Úlabels     r$   rZ   z-TrelloLoader._card_to_doc.<locals>.<listcomp>    s   € Ð!FÐ!FÐ!F° %¤*Ð!FÐ!FÐ!Fr&   r   r   r   )Úpage_contentÚmetadata)r@   r8   r   r<   ÚdescriptionÚstripr^   r   Ú
checklistsÚitemsÚjoinr   Úcommentsr;   ra   r   r   Úlist_idr   r   r
   )	r#   rH   rF   Útext_contentÚ	checklistri   rk   re   r8   s	           @r$   rD   zTrelloLoader._card_to_doc~   sð  ø€ Ø%Ð%Ð%Ð%Ð%Ð%àˆØÔ!ð 	,Øœ9 tÑ+ˆLØÔ×!Ò!Ñ#Ô#ð 	OØ˜M˜M¨$Ô*:¸FÑCÔC×LÒLÑNÔNÑNˆLØÔ!ð 	Oà!œ_ð Oð O�	Ø”?ð Oðð ØFOÄoðñ ô �Eð !Ð$;¨¬Ð$;Ð$;Ð$;¸d¿iºiÈÑ>NÔ>NÑ$NÑN�LøàÔ ð 	>ðð ð ð à#œ}ðñ ô ˆHð ˜K¨$¯)ª)°HÑ*=Ô*=Ñ=Ñ=ˆLð ”YØ”'Ø”8ð
ð 
ˆð �tÔ*Ð*Ð*Ø!FÐ!F¸$¼+Ð!FÑ!FÔ!FˆH�XÑØ�TÔ(Ð(Ð(ØŒ|˜yÐ(Ð(Ø#,¨T¬\Ô#:�˜Ñ Ø�tÔ*Ð*Ð*Ø!%¤ˆH�XÑØ˜Ô,Ð,Ð,Ø#'¤=ˆH�ZÑ å \¸HÐEÑEÔEÐEr&   )r   r   r   r   r   r   r   r   r   r   r   r    r   r!   )
r   r   r(   r*   r)   r*   r+   r   r,   r   )r,   r5   )r,   r   )rH   r   rF   rQ   r,   r
   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r%   Úclassmethodr4   rI   rA   rD   r:   r&   r$   r   r      s¿   € € € € € Ø+Ð+ð #'Ø!%Ø"&Ø8=Ø*Rð!'ð !'ð !'ð !'ð !'ð !'ðF ð
 "&Ø#ð%1ð %1ð %1ð %1ð %1ñ „[ð%1ðN5ð 5ð 5ð 5ð2ð ð ð ð+Fð +Fð +Fð +Fð +Fð +Fr&   r   N)Ú
__future__r   Útypingr   r   r   r   r   r	   Úlangchain_core.documentsr
   Úlangchain_core.utilsr   Ú)langchain_community.document_loaders.baser   r0   r   r   r   r   r:   r&   r$   ú<module>ry      së   ðØ "Ð "Ð "Ð "Ð "Ð "à IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ià -Ð -Ð -Ð -Ð -Ð -Ø -Ð -Ð -Ð -Ð -Ð -à @Ð @Ð @Ð @Ð @Ð @àð 1Ø0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ð0ð[Fð [Fð [Fð [Fð [F�:ñ [Fô [Fð [Fð [Fð [Fr&   