Mini Shell

Direktori : /usr/lib/python3.6/site-packages/__pycache__/
Upload File :
Current File : //usr/lib/python3.6/site-packages/__pycache__/ntplib.cpython-36.pyc

3

���U(6�@s�dZddlZddlZddlZddlZGdd�de�ZGdd�d�ZGdd�d�ZGd	d
�d
e�Z	Gdd�d�Z
d
d�Zd!dd�Zd"dd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd#dd �ZdS)$zePython NTP library.

Implementation of client-side NTP (RFC-1305), and useful NTP-related
functions.
�Nc@seZdZdZdS)�NTPExceptionz Exception raised by this module.N)�__name__�
__module__�__qualname__�__doc__�rr�/usr/lib/python3.6/ntplib.pyr%src!@s�eZdZdZejejd�dd��Zejddd�Z	ee	j
ddZdd	d
ddd
dddddddddddddddddddd d!d"d#d$d%d&d'� Zd(d)d*�Z
d+d,d-d.d/d0d1d2d3�Zd4d5d6d7d8�Zd9S):�NTPz Helper class defining constants.r�il��iz)Geostationary Orbit Environment SatellitezGlobal Position SystemzGalileo Positioning SystemzGeneric pulse-per-secondz!Inter-Range Instrumentation Groupz$LF Radio WWVB Ft. Collins, CO 60 kHzz'LF Radio DCF77 Mainflingen, DE 77.5 kHzz LF Radio HBG Prangins, HB 75 kHzzLF Radio MSF Anthorn, UK 60 kHzz2LF Radio JJY Fukushima, JP 40 kHz, Saga, JP 60 kHzz!MF Radio LORAN C station, 100 kHzzMF Radio Allouis, FR 162 kHzzHF Radio CHU Ottawa, OntariozHF Radio WWV Ft. Collins, COzHF Radio WWVH Kauai, HIzNIST telephone modemzUSNO telephone modemzEuropean telephone modemzuncalibrated local clockzcalibrated Cesium clockzcalibrated Rubidium clockzOMEGA radionavigation systemzDCN routing protocolzTSP time protocolzDigital Time ServicezAtomic clock (calibrated)zVLF radio (OMEGA,, etc.)zExternal 1 PPS inputz(Internal clock)z(Initialization)ZNULL) ZGOESzGPSzGALzPPSZIRIGZWWVBzDCFzHBGzMSFzJJYZLORCzTDFzCHUzWWVZWWVHZNISTZACTSZUSNOzPTBZLOCLZCESMZRBDMZOMEGzDCNzTSPzDTSZATOMzVLFZ1PPSZFREEZINITzzunspecified or invalidzprimary reference (%s))rrZreservedzsymmetric activezsymmetric passiveZclientZserverZ	broadcastz!reserved for NTP control messageszreserved for private use)rr�r
����z
no warningz%last minute of the day has 61 secondsz%last minute of the day has 59 secondszunknown (clock unsynchronized))rrr
r
N)rrrr�datetimeZdate�timeZgmtimeZ
_SYSTEM_EPOCHZ
_NTP_EPOCHZdays�	NTP_DELTA�REF_ID_TABLE�
STRATUM_TABLE�
MODE_TABLE�
LEAP_TABLErrrrr	*sfr	c@s.eZdZdZdZd
dd�Zdd	�Zd
d�ZdS)�	NTPPacketz:NTP packet class.

    This represents an NTP packet.
    z!B B B b 11Ir
r
rcCsRd|_||_||_d|_d|_d|_d|_d|_d|_d|_	d|_
d|_||_dS)z�Constructor.

        Parameters:
        version      -- NTP version
        mode         -- packet mode (client, server)
        tx_timestamp -- packet transmit timestamp
        rN)
�leap�version�mode�stratum�poll�	precision�
root_delay�root_dispersion�ref_id�
ref_timestamp�orig_timestamp�recv_timestamp�tx_timestamp)�selfrrr&rrr�__init__|szNTPPacket.__init__cCs�y�tjtj|jd>|jd>B|jB|j|j|j	t
|j�d>t|jd�Bt
|j
�d>t|j
d�B|jt
|j�t|j�t
|j�t|j�t
|j�t|j�t
|j�t|j��}Wntjk
r�td��YnX|S)z�Convert this NTPPacket to a buffer that can be sent over a socket.

        Returns:
        buffer representing this packet

        Raises:
        NTPException -- in case of invalid field
        rr
�zInvalid NTP packet fields.)�struct�packr�_PACKET_FORMATrrrrrr�_to_intr �_to_fracr!r"r#r$r%r&�errorr)r'Zpackedrrr�to_data�s*	zNTPPacket.to_datacCsy"tjtj|dtjtj���}Wntjk
r@td��YnX|dd?d@|_|dd?d@|_|dd@|_	|d|_
|d|_|d|_t
|d�d|_t
|d
�d|_|d|_t|d|d�|_t|d|d
�|_t|d|d�|_t|d|d�|_dS)z�Populate this instance from a NTP packet payload received from
        the network.

        Parameters:
        data -- buffer payload

        Raises:
        NTPException -- in case of invalid packet format
        rzInvalid NTP packet.rr
rrr
rr)r��	�
���
�Nii)r*�unpackrr,�calcsizer/rrrrrrr�floatr r!r"�_to_timer#r$r%r&)r'�dataZunpackedrrr�	from_data�s$




zNTPPacket.from_dataN)r
r
r)rrrrr,r(r0r=rrrrrss

#rc@sleZdZdZdd�Zedd��Zedd��Zedd	��Zed
d��Z	edd
��Z
edd��Zedd��ZdS)�NTPStatsz�NTP statistics.

    Wrapper for NTPPacket, offering additional statistics like offset and
    delay, and timestamps converted to system time.
    cCstj|�d|_dS)zConstructor.rN)rr(�dest_timestamp)r'rrrr(�s
zNTPStats.__init__cCs|j|j|j|jdS)�offsetr
)r%r$r&r?)r'rrrr@�s
zNTPStats.offsetcCs|j|j|j|jS)zround-trip delay)r?r$r&r%)r'rrr�delay�s
zNTPStats.delaycCs
t|j�S)z"Transmit timestamp in system time.)�ntp_to_system_timer&)r'rrr�tx_time�szNTPStats.tx_timecCs
t|j�S)z!Receive timestamp in system time.)rBr%)r'rrr�	recv_time�szNTPStats.recv_timecCs
t|j�S)z#Originate timestamp in system time.)rBr$)r'rrr�	orig_timeszNTPStats.orig_timecCs
t|j�S)z#Reference timestamp in system time.)rBr#)r'rrr�ref_timeszNTPStats.ref_timecCs
t|j�S)z%Destination timestamp in system time.)rBr?)r'rrr�	dest_time
szNTPStats.dest_timeN)
rrrrr(�propertyr@rArCrDrErFrGrrrrr>�sr>c@s"eZdZdZdd�Zd
dd�Zd	S)�	NTPClientzNTP client session.cCsdS)zConstructor.Nr)r'rrrr(szNTPClient.__init__r
�ntprcCs�tj||�d}|d|d}}tj|tj�}z�yh|j|�td|ttj��d�}	|j|	j�|�d}
x"|
d|dkr�|j	d�\}}
qjWttj��}Wn"tj
k
r�td|��YnXWd|j�Xt
�}
|
j|�||
_|
S)	z�Query a NTP server.

        Parameters:
        host    -- server name/address
        version -- NTP version to use
        port    -- server port
        timeout -- timeout on socket operations

        Returns:
        NTPStats object
        rrr
)rrr&N�zNo response received from %s.)N)�socketZgetaddrinfoZ
SOCK_DGRAMZ
settimeoutr�system_to_ntp_timerZsendtor0Zrecvfrom�timeoutr�closer>r=r?)r'�hostrZportrNZaddrinfoZfamilyZsockaddr�sZquery_packetZsrc_addrZresponse_packetr?Zstatsrrr�requests&



zNTPClient.requestN)r
rJr)rrrrr(rRrrrrrIsrIcCst|�S)z|Return the integral part of a timestamp.

    Parameters:
    timestamp -- NTP timestamp

    Retuns:
    integral part
    )�int)�	timestamprrrr-Hs	r-� cCstt|t|��d|�S)z�Return the fractional part of a timestamp.

    Parameters:
    timestamp -- NTP timestamp
    n         -- number of bits of the fractional part

    Retuns:
    fractional part
    r
)rS�absr-)rT�nrrrr.Ts
r.cCs|t|�d|S)z�Return a timestamp from an integral and fractional part.

    Parameters:
    integ -- integral part
    frac  -- fractional part
    n     -- number of bits of the fractional part

    Retuns:
    timestamp
    r
)r:)ZintegZfracrWrrrr;asr;cCs
|tjS)z�Convert a NTP time to system time.

    Parameters:
    timestamp -- timestamp in NTP time

    Returns:
    corresponding system time
    )r	r)rTrrrrBos	rBcCs
|tjS)z�Convert a system time to a NTP time.

    Parameters:
    timestamp -- timestamp in system time

    Returns:
    corresponding NTP time
    )r	r)rTrrrrM{s	rMcCs |tjkrtj|Std��dS)z�Convert a leap indicator to text.

    Parameters:
    leap -- leap indicator value

    Returns:
    corresponding message

    Raises:
    NTPException -- in case of invalid leap indicator
    zInvalid leap indicator.N)r	rr)rrrr�leap_to_text�s

rXcCs |tjkrtj|Std��dS)z�Convert a NTP mode value to text.

    Parameters:
    mode -- NTP mode

    Returns:
    corresponding message

    Raises:
    NTPException -- in case of invalid mode
    z
Invalid mode.N)r	rr)rrrr�mode_to_text�s

rYcCsT|tjkrtj||Sd|ko*dknr8d|S|dkrHd|Std��dS)z�Convert a stratum value to text.

    Parameters:
    stratum -- NTP stratum

    Returns:
    corresponding message

    Raises:
    NTPException -- in case of invalid stratum
    rr)zsecondary reference (%s)zunsynchronized (%s)zInvalid stratum or reserved.N)r	rr)rrrr�stratum_to_text�s
rZr
cCs�|d?d@|d?d@|d?d@|d@f}d|ko:dknrfd|}|tjkr\tj|Sd|Sn(d	|koxdknr�d
|Std��dS)
aConvert a reference clock identifier to text according to its stratum.

    Parameters:
    ref_id  -- reference clock indentifier
    stratum -- NTP stratum

    Returns:
    corresponding message

    Raises:
    NTPException -- in case of invalid stratum
    r�r)r1rrz%c%c%c%cz"Unidentified reference source '%s'r
z%d.%d.%d.%dzInvalid stratum.N)r	rr)r"rZfields�textrrr�ref_id_to_text�s



r])rU)rU)r
)rrrLr*r�	Exceptionrr	rr>rIr-r.r;rBrMrXrYrZr]rrrr�<module>s$Ij38