
    hje9                       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 ddlmZ ddl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'          Z0 G d de'          Z1 G d de(          Z2dS )z

    )annotationsN   )CoordinateUnits	Dimension)BoolCoordinateLikeEnumFloatIncludeInstanceInstanceDefaultNullNullableOverrideSeq	UnitsSpecfield)BorderRadius)	LinePropsScalarFillPropsScalarHatchPropsScalarLineProps   )
Coordinate)FrameBottom	FrameLeft
FrameRightFrameTop   )
AnnotationDataAnnotation)	ArrowHeadTeeHead)BandBoxAnnotationPolyAnnotationSlopeSpanWhiskerc                      e Zd ZdZd6 fdZ ed d                              ed           Z ed	 d
                              ed           Z	 ed d                              ed           Z
 ed d                              ed           Z eedd          Z eedd          Z eedd          Z eedd          Z eed          Z eed          Z eed          Z ee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(d01          Z) e(d21          Z* e(d31          Z+ e(d41          Z, e(d51          Z- e(d21          Z. e(d51          Z/ e(d41          Z0 xZ1S )7r%   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.pyr1   zBoxAnnotation.__init__R   %    $)&)))))    c                     t                      S r.   r    r9   r7   <lambda>zBoxAnnotation.<lambda>U   
    ikk r9   zC
    The x-coordinates of the left edge of the box annotation.
    defaulthelpc                    t                      S r.   r;   _values    r7   r=   zBoxAnnotation.<lambda>W   r>   r9   c                     t                      S r.   r   r<   r9   r7   r=   zBoxAnnotation.<lambda>Y   s
    z|| r9   zD
    The x-coordinates of the right edge of the box annotation.
    c                    t                      S r.   rF   rC   s    r7   r=   zBoxAnnotation.<lambda>[   s
    jll r9   c                     t                      S r.   r   r<   r9   r7   r=   zBoxAnnotation.<lambda>]   s
    XZZ r9   zB
    The y-coordinates of the top edge of the box annotation.
    c                    t                      S r.   rI   rC   s    r7   r=   zBoxAnnotation.<lambda>_   s
    hjj r9   c                     t                      S r.   r   r<   r9   r7   r=   zBoxAnnotation.<lambda>a   s
     r9   zE
    The y-coordinates of the bottom edge of the box annotation.
    c                    t                      S r.   rL   rC   s    r7   r=   zBoxAnnotation.<lambda>c   s
    kmm r9   dataz[
    The unit type for the left attribute. Interpreted as |data units| by
    default.
    z\
    The unit type for the right attribute. Interpreted as |data units| by
    default.
    zZ
    The unit type for the top attribute. Interpreted as |data units| by
    default.
    z]
    The unit type for the bottom attribute. Interpreted as |data units| by
    default.
    z
    Optional left limit for box movement.

    .. note::
        This property is experimental and may change at any point.
    rA   z
    Optional right limit for box movement.

    .. note::
        This property is experimental and may change at any point.
    z
    Optional top limit for box movement.

    .. note::
        This property is experimental and may change at any point.
    z
    Optional bottom limit for box movement.

    .. note::
        This property is experimental and may change at any point.
    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.
    prefixrA   #ccccccr@   333333?#fff9ba皙?Nr+   r,   )2__name__
__module____qualname____doc__r1   r   acceptsr   rQ   rR   rS   rT   r	   r   
left_unitsright_units	top_unitsbottom_unitsr   
left_limitright_limit	top_limitbottom_limitr   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__r6   s   @r7   r%   r%   J   s7        * * * * * * :11 9 	 	 		11	2	2 	 J33 ; 	 	 		22	3	3 
 *// 7 	 	 		00	1	1  Z 5 5 = 	 	 		33	4	4  ov = 	 	 	J
 $ > 	 	 	K
 _f < 	 	 	I
 4 ? 	 	 	L
 * , 	 	 	J (: - 	 	 	K  + 	 	 	I 8J . 	 	 	L !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,,,r9   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/   r2   s      r7   r1   zBand.__init__   r8   r9   lowerrN   zG
    The coordinates of the lower portion of the filled area band.
    r@   
units_enumunits_defaultrA   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).
    r?   z)
    The {prop} values for the band.
    rO   r^   r]   r\   r`   r_   ra   )rb   rc   rd   re   r1   r   r   r   r   r   r   r	   r   	dimensionr   r   rt   r   r{   rz   r   ru   r}   r|   r   r   s   @r7   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),,,JJJJJr9   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/   r2   s      r7   r1   zPolyAnnotation.__init__  r8   r9   z2
    The x-coordinates of the region to draw.
    r?   rN   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.
    rO   rY   z?
    The {prop} values for the polygon when hovering over.
    rZ   r\   r]   r^   r_   r`   Nra   )#rb   rc   rd   re   r1   r   r   xsr	   r   xs_unitsysys_unitsr   rp   r   r   rt   r   ru   r   rv   rw   rx   ry   r   rz   r{   r|   r}   r~   r   r   r   r   r   s   @r7   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,,,r9   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/   r2   s      r7   r1   zSlope.__init__]  r8   r9   z3
    The gradient of the line, in |data units|
    rO   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.
    rZ   belowz8
    The {prop} values for the area below the line.
    Nr]   r`   ra   )rb   rc   rd   re   r1   r   r
   gradienty_interceptr   r   rt   r   above_fill_propsr   above_hatch_propsbelow_fill_propsbelow_hatch_propsr   above_fill_colorabove_fill_alphabelow_fill_colorbelow_fill_alphar   r   s   @r7   r'   r'   U  sx        * * * * * * x % 	 	 	H (5 ( 	 	 	K  0 	 	 	J ww F 	 	 	   0 H 	 	 	 ww F 	 	 	   0 H 	 	 	  x---x,,,x---x,,,r9   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/   r2   s      r7   r1   zSpan.__init__  r8   r9   z8
    The location of the span, along ``dimension``.
    rO   rN   ze
    The unit type for the location attribute. Interpreted as "data space"
    units by default.
    r?   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.
    rY   z<
    The {prop} values for the span when hovering over.
    rZ   Nr]   r^   ra   )rb   rc   rd   re   r1   r   r   locationr	   r   location_unitsr   r   r   rp   r   r   rt   rw   r   r~   r   r   r   s   @r7   r(   r(     s*        * * * * * * x . 	 	 	H T/6 A 	 	 	N
 Y 7 	 	 	I
 tE ) 	 	 	H  0 	 	 	J ww F 	 	 	  x---x,,,r9   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/   r2   s      r7   r1   zWhisker.__init__  r8   r9   r   rN   z;
    The coordinates of the lower end of the whiskers.
    r   
   )sizez$
    Instance of ``ArrowHead``.
    r?   r   z;
    The coordinates of the upper end of the whiskers.
    r   r   r   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.
    rO   underlayr]   ra   )rb   rc   rd   re   r1   r   r   r   r   r   r   r"   r   r#   
lower_headr   
upper_headr   r	   r   r   r   r   rt   r   levelr   r   s   @r7   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(((EEEEEr9   r)   )3re   
__future__r   logging	getLoggerrb   log
core.enumsr   r   core.propertiesr   r   r	   r
   r   r   r   r   r   r   r   r   r   core.property_aliasesr   core.property_mixinsr   r   r   r   common.propertiesr   coordinatesr   r   r   r   
annotationr    r!   arrowsr"   r#   __all__r%   r$   r&   r'   r(   r)   r<   r9   r7   <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 & & & & & & & &S- S- S- S- S-J S- S- S-j*- *- *- *- *-> *- *- *-ZG- G- G- G- G-Z G- G- G-R+- +- +- +- +-J +- +- +-Z)- )- )- )- )-: )- )- )-V() () () () ()n () () () () ()r9   