
    Χg                         d dl Z d dlZd dlZd dlmZ  G d d          Z G d dej        j                  Z G d dej        j	                  Z	dS )	    N)ForkingPicklerc                   *    e Zd ZdZd Zd Zd Zd ZdS )ConnectionWrapperz_Proxy class for _multiprocessing.Connection which uses ForkingPickler for object serialization.c                     || _         d S N)conn)selfr   s     W/var/www/html/ai-engine/env/lib/python3.11/site-packages/torch/multiprocessing/queue.py__init__zConnectionWrapper.__init__   s    			    c                     t          j                    }t          |t          j                                      |           |                     |                                           d S r   )ioBytesIOr   pickleHIGHEST_PROTOCOLdump
send_bytesgetvalue)r	   objbufs      r
   sendzConnectionWrapper.send   sN    jllsF34499#>>>'''''r   c                 R    |                                  }t          j        |          S r   )
recv_bytesr   loads)r	   r   s     r
   recvzConnectionWrapper.recv   s!    oo|C   r   c                     d| j         v rt          | j        |          S t          dt	          |           j         d          )Nr   'z ' object has no attribute 'conn')__dict__getattrr   AttributeErrortype__name__)r	   names     r
   __getattr__zConnectionWrapper.__getattr__   sD    T]""49d+++Vd!4VVVWWWr   N)r"   
__module____qualname____doc__r   r   r   r$    r   r
   r   r      s[        ii  ( ( (
! ! !X X X X Xr   r   c                        e Zd Z fdZ xZS )Queuec                      t                      j        |i | t          | j                  | _        t          | j                  | _        | j        j        | _        | j        j        | _        d S r   )	superr   r   _reader_writerr   _sendr   _recv)r	   argskwargs	__class__s      r
   r   zQueue.__init__   s]    $)&)))*;DL*I*I*;DL*I*I\&
\&


r   )r"   r%   r&   r   __classcell__r3   s   @r
   r*   r*      s8        ' ' ' ' ' ' ' ' 'r   r*   c                        e Zd Z fdZ xZS )SimpleQueuec                     t          | j        t                    s2t          | j                  | _        t          | j                  | _        t	                                                       d S r   )
isinstancer-   r   r.   r,   _make_methods)r	   r3   s    r
   r:   zSimpleQueue._make_methods'   sW    $,(9:: 	N.?.M.MDL.?.M.MDLr   )r"   r%   r&   r:   r4   r5   s   @r
   r7   r7   &   s8                         r   r7   )
r   multiprocessing.queuesmultiprocessingr   multiprocessing.reductionr   r   queuesr*   r7   r(   r   r
   <module>r?      s    				      4 4 4 4 4 4X X X X X X X X*' ' ' ' 'O"( ' ' '         /(4          r   