
    ,h)                        d dl mZ d dl mZ d dl mZ d dl mZ er9d dl mZ d dl 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 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)List)Optional)Type)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__     n/var/www/html/Resume-Scraper/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   r   strr   r   r   r    r    (   s.      Ir   r    )Any)Dictc                   0    e Zd ZdZd Zdee   fdZddZy)_PageSettingsDescriptorz8Descriptor which validates `height` and 'width' of page.c                     || _         y Nnameselfr2   s     r   __init__z _PageSettingsDescriptor.__init__<   	    	r   returnc                 N    |j                   j                  | j                  d       S r0   )_pagegetr2   r4   objclss      r   __get__z_PageSettingsDescriptor.__get__?   s    yy}}TYY--r   Nc                      t        |d      | j                  |       ||j                  | j                  <   |j                  |j                  d<   y )N_validate_num_propertyr"   )getattrr2   r9   _print_optionsr4   r<   values      r   __set__z_PageSettingsDescriptor.__set__B   s@    .-.tyy%@$		$))%(YY6"r   r7   N	r   r   r   __doc__r5   r   r   r>   rE   r   r   r   r.   r.   9   s    B.8E? ./r   r.   c                   0    e Zd ZdZd Zdee   fdZddZy)_MarginSettingsDescriptorz`Descriptor which validates below attributes.

    - top
    - bottom
    - left
    - right
    c                     || _         y r0   r1   r3   s     r   r5   z"_MarginSettingsDescriptor.__init__Q   r6   r   r7   c                 N    |j                   j                  | j                  d       S r0   )_marginr:   r2   r;   s      r   r>   z!_MarginSettingsDescriptor.__get__T   s    {{tyy$//r   Nc                      t        |d      d| j                   |       ||j                  | j                  <   |j                  |j                  d<   y )Nr@   zMargin r!   )rA   r2   rM   rB   rC   s      r   rE   z!_MarginSettingsDescriptor.__set__W   sG    .-./DeL!&DII'*{{8$r   rF   rG   r   r   r   rJ   rJ   H   s!    08E? 03r   rJ   c                   0    e Zd ZdZd Zdee   fdZddZy)_ScaleDescriptorz'Scale descriptor which validates scale.c                     || _         y r0   r1   r3   s     r   r5   z_ScaleDescriptor.__init__`   r6   r   r7   c                 L    |j                   j                  | j                        S r0   rB   r:   r2   r;   s      r   r>   z_ScaleDescriptor.__get__c   s    !!%%dii00r   Nc                      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)rA   r2   
ValueErrorrB   rC   s      r   rE   z_ScaleDescriptor.__set__f   sG    .-.tyy%@3;%!)IJJ(-499%r   rF   rG   r   r   r   rP   rP   ]   s    118E? 1.r   rP   c                   8    e Zd ZdZddgZd Zdee   fdZd	dZ	y)
_PageOrientationDescriptorz?PageOrientation descriptor which validates orientation of page.r	   r
   c                     || _         y r0   r1   r3   s     r   r5   z#_PageOrientationDescriptor.__init__r   r6   r   r7   c                 N    |j                   j                  | j                  d       S r0   rS   r;   s      r   r>   z"_PageOrientationDescriptor.__get__u       !!%%dii66r   Nc                     || j                   vrt        d| j                          ||j                  | j                  <   y )Nz!Orientation value must be one of )ORIENTATION_VALUESrV   rB   r2   rC   s      r   rE   z"_PageOrientationDescriptor.__set__x   s>    ///@AXAX@YZ[[(-499%r   rF   )
r   r   r   rH   r]   r5   r   r)   r>   rE   r   r   r   rX   rX   m   s+    I$k278K#8 7.r   rX   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 r0   )r2   r`   )r4   r2   r`   s      r   r5   z _ValidateTypeDescriptor.__init__   s    	*r   c                 N    |j                   j                  | j                  d       S r0   rS   r;   s      r   r>   z_ValidateTypeDescriptor.__get__   r[   r   Nc                     t        || j                        s.t        | j                   d| j                  j                         ||j
                  | j                  <   y )Nz should be of type )
isinstancer`   rV   r2   r   rB   rC   s      r   rE   z_ValidateTypeDescriptor.__set__   sN    %!3!34		{*=d>P>P>Y>Y=Z[\\(-499%r   rF   )r   r   r   rH   r   r5   r>   rE   r   r   r   r_   r_   ~   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 r0   superr5   r(   r4   r2   	__class__s     r   r5   z_ValidateBackGround.__init__       t$r   r   r   r   rH   r5   __classcell__rk   s   @r   rf   rf      s    0% %r   rf   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 r0   rh   rj   s     r   r5   z_ValidateShrinkToFit.__init__   rl   r   rm   ro   s   @r   rq   rq      s    3% %r   rq   c                   "     e Zd ZdZ fdZ xZS )_ValidatePageRangesz'Expected type of page ranges attribute.c                 .    t         |   |t               y r0   )ri   r5   listrj   s     r   r5   z_ValidatePageRanges.__init__   rl   r   rm   ro   s   @r   rt   rt      s    1% %r   rt   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@r7   Nc                 x    i | _         t        j                  d   t        j                  d   d| _        i | _        y )Nr   r   ry   )rB   rx   A4r9   rM   r4   s    r   r5   zPrintOptions.__init__  s4    *,"ooh/!__W-!

 %'r   c                     | j                   S )z-:Returns: A hash of print options configured.)rB   r|   s    r   to_dictzPrintOptions.to_dict  s    """r   	page_sizec                     | j                  d|d          | j                  d|d          |d   | j                  d<   |d   | j                  d<   | j                  | j                  d<   y)a  Sets the page size to predefined or custom dimensions.

        Parameters:
        -----------
        page_size: dict
        A dictionary containing `height` and `width` as keys with respective values.

        Example:
        --------
        self.set_page_size(PageSize.A4)  # A4 predefined size
        self.set_page_size({"height": 15.0, "width": 20.0})  # Custom size in cm
        r   r   r"   N)r@   r9   rB   )r4   r   s     r   set_page_sizezPrintOptions.set_page_size  sh     	##Hi.AB##GYw-?@(2

8'0

7&*jjF#r   property_namerD   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)rd   intr   rV   )r4   r   rD   s      r   r@   z#PrintOptions._validate_num_property  sB    %#u..NOPP19.DEFF r   rF   )!r   r   r   r.   page_height
page_widthrJ   
margin_topmargin_bottommargin_leftmargin_rightrP   r%   rX   r$   rf   r#   rq   shrink_to_fitrt   page_rangesr{   LEGALLETTERTABLOIDr5   r    r~   dictr   r*   r   r@   r   r   r   rx   rx      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   rx   N)typingr   r   r   r   r   r   r)   r   r   r    r+   r,   r*   r.   rJ   rP   rX   r_   rf   rq   rt   rx   r   r   r   <module>r      s   & !    12Kiu IU Ye  K+/S>9K9)j/ /3 3*. . . .". . %1 %%2 %%1 %]G ]Gr   