
    'h                     `    S SK JrJrJr  S SKJr   " S S5      r " S S5      r " S S5      rg	)
    )AnyOptionalUnion)command_builderc                      \ rS rSrSr     SS\S\S\S\\   S\\   S	\\   S
\\   4S jjr\S 5       r	\	R                  S 5       r	\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       r\S 5       r\R                  S 5       rS\\\\S4   4   4S jrSrg)GeolocationCoordinates   z#Represents geolocation coordinates.Nlatitude	longitudeaccuracyaltitudealtitude_accuracyheadingspeedc                 X    Xl         X l        X0l        X@l        XPl        X`l        Xpl        g)a  Initialize GeolocationCoordinates.

Parameters:
-----------
    latitude: Latitude coordinate (-90.0 to 90.0).
    longitude: Longitude coordinate (-180.0 to 180.0).
    accuracy: Accuracy in meters (>= 0.0), defaults to 1.0.
    altitude: Altitude in meters or None, defaults to None.
    altitude_accuracy: Altitude accuracy in meters (>= 0.0) or None, defaults to None.
    heading: Heading in degrees (0.0 to 360.0) or None, defaults to None.
    speed: Speed in meters per second (>= 0.0) or None, defaults to None.

Raises:
------
    ValueError: If coordinates are out of valid range or if altitude_accuracy is provided without altitude.
Nr
   r   r   r   r   r   r   )selfr
   r   r   r   r   r   r   s           q/var/www/home/psychics-availability/venv/lib/python3.13/site-packages/selenium/webdriver/common/bidi/emulation.py__init__GeolocationCoordinates.__init__   s(    4 !"  !2
    c                     U R                   $ N)	_latituder   s    r   r
   GeolocationCoordinates.latitude<       ~~r   c                 D    SUs=::  a  S::  d  O  [        S5      eXl        g )Ng     Vg     V@z'latitude must be between -90.0 and 90.0)
ValueErrorr   r   values     r   r
   r   @   s     &$&FGGr   c                     U R                   $ r   )
_longituder   s    r   r    GeolocationCoordinates.longitudeF   s    r   c                 D    SUs=::  a  S::  d  O  [        S5      eXl        g )Ng     fg     f@z*longitude must be between -180.0 and 180.0)r   r#   r    s     r   r   r$   J   s     %(5(IJJr   c                     U R                   $ r   )	_accuracyr   s    r   r   GeolocationCoordinates.accuracyP   r   r   c                 2    US:  a  [        S5      eXl        g )N        zaccuracy must be >= 0.0)r   r'   r    s     r   r   r(   T   s    3;677r   c                     U R                   $ r   	_altituder   s    r   r   GeolocationCoordinates.altitudeZ   r   r   c                     Xl         g r   r,   r    s     r   r   r.   ^   s    r   c                     U R                   $ r   )_altitude_accuracyr   s    r   r   (GeolocationCoordinates.altitude_accuracyb   s    &&&r   c                 n    Ub  U R                   c  [        S5      eUb  US:  a  [        S5      eXl        g )Nz0altitude_accuracy cannot be set without altituder*   z altitude_accuracy must be >= 0.0)r   r   r1   r    s     r   r   r2   f   s;    !6OPP?@@"'r   c                     U R                   $ r   )_headingr   s    r   r   GeolocationCoordinates.headingn   s    }}r   c                 J    Ub  SUs=::  a  S:  d  O  [        S5      eXl        g )Nr*   g     v@z%heading must be between 0.0 and 360.0)r   r5   r    s     r   r   r6   r   s%    cU&:U&:DEEr   c                     U R                   $ r   )_speedr   s    r   r   GeolocationCoordinates.speedx   s    {{r   c                 8    Ub  US:  a  [        S5      eXl        g )Nr*   zspeed must be >= 0.0)r   r9   r    s     r   r   r:   |   s    344r   returnc                 .   U R                   U R                  U R                  S.nU R                  b  U R                  US'   U R                  b  U R                  US'   U R
                  b  U R
                  US'   U R                  b  U R                  US'   U$ )N)r
   r   r   r   altitudeAccuracyr   r   r   )r   results     r   to_dictGeolocationCoordinates.to_dict   s    1
 ==$!%F:!!-)-)?)?F%&<<# $F9::!"jjF7Or   )r'   r-   r1   r5   r   r#   r9   r   r   r   r   r
   r   r   )g      ?NNNN)__name__
__module____qualname____firstlineno____doc__floatr   r   propertyr
   setterr   r   r   r   r   r   dictstrr   r@   __static_attributes__ r   r   r   r      s   - $(-1#'!%     	 
 5/  $E?  %   D   __ 
      
   __ 
   __  ' ' ( (   ^^ 
   \\ 
c5#556 r   r   c                   H    \ rS rSrSrSr\4S\4S jjrS\\\4   4S jr	Sr
g	)
GeolocationPositionError   z(Represents a geolocation position error.positionUnavailabletypec                 `    XR                   :w  a  [        SU R                    S35      eXl        g )Nztype must be "")TYPE_POSITION_UNAVAILABLEr   rR   )r   rR   s     r   r   !GeolocationPositionError.__init__   s.    111~d.L.L-MQOPP	r   r<   c                     SU R                   0$ )NrR   rR   r   s    r   r@    GeolocationPositionError.to_dict   s    		""r   rX   N)rB   rC   rD   rE   rF   rU   rK   r   rJ   r@   rL   rM   r   r   rO   rO      s.    2 5#< S 
#c3h #r   rO   c                   l    \ rS rSrSrS r    SS\\   S\\   S\\	\
      S\\	\
      S	S4
S
 jjrSrg)	Emulation   z.
BiDi implementation of the emulation module.
c                     Xl         g r   conn)r   r_   s     r   r   Emulation.__init__   s    	r   Ncoordinateserrorcontextsuser_contextsr<   c                 0   Ub  Ub  [        S5      eUb  Ub  [        S5      eUc  Uc  [        S5      e0 nUb  UR                  5       US'   OUb  UR                  5       US'   Ub  X5S'   OUb  XES'   U R                  R                  [	        S	U5      5        g)
a+  Set geolocation override for the given contexts or user contexts.

Parameters:
-----------
    coordinates: Geolocation coordinates to emulate, or None.
    error: Geolocation error to emulate, or None.
    contexts: List of browsing context IDs to apply the override to.
    user_contexts: List of user context IDs to apply the override to.

Raises:
------
    ValueError: If both coordinates and error are provided, or if both contexts
               and user_contexts are provided, or if neither contexts nor
               user_contexts are provided.
Nz)Cannot specify both coordinates and errorz-Cannot specify both contexts and userContextsz,Must specify either contexts or userContextsra   rb   rc   userContextsz emulation.setGeolocationOverride)r   r@   r_   executer   )r   ra   rb   rc   rd   paramss         r   set_geolocation_override"Emulation.set_geolocation_override   s    , "u'8HIIM$=LMM 5KLL!#"$/$7$7$9F=!#mmoF7O!):&%2>"		/*LfUVr   r^   )NNNN)rB   rC   rD   rE   rF   r   r   r   rO   listrK   ri   rL   rM   r   r   r[   r[      sy    
 9=48(,-1+W45+W 01+W 49%	+W
  S	*+W 
+W +Wr   r[   N)	typingr   r   r   %selenium.webdriver.common.bidi.commonr   r   rO   r[   rM   r   r   <module>rn      s3   $ ( ' A~ ~B# #3W 3Wr   