
    [jd                         d dl Z d dl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 d dlmZ  G d de
          Z G d	 d
e          Z G d de          Z G d de          Z G d de          ZdS )    N)DictOptionalSequenceSetUnion)show_unknown_key_warning)
JsonObject)Block)UrlSourceElementc                       e Zd ZdZdhZ ej        e           Zdddee	         fdZ
edeed f         ded          fd            ZdS )	Chunkz|
    Chunk for streaming messages.

    https://docs.slack.dev/messaging/sending-and-scheduling-messages#text-streaming
    typeNr   c                    || _         d S )Nr   )selfr   s     c/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/slack_sdk/models/messages/chunk.py__init__zChunk.__init__   s    
 			    chunkreturnc                    |d S t          |t                    r|S d|v r|d         }|t          j        k    rt          di |S |t          j        k    rt	          di |S |t
          j        k    rt          di |S |t          j        k    rt          di |S | j                            d| d           d S | j                            d| d           d S )Nr   z$Unknown chunk detected and skipped () )	
isinstancer   BlocksChunkr   MarkdownTextChunkPlanUpdateChunkTaskUpdateChunkloggerwarning)clsr   r   s      r   parsezChunk.parse   s   =4u%% 	LV};+++&/////.333,55u555_111*33U333_111*33U333J&&'Ve'V'V'VWWW4
""#R%#R#R#RSSStr   )__name__
__module____qualname____doc__
attributeslogging	getLoggerr   r   strr   classmethodr   r   r"   r   r   r   r   r   
   s          JWx((F
 #   sm    %g. 8G3D    [  r   r   c                   X     e Zd ZdZedee         f fd            Zdedef fdZ	 xZ
S )r   markdown_textr   c                 R    t                      j                            dh          S )Ntextsuperr'   unionr   	__class__s    r   r'   zMarkdownTextChunk.attributes7   s     ww!''111r   r/   othersc                    t                                          | j                   t          | |           || _        dS )zUsed for streaming text content with markdown formatting support.

        https://docs.slack.dev/messaging/sending-and-scheduling-messages#text-streaming
        r   N)r1   r   r   r   r/   )r   r/   r5   r4   s      r   r   zMarkdownTextChunk.__init__;   s=     	di((( v...			r   r#   r$   r%   r   propertyr   r*   r'   r   r   __classcell__r4   s   @r   r   r   4   s        D2CH 2 2 2 2 2 X2  	         r   r   c                   X     e Zd ZdZedee         f fd            Zdedef fdZ	 xZ
S )r   plan_updater   c                 R    t                      j                            dh          S )Ntitler0   r3   s    r   r'   zPlanUpdateChunk.attributesN   s     ww!''	222r   r>   r5   c                    t                                          | j                   t          | |           || _        dS )zUsed for displaying an updated title of a plan.

        https://docs.slack.dev/messaging/sending-and-scheduling-messages#text-streaming
        r   N)r1   r   r   r   r>   )r   r>   r5   r4   s      r   r   zPlanUpdateChunk.__init__R   s=     	di((( v...


r   r7   r:   s   @r   r   r   K   s        D3CH 3 3 3 3 3 X3  	         r   r   c                        e Zd ZdZedee         f fd            Zdddddededed	ee         d
ee         dee	e
eef                           def fdZ xZS )r   task_updater   c                 T    t                      j                            h d          S )N>   idr>   outputstatusdetailssourcesr0   r3   s    r   r'   zTaskUpdateChunk.attributese   s1    ww!''  	
 	
 		
r   N)rF   rD   rG   rC   r>   rE   rF   rD   rG   r5   c                    t                                          | j                   t          | |           || _        || _        || _        || _        || _        || _	        dS )zUsed for displaying task progress in a timeline-style UI.

        https://docs.slack.dev/messaging/sending-and-scheduling-messages#text-streaming
        r   N)
r1   r   r   r   rC   r>   rE   rF   rD   rG   )	r   rC   r>   rE   rF   rD   rG   r5   r4   s	           r   r   zTaskUpdateChunk.__init__r   s`     	di((( v...
r   )r#   r$   r%   r   r8   r   r*   r'   r   r   r   r   r   r   r9   r:   s   @r   r   r   b   s        D

CH 

 

 

 

 

 X

$ "& $EI    	
  #  (5/?)?#@AB          r   r   c                   t     e Zd ZdZedee         f fd            Zdee	e
ef                  de
f fdZ xZS )r   blocksr   c                 R    t                      j                            dh          S )NrJ   r0   r3   s    r   r'   zBlocksChunk.attributes   s     ww!''
333r   r5   c                    t                                          | j                   t          | |           || _        dS )zUsed for passing an array of blocks within a streaming message.

        https://docs.slack.dev/messaging/sending-and-scheduling-messages#text-streaming
        r   N)r1   r   r   r   rJ   )r   rJ   r5   r4   s      r   r   zBlocksChunk.__init__   s=     	di((( v...r   )r#   r$   r%   r   r8   r   r*   r'   r   r   r   r
   r   r9   r:   s   @r   r   r      s        D4CH 4 4 4 4 4 X4 tU{+, 	         r   r   )r(   typingr   r   r   r   r   slack_sdk.modelsr   slack_sdk.models.basic_objectsr	   slack_sdk.models.blocksr
   &slack_sdk.models.blocks.block_elementsr   r   r   r   r   r   r   r   r   <module>rR      s^    7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 5 5 5 5 5 5 5 5 5 5 5 ) ) ) ) ) ) C C C C C C' ' ' ' 'J ' ' 'T       .    e   .' ' ' ' 'e ' ' 'T    %     r   