%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib64/python2.7/site-packages/zmq/sugar/
Upload File :
Create Path :
Current File : //usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyo

�
+�{Wc@s�dZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZddl
mZddlmZmZdd	lmZmZmZdd
lmZmZmZmZmZmZmZyddlZeZWneZddlZnXy
ej Z Wne!k
rCej"Z nXy
e#Z$Wne%k
rge&Z$nXdeefd��YZdgZ'dS(
s0MQ Socket pure Python methods.i����N(tSocketi(tPoller(t	constants(tAttributeSetter(tZMQErrortZMQBindError(tbytestunicodet
basestring(tSNDMOREtENOTSUPtPOLLINtint64_sockopt_namestint_sockopt_namestbytes_sockopt_namestfd_sockopt_namesRcBs�eZdZeZd"Zd�Zd�Zd�Z	d�Z
d"d�ZeZe
d��Zed��Zd�ZejZejZd	�Zd
�Zd�Zdd
�ZeZZdd�ZeZZdddd�Z d�Z!d�Z"ee!e"d�Z#de$ed�Z%de$ed�Z&de$dd�Z'e'Z(ddd�Z)e)Z*de+d�Z,dd�Z-dd�Z.dd�Z/e0Z1d"e2d�Z3d"d"d �Z4d!�Z5RS(#s�The ZMQ socket object
    
    To create a Socket, first create a Context::
    
        ctx = zmq.Context.instance()
    
    then call ``ctx.socket(socket_type)``::
    
        s = ctx.socket(zmq.ROUTER)
    
    cOs>tt|�j||�d|kr1t|_n	t|_dS(Ntshadow(tsuperRt__init__tTruet_shadowtFalse(tselftatkw((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR=scCs|js|j�ndS(N(Rtclose(R((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt__del__Ds	cCs|S(sMSockets are context managers
        
        .. versionadded:: 14.4
        ((R((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt	__enter__IscOs|j�dS(N(R(Rtargstkwargs((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt__exit__PscCs|jj|j�S(s&Copying a Socket creates a shadow copy(t	__class__Rt
underlying(Rtmemo((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt__copy__WscCs)ddlm}||�}|d|�S(s�Shadow an existing libzmq socket
        
        address is the integer address of the libzmq socket
        or an FFI pointer to it.
        
        .. versionadded:: 14.1
        i����(t
cast_int_addrR(tzmq.utils.interopR#(tclstaddressR#((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR]s	cCstjdt�|jS(Ns1Socket.socket_type is deprecated, use Socket.type(twarningstwarntDeprecationWarningttype(R((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytsocket_typens	cCs=t|j�}x'ttttfD]}|j|�q"W|S(N(tdirRRR
RRtextend(Rtkeyst
collection((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt__dir__ys
cCs�|j�}|dkrrt|t�r9|jd�}n|dkr[|jtj|�n|jtj|�dStt	|�j
||�dS(sRoverride to allow setting zmq.[UN]SUBSCRIBE even though we have a subscribe methodt	subscribetunsubscribetutf8N(s	subscribesunsubscribe(tlowert
isinstanceRtencodetsettzmqt	SUBSCRIBEtUNSUBSCRIBERRt__setattr__(Rtkeytvaluet_key((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR;�scCs8t|t�r!|jd�}n|jtj|�dS(s\Subscribe to a topic

        Only for SUB sockets.

        .. versionadded:: 15.3
        R3N(R5RR6R7R8R9(Rttopic((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR1�scCs8t|t�r!|jd�}n|jtj|�dS(s`Unsubscribe from a topic

        Only for SUB sockets.

        .. versionadded:: 15.3
        R3N(R5RR6R7R8R:(RR?((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR2�ssutf-8cCs7t|t�std��n|j||j|��S(s3set socket options with a unicode object
        
        This is simply a wrapper for setsockopt to protect from encoding ambiguity.

        See the 0MQ documentation for details on specific options.
        
        Parameters
        ----------
        option : int
            The name of the option to set. Can be any of: SUBSCRIBE, 
            UNSUBSCRIBE, IDENTITY
        optval : unicode string (unicode on py2, str on py3)
            The value of the option to set.
        encoding : str
            The encoding to be used, default is utf8
        sunicode strings only(R5Rt	TypeErrorR7R6(Rtoptiontoptvaltencoding((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt
set_string�scCs8|tjkr"td|��n|j|�j|�S(sdget the value of a socket option

        See the 0MQ documentation for details on specific options.

        Parameters
        ----------
        option : int
            The option to retrieve.

        Returns
        -------
        optval : unicode string (unicode on py2, str on py3)
            The value of the option as a unicode string.
        s0option %i will not return a string to be decoded(Rtbytes_sockoptsR@t
getsockopttdecode(RRARC((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt
get_string�si�iidcCs"ttd�ro|dkro|dkro|jd|�|jjdd�}|jdd�\}}t|�Sx�t|�D]�}y-tj	||�}	|jd	||	f�WnXt
k
r	}
|
j}|tj
kr�q|qtjd
kr|tjkrq|q�q|X|	Sq|Wtd��dS(
sbind this socket to a random port in a range

        If the port range is unspecified, the system will choose the port.

        Parameters
        ----------
        addr : str
            The address string without the port to pass to ``Socket.bind()``.
        min_port : int, optional
            The minimum port in the range of ports to try (inclusive).
        max_port : int, optional
            The maximum port in the range of ports to try (exclusive).
        max_tries : int, optional
            The maximum number of bind attempts to make.

        Returns
        -------
        port : int
            The port the socket was bound to.
    
        Raises
        ------
        ZMQBindError
            if `max_tries` reached before successful bind
        t
LAST_ENDPOINTi�is%s:0tasciitreplacet:is%s:%stwin32s%Could not bind socket to random port.N(thasattrRtbindt
last_endpointRGtrsplittinttrangetrandomt	randrangeRterrnoR8t
EADDRINUSEtsystplatformtEACCESR(Rtaddrtmin_porttmax_portt	max_triesturlt_tport_stitportt	exceptionten((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytbind_to_random_port�s$'
	cCsmtj�d}|dkrYy|jtj�SWntjk
rH}nX|jtj�S|jtj�SdS(srget the High Water Mark
        
        On libzmq ≥ 3, this gets SNDHWM if available, otherwise RCVHWM
        iiN(R8tzmq_version_infoRFtSNDHWMRtRCVHWMtHWM(Rtmajorte((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytget_hwm
scCs�tj�d}|dkr�d}y
||_Wntk
rJ}|}nXy
||_Wntk
rs}|}nX|r�|�q�n|jtj|�SdS(s�set the High Water Mark
        
        On libzmq ≥ 3, this sets both SNDHWM and RCVHWM


        .. warning::

            New values only take effect for subsequent socket
            bind/connects.
        iiN(R8RgtNonetsndhwmt	Exceptiontrcvhwmt
setsockoptRj(RR=RktraisedRl((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytset_hwms



s�property for High Water Mark
        
        Setting hwm sets both SNDHWM and RCVHWM as appropriate.
        It gets SNDHWM if available, otherwise RCVHWM.
        ic	Cs�x�t|�D]�\}}t|tjttf�r:q
nyt|�Wq
tk
r�}t|�}t|�dkr�|d d}nt	d||f��q
Xq
Wx2|d D]&}|j
|t|Bd|d|�q�W|j
|d|d|d|�S(s�send a sequence of buffers as a multipart message
        
        The zmq.SNDMORE flag is added to all msg parts before the last.

        Parameters
        ----------
        msg_parts : iterable
            A sequence of objects to send as a multipart message. Each element
            can be any sendable object (Frame, bytes, buffer-providers)
        flags : int, optional
            SNDMORE is handled automatically for frames before the last.
        copy : bool, optional
            Should the frame(s) be sent in a copying or non-copying manner.
        track : bool, optional
            Should the frame(s) be tracked for notification that ZMQ has
            finished with it (ignored if copy=True).
    
        Returns
        -------
        None : if copy or not track
        MessageTracker : if track and not copy
            a MessageTracker object, whose `pending` property will
            be True until the last send is completed.
        i s...s4Frame %i (%s) does not support the buffer interface.i����tcopyttrack(t	enumerateR5R8tFrameRt_buffer_typeRptreprtlenR@tsendR	(	Rt	msg_partstflagsRuRvRbtmsgRltrmsg((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytsend_multipartFs$cCsc|j|d|d|�g}x>|jtj�r^|j|d|d|�}|j|�q!W|S(s�receive a multipart message as a list of bytes or Frame objects

        Parameters
        ----------
        flags : int, optional
            Any supported flag: NOBLOCK. If NOBLOCK is set, this method
            will raise a ZMQError with EAGAIN if a message is not ready.
            If NOBLOCK is not set, then this method will block until a
            message arrives.
        copy : bool, optional
            Should the message frame(s) be received in a copying or non-copying manner?
            If False a Frame object is returned for each part, if True a copy of
            the bytes is made for each frame.
        track : bool, optional
            Should the message frame(s) be tracked for notification that ZMQ has
            finished with it? (ignored if copy=True)
        
        Returns
        -------
        msg_parts : list
            A list of frames in the multipart message; either Frames or bytes,
            depending on `copy`.
    
        RuRv(trecvRFR8tRCVMOREtappend(RR~RuRvtpartstpart((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytrecv_multipartrs
cCs@t|t�std��n|j|j|�d|d|�S(s�send a Python unicode string as a message with an encoding
    
        0MQ communicates with raw bytes, so you must encode/decode
        text (unicode on py2, str on py3) around 0MQ.
        
        Parameters
        ----------
        u : Python unicode string (unicode on py2, str on py3)
            The unicode string to send.
        flags : int, optional
            Any valid send flag.
        encoding : str [default: 'utf-8']
            The encoding to be used
        sunicode/str objects onlyR~Ru(R5RR@R|R6(RtuR~RuRC((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytsend_string�scCs|jd|�}|j|�S(s�receive a unicode string, as sent by send_string
    
        Parameters
        ----------
        flags : int
            Any valid recv flag.
        encoding : str [default: 'utf-8']
            The encoding to be used

        Returns
        -------
        s : unicode string (unicode on py2, str on py3)
            The Python unicode string that arrives as encoded bytes.
        R~(R�RG(RR~RCtb((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytrecv_string�scCs"tj||�}|j||�S(s�send a Python object as a message using pickle to serialize

        Parameters
        ----------
        obj : Python object
            The Python object to send.
        flags : int
            Any valid send flag.
        protocol : int
            The pickle protocol number to use. The default is pickle.DEFAULT_PROTOCOL
            where defined, and pickle.HIGHEST_PROTOCOL elsewhere.
        (tpickletdumpsR|(RtobjR~tprotocolR((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt
send_pyobj�s
cCs|j|�}tj|�S(sreceive a Python object as a message using pickle to serialize

        Parameters
        ----------
        flags : int
            Any valid recv flag.

        Returns
        -------
        obj : Python object
            The Python object that arrives as a message.
        (R�R�tloads(RR~ts((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt
recv_pyobj�s
cKs2ddlm}|j||�}|j||�S(s&send a Python object as a message using json to serialize
        
        Keyword arguments are passed on to json.dumps
        
        Parameters
        ----------
        obj : Python object
            The Python object to send
        flags : int
            Any valid send flag
        i����(tjsonapi(t	zmq.utilsR�R�R|(RR�R~RR�R((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt	send_json�scKs/ddlm}|j|�}|j||�S(sVreceive a Python object as a message using json to serialize

        Keyword arguments are passed on to json.loads
        
        Parameters
        ----------
        flags : int
            Any valid recv flag.

        Returns
        -------
        obj : Python object
            The Python object that arrives as a message.
        i����(R�(R�R�R�R�(RR~RR�R((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt	recv_json�scCsY|jrtt��n|j�}|j||�t|j|��}|j|d�S(s�poll the socket for events
        
        The default is to poll forever for incoming
        events.  Timeout is in milliseconds, if specified.

        Parameters
        ----------
        timeout : int [default: None]
            The timeout (in milliseconds) to wait for an event. If unspecified
            (or specified None), will wait forever for an event.
        flags : bitfield (int) [default: POLLIN]
            The event flags to poll for (any combination of POLLIN|POLLOUT).
            The default is to check for incoming events (POLLIN).

        Returns
        -------
        events : bitfield (int)
            The events that are ready and waiting.  Will be 0 if no events were ready
            by the time timeout was reached.
        i(tclosedRR
t
_poller_classtregistertdicttpolltget(RttimeoutR~tptevts((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR�s	cCs�tj�dkr+tdtj���n|jrV|jjrLd|_qV|jSn|dkrrd|j}n|dkr�tj}n|j	||�|j
jtj�|_|jj
|�|jS(s+Return a connected PAIR socket ready to receive the event notifications.
        
        .. versionadded:: libzmq-4.0
        .. versionadded:: 14.0
        
        Parameters
        ----------
        events : bitfield (int) [default: ZMQ_EVENTS_ALL]
            The bitmask defining which events are wanted.
        addr :  string [default: None]
            The optional endpoint for the monitoring sockets.

        Returns
        -------
        socket :  (PAIR)
            The socket is already connected and ready to receive messages.
        is0get_monitor_socket requires libzmq >= 4, have %ssinproc://monitor.s-%d(iN(R8RgtNotImplementedErrortzmq_versiont_monitor_socketR�RntFDt	EVENT_ALLtmonitortcontexttsockettPAIRtconnect(RteventsR[((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytget_monitor_socket s	
cCsd|_|jdd�dS(s�Shutdown the PAIR socket (created using get_monitor_socket)
        that is serving socket events.
        
        .. versionadded:: 14.4
        iN(RnR�R�(R((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pytdisable_monitorJs	N(6t__name__t
__module__t__doc__RRRnR�RRRRR"t__deepcopy__tclassmethodRtpropertyR+R0t
SocketBaseR7RrR�RFR;R1R2RDtsetsockopt_unicodetsetsockopt_stringRHtgetsockopt_unicodetgetsockopt_stringRfRmRtthwmRR�R�R�tsend_unicodeR�trecv_unicodetDEFAULT_PROTOCOLR�R�R�R�RR�RR�R�R�(((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyR.sP										

2				,!*((R�RVRTRXR'R8tzmq.backendRR�R�RtRt	attrsettrRt	zmq.errorRRtzmq.utils.strtypesRRRR	R
RRR
RRtcPickleR�RnR�tAttributeErrortHIGHEST_PROTOCOLt
memoryviewRyt	NameErrortbuffert__all__(((s6/usr/lib64/python2.7/site-packages/zmq/sugar/socket.pyt<module>s<4






��(

Zerion Mini Shell 1.0