
    ic&                     ^   d dl mZ er5d dl mZmZ ed   Z G d ded      Z G d d	ed      Z G d
 ded      Znd dl mZ e	Ze
e	ef   xZxZZ G d d      Z G d d      Z G d d      Z G d d      Z G d d      Z G d de      Z G d de      Z G d de      Z G d d      Zy)     )TYPE_CHECKING)Literal	TypedDict)portrait	landscapec                   6    e Zd ZU eed<   eed<   eed<   eed<   y)_MarginOptsleftrighttopbottomN__name__
__module____qualname__float__annotations__     h/var/www/html/BatchJob/venv/lib/python3.12/site-packages/selenium/webdriver/common/print_page_options.pyr	   r	      s    
r   r	   F)totalc                   "    e Zd ZU eed<   eed<   y)	_PageOptswidthheightNr   r   r   r   r   r       s    r   r   c                   Z    e Zd ZU eed<   eed<   eed<   eed<   eed<   eed<   e	e
   ed<   y)	
_PrintOptsmarginpage
backgroundorientationscaleshrinkToFit
pageRangesN)r   r   r   r	   r   r   boolOrientationr   liststrr   r   r   r   r   $   s.      Ir   r   )Anyc                   0    e Zd ZdZd Zdedz  fdZddZy)_PageSettingsDescriptorz8Descriptor which validates `height` and 'width' of page.c                     || _         y Nnameselfr/   s     r   __init__z _PageSettingsDescriptor.__init__7   	    	r   returnNc                 N    |j                   j                  | j                  d       S r-   )_pagegetr/   r1   objclss      r   __get__z_PageSettingsDescriptor.__get__:   s    yy}}TYY--r   c                      t        |d      | j                  |       ||j                  | j                  <   |j                  |j                  d<   y )N_validate_num_propertyr   )getattrr/   r6   _print_optionsr1   r9   values      r   __set__z_PageSettingsDescriptor.__set__=   s@    .-.tyy%@$		$))%(YY6"r   r4   Nr   r   r   __doc__r2   r   r;   rB   r   r   r   r+   r+   4   s    B.54< ./r   r+   c                   0    e Zd ZdZd Zdedz  fdZddZy)_MarginSettingsDescriptorz`Descriptor which validates below attributes.

    - top
    - bottom
    - left
    - right
    c                     || _         y r-   r.   r0   s     r   r2   z"_MarginSettingsDescriptor.__init__L   r3   r   r4   Nc                 N    |j                   j                  | j                  d       S r-   )_marginr7   r/   r8   s      r   r;   z!_MarginSettingsDescriptor.__get__O   s    {{tyy$//r   c                      t        |d      d| j                   |       ||j                  | j                  <   |j                  |j                  d<   y )Nr=   zMargin r   )r>   r/   rJ   r?   r@   s      r   rB   z!_MarginSettingsDescriptor.__set__R   sG    .-./DeL!&DII'*{{8$r   rC   rD   r   r   r   rG   rG   C   s!    054< 03r   rG   c                   0    e Zd ZdZd Zdedz  fdZddZy)_ScaleDescriptorz'Scale descriptor which validates scale.c                     || _         y r-   r.   r0   s     r   r2   z_ScaleDescriptor.__init__[   r3   r   r4   Nc                 L    |j                   j                  | j                        S r-   r?   r7   r/   r8   s      r   r;   z_ScaleDescriptor.__get__^   s    !!%%dii00r   c                      t        |d      | j                  |       |dk  s|dkD  rt        d      ||j                  | j                  <   y )Nr=   g?   z*Value of scale should be between 0.1 and 2)r>   r/   
ValueErrorr?   r@   s      r   rB   z_ScaleDescriptor.__set__a   sG    .-.tyy%@3;%!)IJJ(-499%r   rC   rD   r   r   r   rM   rM   X   s    1154< 1.r   rM   c                   8    e Zd ZdZddgZd Zdedz  fdZd	dZy)
_PageOrientationDescriptorz?PageOrientation descriptor which validates orientation of page.r   r   c                     || _         y r-   r.   r0   s     r   r2   z#_PageOrientationDescriptor.__init__m   r3   r   r4   Nc                 N    |j                   j                  | j                  d       S r-   rP   r8   s      r   r;   z"_PageOrientationDescriptor.__get__p       !!%%dii66r   c                     || j                   vrt        d| j                          ||j                  | j                  <   y )Nz!Orientation value must be one of )ORIENTATION_VALUESrS   r?   r/   r@   s      r   rB   z"_PageOrientationDescriptor.__set__s   s>    ///@AXAX@YZ[[(-499%r   rC   )	r   r   r   rE   rZ   r2   r&   r;   rB   r   r   r   rU   rU   h   s+    I$k27;#5 7.r   rU   c                   *    e Zd ZdZdefdZd ZddZy)_ValidateTypeDescriptorzEBase Class Descriptor which validates type of any subclass attribute.expected_typec                      || _         || _        y r-   )r/   r]   )r1   r/   r]   s      r   r2   z _ValidateTypeDescriptor.__init__|   s    	*r   c                 N    |j                   j                  | j                  d       S r-   rP   r8   s      r   r;   z_ValidateTypeDescriptor.__get__   rX   r   Nc                     t        || j                        s.t        | j                   d| j                  j                         ||j
                  | j                  <   y )Nz should be of type )
isinstancer]   rS   r/   r   r?   r@   s      r   rB   z_ValidateTypeDescriptor.__set__   sN    %!3!34		{*=d>P>P>Y>Y=Z[\\(-499%r   rC   )r   r   r   rE   typer2   r;   rB   r   r   r   r\   r\   y   s    O+D +7.r   r\   c                   "     e Zd ZdZ fdZ xZS )_ValidateBackGroundz&Expected type of background attribute.c                 .    t         |   |t               y r-   superr2   r%   r1   r/   	__class__s     r   r2   z_ValidateBackGround.__init__       t$r   r   r   r   rE   r2   __classcell__ri   s   @r   rd   rd      s    0% %r   rd   c                   "     e Zd ZdZ fdZ xZS )_ValidateShrinkToFitz)Expected type of shrink to fit attribute.c                 .    t         |   |t               y r-   rf   rh   s     r   r2   z_ValidateShrinkToFit.__init__   rj   r   rk   rm   s   @r   ro   ro      s    3% %r   ro   c                   "     e Zd ZdZ fdZ xZS )_ValidatePageRangesz'Expected type of page ranges attribute.c                 .    t         |   |t               y r-   )rg   r2   r'   rh   s     r   r2   z_ValidatePageRanges.__init__   rj   r   rk   rm   s   @r   rr   rr      s    1% %r   rr   c                   2   e Z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	  ed	      Z	  ed
      Z	  ed      Z	 dddZdddZdddZdddZddZdefdZdeddfdZdededdfdZ y)PrintOptionsr   r   r   r   r
   r   r"   r!   r    r#   r$   g33333=@g      5@r   r   gHzA@gףp=
5@gq=
ף;@gףp=
E@r4   Nc                 x    i | _         t        j                  d   t        j                  d   d| _        i | _        y )Nr   r   rv   )r?   ru   A4r6   rJ   r1   s    r   r2   zPrintOptions.__init__I  s4    *,"ooh/!__W-!

 %'r   c                     | j                   S )z+Returns a hash of print options configured.)r?   ry   s    r   to_dictzPrintOptions.to_dictQ  s    """r   	page_sizec                     | j                  d|d          | j                  d|d          |d   | j                  d<   |d   | j                  d<   | j                  | j                  d<   y)ah  Sets the page size to predefined or custom dimensions.

        Args:
            page_size: A dictionary containing 'height' and 'width' keys with
                respective values in cm.

        Example:
            self.set_page_size(PageSize.A4)  # A4 predefined size
            self.set_page_size({"height": 15.0, "width": 20.0})  # Custom size
        r   r   r   N)r=   r6   r?   )r1   r|   s     r   set_page_sizezPrintOptions.set_page_sizeU  sh     	##Hi.AB##GYw-?@(2

8'0

7&*jjF#r   property_namerA   c                 r    t        |t        t        f      st        | d      |dk  rt        | d      y)z3Helper function to validate some of the properties.z  should be an integer or a floatr   z cannot be less than 0N)ra   intr   rS   )r1   r   rA   s      r   r=   z#PrintOptions._validate_num_propertyf  sB    %#u..NOPP19.DEFF r   rC   )!r   r   r   r+   page_height
page_widthrG   
margin_topmargin_bottommargin_leftmargin_rightrM   r"   rU   r!   rd   r    ro   shrink_to_fitrr   page_rangesrx   LEGALLETTERTABLOIDr2   r   r{   dictr~   r(   r   r=   r   r   r   ru   ru      s'   )(3K )1J +51J .h7M ,F3K -W5L W%E -];K %\2J )7M &l3K 4	(Bu-E.F/G'# #1t 1 1"GC G G$ Gr   ru   N)typingr   r   r   r&   r	   r   r   r)   r(   r   r+   rG   rM   rU   r\   rd   ro   rr   ru   r   r   r   <module>r      s   & !)12Kiu IU Ye  K+/S>9K9)j/ /3 3*. . . .". . %1 %%2 %%1 %NG NGr   