
    aDg{1                       d dl mZ d dlmZmZ d dlmZ d dlZd dlZddl	m
Z
  G d de      Z G d	 d
ej                        Ze G d d             Z G d dej                        Ze G d d             Ze G d d             Z	 d 	 	 	 	 	 	 	 d!dZ	 d 	 	 	 d"dZd#dZd#dZd#dZd$dZd%dZ	 	 d&	 	 	 	 	 d'dZ	 d 	 	 	 	 	 d(dZ	 	 	 	 d)dZ	 d 	 	 	 d*dZ	 	 	 	 	 	 d+dZ	 	 d&	 	 	 	 	 d,dZy)-    )annotations)event_classT_JSON_DICT)	dataclassN   )targetc                  8     e Zd ZddZedd       Z fdZ xZS )WindowIDc                    | S N selfs    K/var/www/highfloat_scraper/venv/lib/python3.12/site-packages/cdp/browser.pyto_jsonzWindowID.to_json   s        c                     | |      S r   r   clsjsons     r   	from_jsonzWindowID.from_json       4yr   c                >    dj                  t        | 	               S )NzWindowID({}))formatsuper__repr__)r   	__class__s    r   r   zWindowID.__repr__   s    $$UW%5%788r   )returnint)r   r   r   r
   )__name__
__module____qualname__r   classmethodr   r   __classcell__)r   s   @r   r
   r
      s&      9 9r   r
   c                  :    e Zd ZdZdZdZdZdZd	dZe	d
d       Z
y)WindowStatez*
    The state of the browser window.
    normal	minimized	maximized
fullscreenc                    | j                   S r   valuer   s    r   r   zWindowState.to_json&       zzr   c                     | |      S r   r   r   s     r   r   zWindowState.from_json)   r   r   Nr   str)r   r1   r   r&   )r    r!   r"   __doc__NORMAL	MINIMIZED	MAXIMIZED
FULLSCREENr   r#   r   r   r   r   r&   r&      s6     FIIJ  r   r&   c                  r    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dd
Z
edd       Zy)Boundsz+
    Browser window bounds information
    Nztyping.Optional[int]lefttopwidthheightztyping.Optional[WindowState]window_statec                D   t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  | j
                  j                         |d<   |S )Nr9   r:   r;   r<   windowState)dictr9   r:   r;   r<   r=   r   r   r   s     r   r   zBounds.to_jsonB   s     F99 99DL88((DK::! JJDM;;"![[DN("&"3"3";";"=Dr   c           
          | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        j                  |d               S d       S )Nr9   r:   r;   r<   r?   )r9   r:   r;   r<   r=   )r   r&   r   r   s     r   r   zBounds.from_jsonP   s    &,nT&\"$$)TMDK t(/4#d7m$T*2d*:3tH~&GTX\G\..tM/BC
 	

 cg
 	
r   r   r   )r   r   r   r8   )r    r!   r"   r2   r9   __annotations__r:   r;   r<   r=   r   r#   r   r   r   r   r8   r8   .   sa     "&D
% !%C	$ #'E& $(F ' 26L.5 
 
r   r8   c                  v    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZddZedd       Zy)PermissionTypeaccessibilityEventsaudioCapturebackgroundSyncbackgroundFetchclipboardReadclipboardWritedurableStorageflashgeolocationmidi	midiSysexnotificationspaymentHandlerperiodicBackgroundSyncprotectedMediaIdentifiersensorsvideoCaptureidleDetectionwakeLockScreenwakeLockSystemc                    | j                   S r   r,   r   s    r   r   zPermissionType.to_jsonq   r.   r   c                     | |      S r   r   r   s     r   r   zPermissionType.from_jsont   r   r   Nr0   )r   r1   r   rF   )r    r!   r"   ACCESSIBILITY_EVENTSAUDIO_CAPTUREBACKGROUND_SYNCBACKGROUND_FETCHCLIPBOARD_READCLIPBOARD_WRITEDURABLE_STORAGEFLASHGEOLOCATIONMIDI
MIDI_SYSEXNOTIFICATIONSPAYMENT_HANDLERPERIODIC_BACKGROUND_SYNCPROTECTED_MEDIA_IDENTIFIERSENSORSVIDEO_CAPTUREIDLE_DETECTIONWAKE_LOCK_SCREENWAKE_LOCK_SYSTEMr   r#   r   r   r   r   rF   rF   [   s    0"M&O($N&O&OEKDJ#M&O7!;G"M$N''  r   rF   c                  J    e Zd ZU dZded<   ded<   ded<   d	dZed
d       Zy)Bucketz"
    Chrome histogram bucket.
    r   lowhighcountc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nrs   rt   ru   )r@   rs   rt   ru   rA   s     r   r   zBucket.to_json   s5     FhhUyyV

Wr   c                `     | t        |d         t        |d         t        |d               S )Nrs   rt   ru   )rs   rt   ru   )r   r   s     r   r   zBucket.from_json   s3    DK T&\"d7m$
 	
r   NrC   )r   r   r   rr   r    r!   r"   r2   rD   r   r#   r   r   r   r   rr   rr   y   s5     
H I J 
 
r   rr   c                  T    e Zd ZU dZded<   ded<   ded<   ded<   dd	Zedd
       Zy)	Histogramz
    Chrome histogram.
    r1   namer   sum_ru   ztyping.List[Bucket]bucketsc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  D cg c]  }|j                          c}|d<   |S c c}w )Nr{   sumru   r}   )r@   r{   r|   ru   r}   r   )r   r   is      r   r   zHistogram.to_json   sX     FyyViiU

W04=1199;=Y >s   A%c                     | t        |d         t        |d         t        |d         |d   D cg c]  }t        j                  |       c}      S c c}w )Nr{   r   ru   r}   )r{   r|   ru   r}   )r1   r   rr   r   )r   r   r   s      r   r   zHistogram.from_json   sV    T&\"T%[!d7m$26y/BQV%%a(B	
 	
 Cs   ANrC   )r   r   r   rz   rx   r   r   r   rz   rz      s=     I I J !  
 
r   rz   c              #     K   t               }| |d<   |D cg c]  }|j                          c}|d<   ||j                         |d<   d|d}|}yc c}w w)a  
    Grant specific permissions to the given origin and reject all others.

    **EXPERIMENTAL**

    :param origin:
    :param permissions:
    :param browser_context_id: *(Optional)* BrowserContext to override permissions. When omitted, default browser context is used.
    originpermissionsNbrowserContextIdzBrowser.grantPermissionsmethodparamsr@   r   )r   r   browser_context_idr   r   cmd_dictr   s          r   grant_permissionsr      si      &FF82=>QQYY[>F=%%7%?%?%A!",H >D ?s   AA*Ac              #  \   K   t               }| | j                         |d<   d|d}|}yw)z
    Reset all permission management for all origins.

    **EXPERIMENTAL**

    :param browser_context_id: *(Optional)* BrowserContext to reset permissions. When omitted, default browser context is used.
    Nr   zBrowser.resetPermissionsr   r   )r   r   r   r   s       r   reset_permissionsr      s?      &F%%7%?%?%A!",H >Ds   *,c               #     K   ddi} | }yw)z#
    Close browser gracefully.
    r   zBrowser.closeNr   r   r   s     r   closer      s     
 	/H >D   
c               #     K   ddi} | }yw)zC
    Crashes browser on the main thread.

    **EXPERIMENTAL**
    r   zBrowser.crashNr   r   s     r   crashr      s      	/H >Dr   c               #     K   ddi} | }yw)z4
    Crashes GPU process.

    **EXPERIMENTAL**
    r   zBrowser.crashGpuProcessNr   r   s     r   crash_gpu_processr      s      	+H >Dr   c               #     K   ddi} | }t        |d         t        |d         t        |d         t        |d         t        |d         fS w)u6  
    Returns version information.

    :returns: A tuple with the following items:

        0. **protocolVersion** – Protocol version.
        1. **product** – Product name.
        2. **revision** – Product revision.
        3. **userAgent** – User-Agent.
        4. **jsVersion** – V8 version.
    r   zBrowser.getVersionprotocolVersionproductrevision	userAgent	jsVersionr1   r   s     r   get_versionr   
  si      	&H >DD"#$DODDD s   AAc               #  \   K   ddi} | }|d   D cg c]  }t        |       c}S c c}w w)z
    Returns the command line switches for the browser process if, and only if
    --enable-automation is on the commandline.

    **EXPERIMENTAL**

    :returns: Commandline parameters
    r   zBrowser.getBrowserCommandLine	argumentsr   )r   r   r   s      r   get_browser_command_liner   #  s;      	1H >D -.qCF...s   ,',c              #     K   t               }| | |d<   |||d<   d|d}|}|d   D cg c]  }t        j                  |       c}S c c}w w)aS  
    Get Chrome histograms.

    **EXPERIMENTAL**

    :param query: *(Optional)* Requested substring in name. Only histograms which have query as a substring in their name are extracted. An empty or absent query returns all histograms.
    :param delta: *(Optional)* If true, retrieve delta since last call.
    :returns: Histograms.
    querydeltazBrowser.getHistogramsr   
histogramsr@   rz   r   )r   r   r   r   r   r   s         r   get_histogramsr   3  sg      &Fww)H >D,0,>?qI"???s   )AA
Ac              #  x   K   t               }| |d<   |||d<   d|d}|}t        j                  |d         S w)z
    Get a Chrome histogram by name.

    **EXPERIMENTAL**

    :param name: Requested histogram name.
    :param delta: *(Optional)* If true, retrieve delta since last call.
    :returns: Histogram.
    r{   r   zBrowser.getHistogramr   	histogramr   )r{   r   r   r   r   s        r   get_histogramr   M  sS      &FF6Nw(H >DtK011s   8:c              #     K   t               }| j                         |d<   d|d}|}t        j                  |d         S w)z
    Get position and size of the browser window.

    **EXPERIMENTAL**

    :param window_id: Browser window id.
    :returns: Bounds information of the window. When window state is 'minimized', the restored window position and size are returned.
    windowIdzBrowser.getWindowBoundsr   bounds)r@   r   r8   r   )	window_idr   r   r   s       r   get_window_boundsr   f  sM      &F"**,F:+H >DDN++s   ?Ac              #     K   t               }| | j                         |d<   d|d}|}t        j                  |d         t        j                  |d         fS w)u  
    Get the browser window that contains the devtools target.

    **EXPERIMENTAL**

    :param target_id: *(Optional)* Devtools agent host id. If called as a part of the session, associated targetId is used.
    :returns: A tuple with the following items:

        0. **windowId** – Browser window id.
        1. **bounds** – Bounds information of the window. When window state is 'minimized', the restored window position and size are returned.
    targetIdzBrowser.getWindowForTargetr   r   r   )r@   r   r
   r   r8   )	target_idr   r   r   s       r   get_window_for_targetr   {  sm      &F&..0z.H >D4
+,h( s   AAc              #  ~   K   t               }| j                         |d<   |j                         |d<   d|d}|}yw)a5  
    Set position and/or size of the browser window.

    **EXPERIMENTAL**

    :param window_id: Browser window id.
    :param bounds: New window bounds. The 'minimized', 'maximized' and 'fullscreen' states cannot be combined with 'left', 'top', 'width' or 'height'. Leaves unspecified fields unchanged.
    r   r   zBrowser.setWindowBoundsr   Nr   )r   r   r   r   r   s        r   set_window_boundsr     sI      &F"**,F:~~'F8+H >Ds   ;=c              #  N   K   t               }| | |d<   |||d<   d|d}|}yw)z
    Set dock tile details, platform-specific.

    **EXPERIMENTAL**

    :param badge_label: *(Optional)*
    :param image: *(Optional)* Png encoded image.
    N
badgeLabelimagezBrowser.setDockTiler   )r@   )badge_labelr   r   r   r   s        r   set_dock_tiler     sD      &F*|w'H >Ds   #%r   )r   r1   r   ztyping.List[PermissionType]r   (typing.Optional[target.BrowserContextID]r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])r   r   r   r   )r   r   )r   zQtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, str, str, str, str]])r   z<typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]])NN)r   typing.Optional[str]r   typing.Optional[bool]r   zBtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Histogram]])r{   r1   r   r   r   z5typing.Generator[T_JSON_DICT, T_JSON_DICT, Histogram])r   r
   r   z2typing.Generator[T_JSON_DICT, T_JSON_DICT, Bounds])r   z typing.Optional[target.TargetID]r   zJtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[WindowID, Bounds]])r   r
   r   r8   r   r   )r   r   r   r   r   r   ) 
__future__r   cdp.utilr   r   dataclassesr   enumtyping r   r   r
   Enumr&   r8   rF   rr   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s   # - !   	9s 	9$)) " )
 )
 )
XTYY < 
 
 
: 
 
 
J HL0 E 
8	6 HLD	7(		2/" '+'+@#@$@ 
J@8 (,22$2 
=22,,	9,, 7;3	Q8 
8. -1&*)# 
8r   