
    d5                       d Z ddlmZ ddlZ ej        e          ZddlmZm	Z	 ddl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZm Z  d	d
l!m"Z"m#Z# d	dl$m%Z%m&Z& d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, G d de#          Z-dS )z

    )annotationsN   )CoordinateUnits	Dimension)BoolCoordinateLikeEitherEnumFactorFloatIncludeInstanceInstanceDefaultNullNullableOverrideSeq	UnitsSpecfield)BorderRadius)	LinePropsScalarFillPropsScalarHatchPropsScalarLineProps   )
AnnotationDataAnnotation)	ArrowHeadTeeHead)BandBoxAnnotationPolyAnnotationSlopeSpanWhiskerc                      e Zd ZdZd* fdZ eeed          Z e	e
dd	          Z eeeed
          Z e	e
dd	          Z eeed          Z e	e
dd	          Z eeed          Z e	e
dd	          Z edd	          Z edd	          Z e	dddddddddd	
  
        Z e	dddddd	          Z edd	          Z eed           Z eed           Z eed           Z  eed!d"#          Z! eed!d"#          Z" eed!d"#          Z# e$d$%          Z% e$d&%          Z& e$d'%          Z' e$d(%          Z( e$d)%          Z) e$d&%          Z* e$d)%          Z+ e$d(%          Z, xZ-S )+r!   z Render a shaded rectangular region as an annotation.

    See :ref:`ug_basic_annotations_box_annotations` for information on plotting box annotations.

    returnNonec                :     t                      j        |i | d S Nsuper__init__selfargskwargs	__class__s      Alib/python3.11/site-packages/bokeh/models/annotations/geometry.pyr-   zBoxAnnotation.__init__M   %    $)&)))))    zC
    The x-coordinates of the left edge of the box annotation.
    helpdataz[
    The unit type for the left attribute. Interpreted as |data units| by
    default.
    defaultr7   zD
    The x-coordinates of the right edge of the box annotation.
    z\
    The unit type for the right attribute. Interpreted as |data units| by
    default.
    zE
    The y-coordinates of the bottom edge of the box annotation.
    z]
    The unit type for the bottom attribute. Interpreted as |data units| by
    default.
    zB
    The y-coordinates of the top edge of the box annotation.
    zZ
    The unit type for the top attribute. Interpreted as |data units| by
    default.
    r   z
    Allows the box to have rounded corners.

    .. note::
        This property is experimental and may change at any point.
    Fz
    Allows to interactively modify the geometry of this box.

    .. note::
        This property is experimental and may change at any point.
    noneleftrighttopbottomxyalla  
    If `editable` is set, this property allows to configure which
    combinations of edges are allowed to be moved, thus allows
    restrictions on resizing of the box.

    .. note::
        This property is experimental and may change at any point.
    bothz
    If `editable` is set, this property allows to configure in which
    directions the box can be moved.

    .. note::
        This property is experimental and may change at any point.
    z
    Indicates whether the box is resizable around its center or its corners.

    .. note::
        This property is experimental and may change at any point.
    z(
    The {prop} values for the box.
    hoverz;
    The {prop} values for the box when hovering over.
    prefixr7   #ccccccr:   333333?#fff9ba皙?Nr'   r(   ).__name__
__module____qualname____doc__r-   r	   r   r   r<   r
   r   
left_unitsr   r=   right_unitsr?   bottom_unitsr>   	top_unitsr   border_radiusr   editable	resizablemovable	symmetricr   r   
line_propsr   
fill_propsr   hatch_propshover_line_propshover_fill_propshover_hatch_propsr   
line_color
line_alpha
fill_color
fill_alphahover_line_colorhover_line_alphahover_fill_colorhover_fill_alpha__classcell__r2   s   @r3   r!   r!   E   s]        * * * * * * 6$ . 	 	 	D ov = 	 	 	J
 F4 7 	 	 	E $ > 	 	 	K
 VD. 0 	 	 	F 4 ? 	 	 	L
 &~ - 	 	 	C _f < 	 	 	I
 !L 2 	 	 	M tE ) 	 	 	H VVWeXsCX] e 	 	 	I d63VV C 	 	 	G U * 	 	 	I  0 	 	 	J  0 	 	 	J '* 2 	 	 	K ww F 	 	 	 ww F 	 	 	   0 H 	 	 	 ),,,J#&&&J),,,J#&&&Jx---x,,,x---x,,,r5   r!   c                  d    e Zd ZdZd fdZ e ed          edd          Z e ed	          edd
          Z	 e ed          edd          Z
 eedd          Z eed          Z ed          Z ed          Z eed          Z ed          Z ed          Z xZS )r    z Render a filled area band along a dimension.

    See :ref:`ug_basic_annotations_bands` for information on plotting bands.

    r'   r(   c                :     t                      j        |i | d S r*   r+   r.   s      r3   r-   zBand.__init__   r4   r5   lowerr8   zG
    The coordinates of the lower portion of the filled area band.
    r:   
units_enumunits_defaultr7   upperzG
    The coordinates of the upper portion of the filled area band.
    baseC
    The orthogonal coordinates of the upper and lower values.
    heightz
    The direction of the band can be specified by setting this property
    to "height" (``y`` direction) or "width" (``x`` direction).
    r9   z)
    The {prop} values for the band.
    r6   rI   rH   rG   rK   rJ   rL   )rM   rN   rO   rP   r-   r   r   r   rl   rp   rq   r
   r   	dimensionr   r   rZ   r   ra   r`   r   r[   rc   rb   rh   ri   s   @r3   r    r       sk        * * * * * * IeeGnnX^ f 	 	 	E IeeGnnX^ f 	 	 	E 9UU6]]V\ d 	 	 	D Y 8 	 	 	I
  0 	 	 	J #&&&J),,,J 0 	 	 	J #&&&J),,,JJJJJr5   r    c                      e Zd ZdZd fdZ eeg d          Z ee	dd          Z
 eeg d	          Z ee	dd
          Z edd          Z eed          Z eed          Z eed          Z eedd          Z eedd          Z eedd          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z ed          Z  ed          Z! xZ"S )r"   z Render a shaded polygonal region as an annotation.

    See :ref:`ug_basic_annotations_polygon_annotations` for information on
    plotting polygon annotations.

    r'   r(   c                :     t                      j        |i | d S r*   r+   r.   s      r3   r-   zPolyAnnotation.__init__   r4   r5   z2
    The x-coordinates of the region to draw.
    r9   r8   z]
    The unit type for the ``xs`` attribute. Interpreted as |data units| by
    default.
    z2
    The y-coordinates of the region to draw.
    z]
    The unit type for the ``ys`` attribute. Interpreted as |data units| by
    default.
    Fz
    Allows to interactively modify the geometry of this polygon.

    .. note::
        This property is experimental and may change at any point.
    z,
    The {prop} values for the polygon.
    r6   rD   z?
    The {prop} values for the polygon when hovering over.
    rE   rG   rH   rI   rJ   rK   NrL   )#rM   rN   rO   rP   r-   r   r   xsr
   r   xs_unitsysys_unitsr   rV   r   r   rZ   r   r[   r   r\   r]   r^   r_   r   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   s   @r3   r"   r"      s@        * * * * * * 
^R / 
	 
	 
	B tOV ; 	 	 	H
 
^R / 
	 
	 
	B tOV ; 	 	 	H
 tE ) 	 	 	H  0 	 	 	J  0 	 	 	J '* 2 	 	 	K ww F 	 	 	 ww F 	 	 	   0 H 	 	 	 ),,,J#&&&J),,,J#&&&Jx---x,,,x---x,,,r5   r"   c                  B    e Zd ZdZd fdZ eed          Z eed          Z e	e
d          Z e	ed	d
          Z e	ed	d
          Z e	edd          Z e	edd          Z ed          Z ed          Z ed          Z ed          Z xZS )r#   z| Render a sloped line as an annotation.

    See :ref:`ug_basic_annotations_slope` for information on plotting slopes.

    r'   r(   c                :     t                      j        |i | d S r*   r+   r.   s      r3   r-   zSlope.__init__<  r4   r5   z3
    The gradient of the line, in |data units|
    r6   z6
    The y intercept of the line, in |data units|
    z)
    The {prop} values for the line.
    abovez8
    The {prop} values for the area above the line.
    rE   belowz8
    The {prop} values for the area below the line.
    NrH   rK   rL   )rM   rN   rO   rP   r-   r   r   gradienty_interceptr   r   rZ   r   above_fill_propsr   above_hatch_propsbelow_fill_propsbelow_hatch_propsr   above_fill_colorabove_fill_alphabelow_fill_colorbelow_fill_alpharh   ri   s   @r3   r#   r#   4  sx        * * * * * * x % 	 	 	H (5 ( 	 	 	K  0 	 	 	J ww F 	 	 	   0 H 	 	 	 ww F 	 	 	   0 H 	 	 	  x---x,,,x---x,,,r5   r#   c                       e Zd ZdZd fdZ eed          Z ee	dd	          Z
 eed
d	          Z edd	          Z eed          Z eedd          Z ed          Z ed          Z xZS )r$   z Render a horizontal or vertical line span.

    See :ref:`ug_basic_annotations_spans` for information on plotting spans.

    r'   r(   c                :     t                      j        |i | d S r*   r+   r.   s      r3   r-   zSpan.__init__i  r4   r5   z8
    The location of the span, along ``dimension``.
    r6   r8   ze
    The unit type for the location attribute. Interpreted as "data space"
    units by default.
    r9   widthz
    The direction of the span can be specified by setting this property
    to "height" (``y`` direction) or "width" (``x`` direction).
    Fz
    Allows to interactively modify the geometry of this span.

    .. note::
        This property is experimental and may change at any point.
    z)
    The {prop} values for the span.
    rD   z<
    The {prop} values for the span when hovering over.
    rE   NrH   rI   rL   )rM   rN   rO   rP   r-   r   r   locationr
   r   location_unitsr   rt   r   rV   r   r   rZ   r]   r   rd   re   rh   ri   s   @r3   r$   r$   a  s*        * * * * * * x . 	 	 	H T/6 A 	 	 	N
 Y 7 	 	 	I
 tE ) 	 	 	H  0 	 	 	J ww F 	 	 	  x---x,,,r5   r$   c                      e Zd ZdZd fdZ e ed          edd          Z e	 e
e           eed	
          d          Z e ed          edd          Z e	 e
e           eed	
          d          Z e ed          edd          Z eedd          Z eed          Z ed          Z xZS )r%   z~ Render a whisker along a dimension.

    See :ref:`ug_basic_annotations_whiskers` for information on plotting whiskers.

    r'   r(   c                :     t                      j        |i | d S r*   r+   r.   s      r3   r-   zWhisker.__init__  r4   r5   rl   r8   z;
    The coordinates of the lower end of the whiskers.
    rm   
   )sizez$
    Instance of ``ArrowHead``.
    r9   rp   z;
    The coordinates of the upper end of the whiskers.
    rq   rr   rs   z
    The direction of the whisker can be specified by setting this property
    to "height" (``y`` direction) or "width" (``x`` direction).
    z1
    The {prop} values for the whisker body.
    r6   underlayrH   rL   )rM   rN   rO   rP   r-   r   r   r   rl   r   r   r   r   r   
lower_headrp   
upper_headrq   r
   r   rt   r   r   rZ   r   levelrh   ri   s   @r3   r%   r%     s        * * * * * * IeeGnnX^ f 	 	 	E ((9--wUW7X7X7X ` 	 	 	J IeeGnnX^ f 	 	 	E ((9--wUW7X7X7X ` 	 	 	J 9UU6]]V\ d 	 	 	D Y 8 	 	 	I
  * 	 	 	J HZ(((EEEEEr5   r%   ).rP   
__future__r   logging	getLoggerrM   log
core.enumsr   r   core.propertiesr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   core.property_aliasesr   core.property_mixinsr   r   r   r   
annotationr   r   arrowsr   r   __all__r!   r    r"   r#   r$   r%    r5   r3   <module>r      s    # " " " " " g!! 5 4 4 4 4 4 4 4                                 " 2 1 1 1 1 1            3 2 2 2 2 2 2 2 & & & & & & & &w- w- w- w- w-J w- w- w-r*- *- *- *- *-> *- *- *-ZG- G- G- G- G-Z G- G- G-R+- +- +- +- +-J +- +- +-Z)- )- )- )- )-: )- )- )-V() () () () ()n () () () () ()r5   