�
*�Kg:$ � �. � d Z ddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZ ddlZn
# e$ r dZY nw xY wddlmZ ddlmZ ddlmZ ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZ ddlmZ ddl m!Z! dZ"dZ#dZ$ e%e d� � Z&dZ'd� Z(d� Z)d� Z*d%d�Z+d&d�Z,d� Z- e%e d� � rd� Z.nd� Z.d� Z/ G d� d ej0 � � Z1 G d!� d"ej2 � � Z3 G d#� d$ej4 � � Z5dS )'a� Base implementation of event loop.
The event loop can be broken up into a multiplexer (the part
responsible for notifying us of I/O events) and the event loop proper,
which wraps a multiplexer with functionality for scheduling callbacks,
immediately or at a given time in the future.
Whenever a public API takes a callback, subsequent positional
arguments will be passed to the callback if/when it is called. This
avoids the proliferation of trivial lambdas implementing closures.
Keyword arguments for the callback are not supported; this is a
conscious design decision, leaving the door open for keyword arguments
to modify the meaning of the API call itself.
� N� )� constants)�
coroutines)�events)�
exceptions)�futures)� protocols)�sslproto)� staggered)�tasks)�
transports)�trsock)�logger)�
BaseEventLoop�Server�d g �?�AF_INET6i�Q c � � | j }t t |dd � � t j � � rt |j � � S t | � � S )N�__self__)� _callback�
isinstance�getattrr �Task�reprr �str)�handle�cbs �*/usr/lib/python3.11/asyncio/base_events.py�_format_handler F sF � � � �B��'�"�j�$�/�/���<�<� ��B�K� � � ��6�{�{�� c �h � | t j k rdS | t j k rdS t | � � S )Nz<pipe>z<stdout>)�
subprocess�PIPE�STDOUTr )�fds r �_format_piper& |