
    Be
                        d Z ddlmZ ddlZddlmZmZmZmZm	Z	 ddl
Z
ddlmZ erddlmZ ddlmZ dd	lmZ  G d
 de          ZdS )z!
Renders Streamz Stream objects.
    )annotationsN)TYPE_CHECKINGAnyClassVarMappingOptional   )ReplacementPane)Document)Model)Commc                       e Zd ZU dZ ej        dd          Z ej        ddd          Zd	d	d
Z	de
d<   d$ fd	Z ej        dddd          d             Z	 	 d%d& fdZd$d' fdZed(d#            Z xZS ))Streamzay  
    The `Streamz` pane renders streamz `Stream` objects emitting arbitrary
    objects, unlike the DataFrame pane which specifically handles streamz
    DataFrame and Series objects and exposes various formatting objects.

    Reference: https://panel.holoviz.org/reference/panes/Streamz.html

    :Example:

    >>> Streamz(some_streamz_stream_object, always_watch=True)
    Fz2
        Whether to watch even when not displayed.)defaultdocg?)r   Nz-
        The minimum interval between events.)r   boundsr   N)
rate_limitalways_watchz"ClassVar[Mapping[str, str | None]]_renamec                     t                      j        |fi | d | _        | j        r|                                  d S d S N)super__init___streamr   _setup_stream)selfobjectparams	__class__s      2lib/python3.11/site-packages/panel/pane/streamz.pyr   zStreamz.__init__+   sV    **6*** 	!     	! 	!    r   r   r   T)watchc                z   | j         | j        r	| j        rd S | j        r | j                                         d | _        | j        j        s| j        ri| j                                                             | j                                                  | _        | j        	                    | j
                   d S d S r   )r   r   r   destroy_pane_modelslatestr   gathersink_update_inner)r   s    r    r   zStreamz._setup_stream1   s    ;4#4F\ 	 L  """DL: 	2!2 	2;--//::4?KKRRTTDLLd011111	2 	2r!   r   r   rootOptional[Model]parentcommOptional[Comm]returnr   c                x    t                                          ||||          }|                                  |S r   )r   
_get_modelr   )r   r   r+   r-   r.   modelr   s         r    r2   zStreamz._get_model<   s9     ""3fd;;r!   Model | Nonec                    t                                          |           | j        j        s)| j        r$| j                                         d | _        d S d S d S r   )r   _cleanupr%   r&   r   r$   )r   r+   r   s     r    r6   zStreamz._cleanupD   sd    z! 	 dl 	 L  """DLLL	  	  	  	 r!   objr   float | bool | Nonec                N    dt           j        v rddlm} t	          ||          S dS )Nstreamzr   )StreamF)sysmodulesr:   r;   
isinstance)clsr7   r;   s      r    applieszStreamz.appliesN   s6    ##&&&&&&c6***ur!   r   )NNN)
r   r   r+   r,   r-   r,   r.   r/   r0   r   )r+   r4   )r7   r   r0   r8   )__name__
__module____qualname____doc__paramBooleanr   Numberr   r   __annotations__r   dependsr   r2   r6   classmethodr@   __classcell__)r   s   @r    r   r      sL        
 
 !5= 55 6 6 6L c) B0 1 1 1J BFW[2\2\G\\\\! ! ! ! ! ! U]>8\FFF2 2 GF2 6:?C                       [    r!   r   )rD   
__future__r   r<   typingr   r   r   r   r   rE   baser
   bokeh.documentr   bokeh.modelr   pyviz_commsr   r    r!   r    <module>rS      s    # " " " " " 



               ! ! ! ! ! ! !''''''!!!!!!      = = = = =o = = = = =r!   