
    YPi                     z    d Z ddlZddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZ  G d	 d
e
      Zy)zCThis module contains an object that represents a Telegram Location.    N)FinalOptionalUnion)	constants)TelegramObject)to_timedelta)get_timedelta_value)JSONDict
TimePeriodc                   f    e Zd ZU dZdZ	 	 	 	 ddddededee   dee   d	ee   d
ee   dee	   f fdZ
edeeeej                  f      fd       Zej"                  j$                  Zee   ed<   	 ej"                  j*                  Zee   ed<   	 ej"                  j,                  Zee   ed<    xZS )Locationa 	  This object represents a point on the map.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`longitude` and :attr:`latitude` are equal.

    Args:
        longitude (:obj:`float`): Longitude as defined by the sender.
        latitude (:obj:`float`): Latitude as defined by the sender.
        horizontal_accuracy (:obj:`float`, optional): The radius of uncertainty for the location,
            measured in meters; 0-:tg-const:`telegram.Location.HORIZONTAL_ACCURACY`.
        live_period (:obj:`int` | :class:`datetime.timedelta`, optional): Time relative to the
            message sending date, during which the location can be updated, in seconds. For active
            live locations only.

            .. versionchanged:: v22.2
                |time-period-input|
        heading (:obj:`int`, optional): The direction in which user is moving, in degrees;
            :tg-const:`telegram.Location.MIN_HEADING`-:tg-const:`telegram.Location.MAX_HEADING`.
            For active live locations only.
        proximity_alert_radius (:obj:`int`, optional): Maximum distance for proximity alerts about
            approaching another chat member, in meters. For sent live locations only.

    Attributes:
        longitude (:obj:`float`): Longitude as defined by the sender.
        latitude (:obj:`float`): Latitude as defined by the sender.
        horizontal_accuracy (:obj:`float`): Optional. The radius of uncertainty for the location,
            measured in meters; 0-:tg-const:`telegram.Location.HORIZONTAL_ACCURACY`.
        live_period (:obj:`int` | :class:`datetime.timedelta`): Optional. Time relative to the
            message sending date, during which the location can be updated, in seconds. For active
            live locations only.

            .. deprecated:: v22.2
                |time-period-int-deprecated|
        heading (:obj:`int`): Optional. The direction in which user is moving, in degrees;
            :tg-const:`telegram.Location.MIN_HEADING`-:tg-const:`telegram.Location.MAX_HEADING`.
            For active live locations only.
        proximity_alert_radius (:obj:`int`): Optional. Maximum distance for proximity alerts about
            approaching another chat member, in meters. For sent live locations only.

    )_live_periodheadinghorizontal_accuracylatitude	longitudeproximity_alert_radiusN
api_kwargsr   r   r   live_periodr   r   r   c                    t         |   |       || _        || _        || _        t        |      | _        || _        |rt        |      nd | _	        | j                  | j                  f| _
        | j                          y )Nr   )super__init__r   r   r   r   r   r   intr   	_id_attrs_freeze)	selfr   r   r   r   r   r   r   	__class__s	           N/root/twitch_bot/venv/lib/python3.12/site-packages/telegram/_files/location.pyr   zLocation.__init__R   sv     	J/ )' 5H 5A+5N&-+AC&'t 	# ..$--8    returnc                 0    t        | j                  d      S )Nr   )	attribute)r	   r   )r   s    r   r   zLocation.live_periodn   s    "4#4#4NNr    HORIZONTAL_ACCURACYMIN_HEADINGMAX_HEADING)NNNN)__name__
__module____qualname____doc__	__slots__floatr   r   r   r
   r   propertyr   dtm	timedeltar   r   LocationLimitr$   r   __annotations__r%   r&   __classcell__)r   s   @r   r   r      s   'RI 04,0!%04 *.  &e_	
 j) # !) X&8 OXeC,>&?@ O O '0&=&=&Q&QsQ (55AAKsA (55AAKsAr    r   )r*   datetimer.   typingr   r   r   telegramr   telegram._telegramobjectr   telegram._utils.argumentparsingr   telegram._utils.datetimer	   telegram._utils.typesr
   r   r    r    r   <module>r;      s1   & J  ) )  3 8 8 6a~ ar    