File: //usr/local/lib/python3.9/site-packages/billiard/__pycache__/managers.cpython-39.pyc
a
X>h�� � @ s� d dl Z d dlZd dlZd dlmZ ddlmZ ddlmZ ddlmZ ddlm Z ddlm
Z
dd lmZ dd
lmZ d dl
mZ d dlmZ g d
�Ze jd dkZer�dd� Zndd� Ze
�eje� dd� dD �Zed eu�rdd� ZeD ]Ze
�ee� q�G dd� d�Zdi fdd�Zdd� ZG dd� de�Zd d!� Zd"d#� Z G d$d%� d%�Z!G d&d'� d'�Z"ej#ej$fej%ej&fd(�Z'G d)d*� d*�Z(G d+d,� d,e)�Z*G d-d.� d.�Z+d/d0� Z,i fd1d2�Z-dkd4d5�Z.G d6d7� d7�Z/G d8d9� d9�Z0dld:d;�Z1G d<d=� d=e+�Z2G d>d?� d?e+�Z3G d@dA� dAe3�Z4G dBdC� dCe+�Z5G dDdE� dEe+�Z6G dFdG� dGe+�Z7G dHdI� dIe+�Z8dJZ9e�spe9dK7 Z9e-dLe9�Z:G dMdN� dNe:�Z;e-dOdP�Z<dQZ=e�s�e=dR7 Z=e-dSe=�Z>e-dTdU�Z?dVdVdVdWdWdX�e?_@G dYdT� dTe?�ZAG dZd[� d[e(�ZBeB�d\e� eB�d]e� eB�d^ejCe5� eB�d_ejDe3� eB�d`ejEe3� eB�daejFe3� eB�dbejGe3� eB�dcejHe4� eIedd��r�eB�ddejJe6� eB�deejKeA� eB�dfee;� eB�dgeLe<� eB�d9e0e8� eB�d;e1e>� eB�d7e/e7� eBjdWe2dhdi� eBjdVdhdj� dS )m� N)�
format_exc� )�
connection)�context)�pool)�process)� reduction)�util)�get_context)�Queue)� monotonic)�BaseManager�SyncManager� BaseProxy�Token� c C s t j | j| �� ffS �N)�array�typecode�tobytes��a� r �;/usr/local/lib/python3.9/site-packages/billiard/managers.py�reduce_array* s r c C s t j | j| �� ffS r )r r �tostringr r r r r - s c C s g | ]}t ti |�� ��qS r )�type�getattr��.0�namer r r �
<listcomp>1 s �r! )�items�keys�valuesc C s t t | �ffS r )�list��objr r r �rebuild_as_list5 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__E s zToken.__init__c C s | j | j| jfS r r) �r- r r r �__getstate__H s zToken.__getstate__c C s |\| _ | _| _d S r r) )r- �stater r r �__setstate__K 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__N s �zToken.__repr__N) r4 �
__module__�__qualname__�__doc__� __slots__r. r0 r2 r5 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 �dispatchW s
rD c C s\ | dkr|S | dkr,t |�tu s$J �t|�S | dkrPt |�tu sDJ �td| �S td�S d S )N�#ERROR�
#TRACEBACK�#UNSERIALIZABLEzUnserializable message: %s
zUnrecognized message type)r �str�RemoteError�
ValueError)rB rC r r r r= b s r= c @ s e Zd Zdd� ZdS )rI c C s dt | jd � d S )NzM
---------------------------------------------------------------------------
r zK---------------------------------------------------------------------------)rH r@ r/ r r r �__str__q s zRemoteError.__str__N)r4 r6 r7 rK r r r r rI o s rI c C s2 g }t | �D ] }t| |�}t|�r|�|� q|S )z4
Return a list of names of methods of `obj`
)�dirr �callable�append)r'