o
    "h                     @   st   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
 d
e
ZdS )zCThis module contains an object that represents a Telegram Location.    N)FinalOptionalUnion)	constants)TelegramObject)to_timedelta)get_timedelta_value)JSONDict
TimePeriodc                       s   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dZ
edeeeejf  fd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<   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                   s\   t  j|d || _|| _|| _t|| _|| _|rt|nd | _	| j| jf| _
|   d S )Nr   )super__init__r   r   r   r   r   r   intr   	_id_attrs_freeze)selfr   r   r   r   r   r   r   	__class__ K/var/www/html/venv/lib/python3.10/site-packages/telegram/_files/location.pyr   R   s   
zLocation.__init__returnc                 C   s   t | jddS )Nr   )	attribute)r   r   )r   r   r   r   r   n   s   zLocation.live_period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   r   r   r   r      s@   
 )		r   )r'   datetimer+   typingr   r   r   telegramr   telegram._telegramobjectr   telegram._utils.argumentparsingr   telegram._utils.datetimer   telegram._utils.typesr	   r
   r   r   r   r   r   <module>   s   