File: //usr/local/lib/python3.9/site-packages/billiard/__pycache__/connection.cpython-39.pyc
a
X>h� � @ s^ d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZddl m
Z
ddl mZ ddl mZm
Z
ddlmZ ddlmZmZ d dlmZ dd l
mZ zdd
lmZ W n" ey� ejdkr dZY n$0 ejdkr�ejZejZejZejZg d�Zeed
�ZdZ dZ!e�"� Z#dZ$dgZ%eed��r@dZ$e%dg7 Z%ejdk�rZdZ$e%dg7 Z%e!fdd�Z&dd� Z'dd� Z(dd� Z)dd� Z*G dd� d�Z+G dd � d �Z,e�r�G d!d"� d"e,�Z-G d#d$� d$e,�Z.G d%d&� d&�Z/d]d'd(�Z0d)d*� Z1ejdk�r d^d-d.�Z2n
d_d/d.�Z2G d0d1� d1�Z3d2d3� Z4ejdk�rNG d4d5� d5�Z5ej6ej7ffd6d7�Z8d8Z9d9Z:d:Z;d;Z<d<d=� Z=d>d?� Z>G d@dA� dA�Z?dBdC� Z@dDdE� ZAG dFdG� dGe/�ZBdHdI� ZCejdk�r�dJdK� ZDejEejFhZGd`dLdM�ZHn(eedN��r�dOdP� ZIndQdP� ZIdadRdM�ZHejdk�r>dSdT� ZJdUdV� ZKe
�Le.eJ� dWdX� ZMdYdZ� ZNe
�Le-eM� nd[dT� ZJd\dV� ZKe
�Le.eJ� dS )b� N� )� reduction)�util)�AuthenticationError�BufferTooShort)� _billiard)�setblocking�send_offset�� monotonic)�ForkingPickler)�_winapi�win32)�Client�Listener�Pipe�wait�pypy_version_infoi g 4@�AF_INET�AF_UNIX�AF_PIPEc C s
t � | S �Nr
)�timeout� r �=/usr/local/lib/python3.9/site-packages/billiard/connection.py�
_init_timeoutE s r c C s
t � | kS r r
)�tr r r �_check_timeoutI s r c C sX | dkrdS | dkr&t jdt�� d�S | dkrLt jdt�� tt�f dd�S td ��d
S )z?
Return an arbitrary free address for the given family
r )� localhostr r z listener-)�prefix�dirr z\\.\pipe\pyc-%d-%d-� zunrecognized familyN) �tempfile�mktempr Zget_temp_dir�os�getpid�next�
_mmap_counter�
ValueError��familyr r r �arbitrary_addressQ s ��r+ c C sJ t jdkr| dkrtd| ��t jdkrF| dkrFtt| �sFtd| ��dS )zD
Checks if the family is valid for the current environment.
r r zFamily %s is not recognized.r N)�sys�platformr( �hasattr�socketr) r r r �_validate_family` s
r0 c C sJ t | �tkrdS t | �tu r*| �d�r*dS t | �tu r:dS td| ��dS )z]
Return the types of the address
This can be 'AF_INET', 'AF_UNIX', or 'AF_PIPE'
r z\\r r zaddress type of %r unrecognizedN)�type�tuple�str�
startswithr( )�addressr r r �address_typem s r6 c @ s e Zd Zdd� ZdS )�_SocketContainerc C s
|| _ d S r ��sock)�selfr9 r r r �__init__� s z_SocketContainer.__init__N)�__name__�
__module__�__qualname__r; r r r r r7 � s r7 c @ s� e Zd ZdZd/dd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Z e
dd� �Ze
dd� �Ze
dd� �Z
dd� Zdd� Zd0dd�Zdd� Zd1dd�Zd2d d!�Zd"d#� Zd3d%d&�Zd'd(� Zd)d*� Zd+d,� Zd-d.� ZdS )4�_ConnectionBaseNTc C sZ t |t�r|j| _|j�� }|�� }|dk r4td��|sD|sDtd��|| _|| _|| _ d S )Nr zinvalid handlez6at least one of `readable` and `writable` must be True)
�
isinstancer7 r9 �_socket�fileno� __index__r( �_handle� _readable� _writable)r: �handle�readable�writabler r r r; � s
�z_ConnectionBase.__init__c C s | j d ur| �� d S r �rD �_close�r: r r r �__del__� s
z_ConnectionBase.__del__c C s | j d u rtd��d S )Nzhandle is closed)rD �OSErrorrL r r r �
_check_closed� s
z_ConnectionBase._check_closedc C s | j std��d S )Nzconnection is write-only)rE rN rL r r r �_check_readable� s z_ConnectionBase._check_readablec C s | j std��d S )Nzconnection is read-only)rF rN rL r r r �_check_writable� s z_ConnectionBase._check_writablec C s"