U
    g                     @   sL   d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 G dd deZ
dS )	zCThis module contains an object that represents a Telegram Location.    )FinalOptional)	constants)TelegramObject)JSONDictc                
       s   e Zd ZU dZdZdddeeee ee ee ee ee d 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 )Locationa1  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`, optional): Time relative to the message sending date, during which
            the location can be updated, in seconds. For active live locations only.
        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`): Optional. Time relative to the message sending date, during which
            the location can be updated, in seconds. For active live locations only.
        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.

    )headinghorizontal_accuracylatitudelive_period	longitudeproximity_alert_radiusN
api_kwargs)r   r
   r	   r   r   r   r   c                   sX   t  j|d || _|| _|| _|| _|| _|r8t|nd | _| j| jf| _	| 
  d S )Nr   )super__init__r   r
   r	   r   r   intr   Z	_id_attrsZ_freeze)selfr   r
   r	   r   r   r   r   	__class__ </tmp/pip-unpacked-wheel-swnnwir2/telegram/_files/location.pyr   G   s    zLocation.__init__HORIZONTAL_ACCURACYMIN_HEADINGMAX_HEADING)NNNN)__name__
__module____qualname____doc__	__slots__floatr   r   r   r   r   ZLocationLimitr   r   __annotations__r   r   __classcell__r   r   r   r   r      s*   
!    	r   N)r   typingr   r   Ztelegramr   Ztelegram._telegramobjectr   Ztelegram._utils.typesr   r   r   r   r   r   <module>   s
   