File: //usr/lib/python3.9/multiprocessing/__pycache__/managers.cpython-39.pyc
a
kx�g�� � @ sB g d �Z ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
mZ ddlm
Z
ddlmZmZmZ ddlmZ dd lmZ dd
lmZ ddlmZ zddlmZ d
ZW n ey� dZY n0 dd� Ze�eje� dd� dD �Zed eu�r.dd� ZeD ]Ze�ee� �qG dd� de�Z di fdd�Z!dd� Z"G dd� de#�Z$dd � Z%d!d"� Z&G d#d$� d$e�Z'G d%d&� d&e�Z(e
j)e
j*fe
j+e
j,fd'�Z-G d(d)� d)e�Z.G d*d+� d+e/�Z0G d,d-� d-e�Z1d.d/� Z2i fd0d1�Z3dmd2d3�Z4G d4d5� d5e�Z5G d6d7� d7e�Z6dnd8d9�Z7G d:d;� d;e1�Z8G d<d=� d=e1�Z9G d>d?� d?e9�Z:G d@dA� dAe1�Z;G dBdC� dCe1�Z<G dDdE� dEe1�Z=G dFdG� dGe1�Z>e3dHdI�Z?G dJdK� dKe?�Z@e3dLdM�ZAdNdOieA_Be3dPdQ�ZCe3dRdS�ZDdTdTdTdOdOdU�eD_BG dVdR� dReD�ZEG dWdX� dXe.�ZFeF�dYejG� eF�dZejG� eF�d[ejHe;� eF�d\ejIe9� eF�d]ejJe9� eF�d^ejKe9� eF�d_ejLe9� eF�d`ejMe:� eF�daejNe<� eF�dbejOeE� eF�dcee@� eF�ddePeA� eF�d7e6e>� eF�d9e7eC� eF�d5e5e=� eFjdOe8dde� eFjdTddf� e�r>G dgdh� dh�ZQG didj� dje'�ZRG dkdl� dle.�ZSdS )o)�BaseManager�SyncManager� BaseProxy�Token�SharedMemoryManager� N)�getpid)�
format_exc� )�
connection)� reduction�get_spawning_popen�ProcessError)�pool)�process)�util)�get_context)�
shared_memoryTFc C s t j | j| �� ffS �N)�array�typecode�tobytes)�a� r �./usr/lib/python3.9/multiprocessing/managers.py�reduce_array. s r c C s g | ]}t ti |�� ��qS r )�type�getattr��.0�namer r r �
<listcomp>2 � r )�items�keys�valuesc C s t t | �ffS r )�list��objr r r �rebuild_as_list4 s r( c @ s4 e Zd ZdZdZdd� Zdd� Zdd� Zd d
� ZdS )r z3
Type to uniquely identify a shared object
��typeid�address�idc C s ||| | _ | _| _d S r r) )�selfr* r+ r, r r r �__init__C s zToken.__init__c C s | j | j| jfS r r) �r- r r r �__getstate__F s zToken.__getstate__c C s |\| _ | _| _d S r r) �r- �stater r r �__setstate__I s zToken.__setstate__c C s d| j j| j| j| jf S )Nz %s(typeid=%r, address=%r, id=%r))� __class__�__name__r* r+ r, r/ r r r �__repr__L s �zToken.__repr__N) r5 �
__module__�__qualname__�__doc__� __slots__r. r0 r3 r6 r r r r r = s r r c C s8 | � ||||f� | �� \}}|dkr*|S t||��dS )zL
Send a message to manager using connection `c` and return response
�#RETURNN)�send�recv�convert_to_error)�cr, �
methodname�args�kwds�kind�resultr r r �dispatchT s
rE c C sd | dkr|S | dv rRt |t�s4td�|| t|����| dkrHtd| �S t|�S ntd�| ��S d S )N�#ERROR)�
#TRACEBACK�#UNSERIALIZABLEz.Result {0!r} (kind '{1}') type is {2}, not strrH zUnserializable message: %s
zUnrecognized message type {!r})�
isinstance�str� TypeError�formatr �RemoteError�
ValueError)rC rD r r r r>